Questions tagged [liferay]

Liferay is an open source JSR 286 compliant portal and social platform, written in Java. It provides fully functional built-in portlets (60+) and also various integration points to seamlessly integrate with other third-party softwares like Alfresco, Sharepoint etc. Make sure to also tag with the specific version that you're asking about.

Liferay is an open-source portal written in Java and a social platform. It implements JSR-286 and has various proprietary facilities.

Liferay Portal was created in 2000 as open source software. Thanks to a decade of ongoing collaboration with its active and mature open source community, Liferay's product development is the result of direct input from users with representation from all industries and organizational roles. Liferay provides a lot of integration points with other softwares like , , etc.

Liferay as a portal server is application-server agnostic, which means that Liferay can be installed on almost any Java application server.

Liferay provides more than 60+ preinstalled or built-in portlets (also known as out-of-the-box (OOTB) portlets) and the latest version Liferay 7 provides many more features like:

  1. Dynamic data lists
  2. Custom web content types
  3. Workflows for documents and media
  4. Related assets
  5. Faceted search
  6. Integration with multiple repositories
  7. Dynamic site templates
  8. Mobile device rules
  9. Bootstrap theme
  10. Advance Display Templates (ADT)

Liferay has a market-place which serves as an "app" store for the Liferay portal.

Editions

Liferay is distributed in two editions:

  1. Liferay Portal Community Edition (Liferay CE): This is supported by the Community and is free.
  2. Liferay Portal Enterprise Edition (Liferay EE): This is a licensed version of the Portal.

More about the editions can be checked out here.

Liferay Development

It is possible to customize Liferay (OOTB portlets and core) and add new features with the following plugin types using Liferay's Plugins SDK:

  1. EXT Plugin (prior to versions 6.x, it was known as the EXT Environment): To customize liferay's core classes and those things which are not customizable by hooks.

  2. Portlet Plugin: It helps in creating JSR 168 and JSR 286 compliant portlets. Liferay supports many frameworks to create portlets some of which are JSF with Liferay Faces, Spring MVC, Vaadin, Struts and for simple portlets Liferay provides a MVCPortlet class.

  3. Hook Plugin: This is used to modify Liferay's JSPs and other services

  4. Theme Plugin: This is used to customize the look and feel of the whole Portal.

  5. Layout Plugin: This is used to customize the page's layout and is one of the simplest plugins to develop. Liferay comes pre-bundled with 10 layouts.

All the plugins are packaged as .WAR files. All plugins are hot-deployable except the EXT plugin which requires server restart.

Liferay also provides Liferay IDE as an plugin to increase development productivity.

Liferay provides a rich API including many utility classes and also provides custom taglibs to ease development of JSPs, like:

  1. liferay-ui: It provides UI-related pre-styled structures and functional tools like the search container which handles search pagination.
  2. liferay-portlet: It is a wrapper around the tag and provides Liferay-specific portlet functionality.
  3. liferay-util
  4. liferay-theme
  5. liferay-security
  6. aui (AlloyUI taglib): A wrapper around Alloy UI to provide consistent UI components across the portal.

Liferay uses as the built-in Javascript library, which is a library built upon .

Liferay also provides the Service-builder, a declarative service and persistence layer code generator. The generated interfaces can also be exposed as web-services.

Known Liferay Integrations with third-party softwares

  1. Alfresco (Blog about Alfresco Integration)

Beginners' resources

  1. Liferay Developer Network: The place to start - with many tutorials
  2. Liferay Portal Wiki

Additional day to day resources

  1. Latest Liferay User Guide
  2. Latest Liferay Development Guide
  3. Liferay API Docs by version
  4. Liferay Marketplace: the place for getting plugins for all your needs
  5. Liferay Forums

Other Liferay resources

  1. Liferay Releases
  2. Previous Versions
  3. Liferay on Git-hub
  4. Alloy UI Demos
  5. Liferay in Action (official guide to Liferay development)
  6. Liferay Development Style guidelines
  7. Liferay Marketplace
  8. Liferay Portlets

Frequent/Interesting Questions

  1. To Go or Not To Go with Liferay?
  2. Restrictions/Disadvantages of developing portlets with Liferay
  3. Accessing User in Liferay Portlet
  4. Testing for custom plugin portlet
  5. Accessing logged-in User in a liferay portlet
  6. Programmatically get the url of a page in liferay
6475 questions
8
votes
1 answer

Liferay: change the users landing page depending on organization

