Carlos Hernandez | 25 Feb 2018

Q-Have you ever wondered if you can customize your Elastic Search, so that on your searches in Liferay, not only the words you're searching for come up in the results but also synonyms of these words? A-Yes, you can! Below, I'll show you an example of how I did it (by customizing my indexes and mappings settings). Let's say that I have a web content article containing the word...

David H Nebinger | 24 Feb 2018

So the question comes up how to do Liferay upgrades. I'm not talking here about the technical details of how you upgrade one particular plugin to another type of plugin, what kinds of API changes have to be made, etc. Instead, I'm thinking more about the general process of how to upgrade, what choices you're presented with and what the ramifications are for making certain...

Jonas Choi | 26 Feb 2018

Tomcat 8.5 is an in-between version of Apache Tomcat 8.0 and 9.0. According to the Apache site, it contains some features in 9.0 that have been backported to 8.0. This version of Tomcat is currently in the "Supported" matrix of the Liferay DXP Compatibility Matrix, and of course, the question is: How do I set up Liferay CE/DE 7.0 with Tomcat 8.5? The short answer is: Exactly like...

David H Nebinger | 21 Feb 2018

So Jamie just announced the new Liferay 7.1 Community Beta Program here: I recommend everyone who has working code in Liferay 7.0 or Liferay DXP should join the 7.1 beta sooner rather than later. Why? Well, mostly because Liferay's engineering team is focused on the 7.1 release, so anything that you...

Iacopo Colonnelli | 19 Feb 2018

Introduction In recent times, containers are becoming more and more important in the software lifecycle management, whether we like it or not. The majority of  the leading software companies have already released a Docker version of their products, Microsoft did a huge work to adapt Windows kernel to Docker containers features, many Cloud services sell container-based...

David H Nebinger | 16 Feb 2018

Okay, in case it is not yet clear, Liferay 7 uses an OSGi container. I know what you're thinking: "Well, Duh..." The point is that OSGi is actually a standard and anything that works within OSGi will work within Liferay. You just need to understand the specs to make something of it. For example, I'd like to talk about OSGi Fragment Bundles. There's actually stuff in the...

Christian Klein | 19 Feb 2018

I have been working on adding CKEditor plugins to the Alloy Editor in Liferay DXP and figured I would share what I found. Specifically I was trying to add the YouTube Plugin. There are some articles online at Liferay but they focus more on packaged or custom developed plugins. I got close streaming the files into the Dynamic-Include, but there is a better way (thanks to...

Jose M. Navarro | 14 Feb 2018

In the very beginning of every mobile app project, we can have to face a tough decision: should I go for a native approach to make the most of the device capabilities and optimize the user experience, or should I prefer a hybrid development to make progress faster even though the result may be not as good. And you have to choose either one or the other. A few...

Sergio González | 19 Feb 2018

I am very pleased to announce the first release of Adaptive Media available for Liferay 7 GA5 and Liferay DXP. Below you can find the links to download the app from Liferay Marketplace. Download Adaptive Media DXP Download Adaptive Media CE What is Adaptive Media? In case you are unfamiliar to Adaptive Media and you want to know more about how this powerful app can...

David H Nebinger | 08 Feb 2018

So I've been working a lot more with Angular 2+ recently (Angular 4 actually, but that is not so important) and wanted to share some of my findings for those of you whom are interested... Accessing the Liferay Javascript Object So TypeScript is sensitive to defined variables, classes, objects, etc.  Which is good when you want to make sure you are building complex apps,...

David H Nebinger | 02 Feb 2018

So, as a developer, I'm like usually whacking my whole runtime environment and starting over. Why? Well, regardless how much I try to keep it clean, cruft will find its way into the environment. I'm left with users I don't want, content I don't want, pages I'm not using any more, sites created to demo something I'm not demoing any more... So I'll throw out my data directory,...

Minhchau Dang | 01 Feb 2018

At Liferay Symposium North America 2017, I had a discussion with a few of our customers on the hidden dangers of rolling back Liferay changes. There are multiple ongoing efforts to improve how we will handle the issue for the upcoming 7.1 release, such as LPS-76923. However, the 7.0 release is already affected, and DE-40 is fast approaching with another round of hidden dangers...

Koen Olaerts | 31 Jan 2018

On October 6, 2017 my colleague Sebastiaan and I held a presentation at Liferay DevCon about a cool integration the COIN team made. We were looking for a fun and exciting Internet of Things integration in Liferay. After a fruitful brainstorm, we decided to use Philips Hue. Another couple of brainstorms later, we formed the actual idea. The setup was to create an imaginary...

Vitaliy Koshelenko | 12 Jan 2018

Liferay has different types of pages. The default one is Layout - it’s standard, empty by default page, which is displayed in navigation menu. Portlets may be added to such page, themes and layouts may be also applied to this type of page. In most cases this page type is used. But there are different page types, here are they: Link to a Page of This Site -...

Vitaliy Koshelenko | 11 Jan 2018

To make some custom class available inside a theme velocity template, you need to put it's instance into com.liferay.portal.kernel.util.WebKeys#VM_VARIABLES request attribute. And it will be populated to the velocity context automatically (in com.liferay.portal.velocity.VelocityTemplateContextHelper#prepare method), see: // Insert custom vm variables Map<String,...

gulnaaz Shaik | 09 Jan 2018

Themelets are small, extendable, and reusable pieces of code. They help to avoid duplication of code. Code that can be reused in other themes can be written in themelet which can be extended to any theme. Unlike Theme in Themelets we will be including only the files in which there are code changes.   Here i have lr-7-theme which looks like below ...

Neha Goyal | 05 Jan 2018

This blog is for creating an interface which will show number of live users and some other details. First of all create a portlet which will provide interface and then create a hook within the portlet.Below link willl help to create hook in portlet. view.jsp Add below line of code in portlet...

Minhchau Dang | 29 Jan 2018

Welcome to the fourth entry in a series about what to keep in mind when building Liferay from source. First, to recap the previous entries in this series from last year: Getting Started with Building Liferay from Source: How to get a clone of the Liferay central repository and how to build Liferay from source. Also some tools that can help you setup your IDE (whether it's...

Ignacio Roncero Bazarra | 29 Jan 2018

Short explanation If you want to convert a third party library of your portlets (modules) into a Bundle OSGi to be used by all modules, you could create a new module with your third party library and dependences and be used by your modules. To explain this we will use JasperReport third party library. Supose that you have a module that uses JasperReport to generate PDF files....

Sushil Patidar | 16 Jan 2018

I wrote blog for theme development with IDE . Further I explored the way to configure gradle project. I would like to share those steps that I have experienced hard to find and many developers I saw asking for the same thing on the forums. Gradle Configuration   By default, if we create theme using IDE it templates are built using freemarker and parent theme is...