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
10
votes
1 answer

Severe security constraints while tomcat 8 startup with liferay

I am getting the below severe message while the tomcat 8 comes up with liferay. SEVERE [localhost-startStop-1] org.apache.tomcat.util.descriptor.web.SecurityConstraint.findUncoveredHttpMethods For security constraints with URL pattern…
abhineet
  • 195
  • 1
  • 1
  • 11
10
votes
2 answers

"A is not defined" inside of block

I'm trying to extend some functionality of an existing Liferay portlet. As part of this, I would like to use Alloy UI to modify the value of a field in the portlet. There's a pre-existing block where I would like to define my custom…
red_sky
  • 834
  • 9
  • 17
10
votes
2 answers

why settimeout not delay the function execution?

function tryToDownload(url) { oIFrm = document.getElementById('myIFrm'); oIFrm.src = url; // alert(url); // url=escape(url); setTimeout(deletefile(url), 25000); } following is deletfile function function…
BhavikKama
  • 8,566
  • 12
  • 94
  • 164
10
votes
2 answers

Difference between user groupId and scopeGroupId

Whats the difference between themeDisplay.getUser().getGroupId() and themeDisplay.getScopeGroupId()? If I retrieve Layouts (pages) from it, would they have any different URL pattern like, /web-or-user//* or /web-or-user-or-group//*? I…
Whimusical
  • 6,401
  • 11
  • 62
  • 105
10
votes
4 answers

Unable to view deployed Liferay portlet in the add >> more option

I have created a sample Liferay portlet and it has successfully deployed. But, the eclipse console didn't say "1 portlet is ready for use". And, I couldn't find this portlet in the Add >> More.. option on a Liferay page.
MadCoder
  • 641
  • 6
  • 16
10
votes
2 answers

How to get Portlet Id using the portlet name in Liferay?

I have a requirement of getting resource permission using portlet name. I will have the name of the portlet not the Id. Resource Permission name for a portlet is that portlet's Id. I checked the Portlet table, it has only the Id and other info.…
Vijayalakshmi
  • 189
  • 1
  • 3
  • 11
10
votes
5 answers

Is it possible to add Extra Fields Under Create User in Liferay

I am using Liferay 6 for portal Development . During Creating Users under Liferay , i need to add some extra Fields also ?? Please let me know if this is ppossible or not ?? Please see the screen shot attached here , and also please let me know in…
Pawan
  • 31,545
  • 102
  • 256
  • 434
9
votes
1 answer

Create object in velocity template

I am writing velocity templates for my liferay theme and I am wondering, whether it is possible to create a new object inside the velocity template. The reason is that in liferay there is no contextTool registered in the context and I really want to…
Patrick Cornelissen
  • 7,968
  • 6
  • 48
  • 70
9
votes
2 answers

Steps for Export and Import in Liferay

I have built a website in Liferay using eclipse IDE. Please tell me the step by step procedure for export/import or publishing website from development machine to deployment machine. . Thanks
Komal Arora
  • 303
  • 1
  • 3
  • 15
9
votes
4 answers

How to embed WebContent in freemarker Liferay 7 theme?

I have found how to embed WebContent in Liferay 6.2 theme using journalContentUtil.getContent method. My question is how to do the same thing in Liferay 7?
Stefania Izzo
  • 180
  • 1
  • 11
9
votes
1 answer

respond to http request with json object in portlet

I am a beginner in liferay portlet development and I am developing a portlet that receives a http get request, processes some information and than it has to return a json object. My problem is that my portlet sends a whole html page instead of just…
layser
  • 2,038
  • 3
  • 15
  • 14
9
votes
4 answers

How to disable js and css caching in liferay?

I am developing a theme for liferay,but liferay caching system does not let me to see changes. How can i disable liferay js and css caching? PS: I am using Liferay version 5.1.1
rahim asgari
  • 12,197
  • 10
  • 43
  • 53
9
votes
1 answer

How to add jstl to a Liferay portlet?

I have been looking here in SO and other places and I have not found the exact answer to this question. So here goes: What is the best way to add support in my Liferay portlets to use JSTL tags? Of course, I have found generic answers about how to…
stoldark
  • 454
  • 1
  • 5
  • 15
9
votes
1 answer

How to set size of string column using service.xml or Service Builder?

Pre-history: I get JDBCExceptionReporter data exception: string data, right truncation exception on update of entities. I have found that this means, the data is too big for the specified varchar. In the service.xml the column is specified…
Mark
  • 17,887
  • 13
  • 66
  • 93
9
votes
2 answers

How to obtain the download url for a document library content programmatically

I have several contents in my document library (images, documents, videos...) and I want to obtain the download url for each of them programmatically, so I can show them on a jsp in a custom portlet. Investigating, I have found this page with a…
stoldark
  • 454
  • 1
  • 5
  • 15