I'm using Liferay 6.0. I have multiple organizations and would like to change the user's landing page depending on organization. I'm new to Liferay, tried to find some suggestions but could not find the correct answer. Is it possible to do with…
V.K.
  • 101
  • 1
  • 4
8
votes
2 answers

Liferay - customise change password

I would like to customise Liferay 6.0.6 mechanizm for update password. In our project we decided to manage users' on our own, so we keep all data like usernames and passwords in our database. We don't want to use the Liferay's database but it seems…
stal
  • 111
  • 1
  • 4
8
votes
5 answers

How to make Liferay not produce condensed HTML code?

I found that Liferay transfers my JSP code in a somehow "condensed" way -- putting most of the text into a few very long lines. This makes it uncomfortable to debug javascript. Is it possible to turn off this feature temporary?
Dims
  • 47,675
  • 117
  • 331
  • 600
8
votes
1 answer

memberOf vs. groupMembership in LDAP (Liferay)

What is the difference b/n memberOf attribute and groupMembership attribute when used in LDAP Authentication settings in Liferay? The users are imported successfully. The groups are also imported successfully. But the users are not assigned to the…
Ashok Goli
  • 5,043
  • 8
  • 38
  • 68
8
votes
1 answer

How to get size of list in freemarker?

I have created a content template where user can create multiple cards/boxes.It works well but i would like to change the css if user create just one box. I tried it with getList()?size but it didnt work. Any idea how can I proof if the size is…
user1953051
  • 321
  • 2
  • 7
  • 21
8
votes
1 answer

How can I disable SennaJS/SPA in Liferay 7?

Liferay 7 uses SennaJS as its Single Page Application engine in order to load and replace certain parts of the portal page during form submission and navigation. Occasionally this feature interferes with my use case, so how can I disable it?
stiemannkj1
  • 4,418
  • 3
  • 25
  • 45
8
votes
1 answer

How to set a Cookie in Liferay portlet?

I am having problems of trying to set a session cookie(s) in Liferay 6.0 portlets. I want to be able to set a cookie to the client browser to store application key for the linkedin authentication, where it can be then retrieved by other portlets. I…
user353283
8
votes
5 answers

Freemarker does not assign staticUtil

I worked Application Display Templates on liferay 6.2, I use freemarker help pagination the dynamics data list of liferay. When I upgrade to liferay 7, it is a problem. Liferay 7 use code <#assign records =…
lee trj
  • 83
  • 1
  • 5
8
votes
1 answer

Embedding Liferay site as iframe is not working on external site

I have got a Liferay page which has Portlet. I tried to embed this page as an iframe in external site which is not in Liferay but it is giving the error in console as: Refused to display 'https://example.com' in a frame because it set …
TechPro
  • 331
  • 1
  • 10
  • 29
8
votes
2 answers

Primefaces Dialog Framework Liferay

Primefaces Dialog Framework opens the same portlet page instead of required page. Bean: public void viewDialog() { …
rjomir
  • 304
  • 3
  • 12
8
votes
0 answers

Liferay performance issue

We are facing performance issue with liferay 6.2 after migrating from 6.1. Almost all our custom as well as liferay's plugin portlet are responding very slow for non admin users. We observe that permission checks seems to be taking lot of time. Also…
suyash
  • 1,254
  • 1
  • 15
  • 33
8
votes
2 answers

Liferay Service Builder 6.2: Many to one relationships

I want to create a one to many relationships and I've used the following service.xml:
Breiti
  • 579
  • 5
  • 21
8
votes
3 answers

Liferay startup takes way too long

I'm new to Liferay developing and I’m facing troubles with the startup of my Liferay Tomcat server. It takes almost 3 minutes (169048 ms) which is unacceptable for development. I’d like to get it down to about one minute. Here are the specs of my…
FeinesFabi
  • 1,147
  • 2
  • 12
  • 25
8
votes
1 answer

Develop a common jar library for different liferay portlets

I need some utility classes that will be common for three different Liferay portlets so I will develop them in one project that should be shared for my portlets. I am using Eclipse with Liferay IDE plugin and my question is what kind of project is…
oggie0563
  • 139
  • 1
  • 2
  • 11
8
votes
2 answers

Include static sitemap in Liferay

I'm in need of putting a static sitemap.xml file, because Liferay does not generate all of the desired links, and a few that shouldn't be there. I think it's because it's heavily altered by my ext-plugin. Question is, that is it possible to set up…
Cornelius
  • 291
  • 2
  • 6
  • 21