Book Image

Liferay User Interface Development

By : Jonas X. Yuan, Xinsheng Chen, Frank Yu
Book Image

Liferay User Interface Development

By: Jonas X. Yuan, Xinsheng Chen, Frank Yu

Overview of this book

<p>Liferay employs a specialized theming system, which allows you to change the look and feel of the user interfaces. As a developer, by using the right tools to create and manipulate themes with Liferay Portal, you can get your site to look any way you want it to; but the Liferay theming system can be difficult to get started with. This practical guide provides you with a well organized manual for working with Liferay as a programmer to help you get started.<br /><br />Liferay User Interface Development is a pioneer in explaining Liferay's powerful theming system by taking you through examples to get you to create your own themes as quickly as possible. It focuses on how portal pages are created and styled and also discusses some simple configuration and customization to change the look and feel of a portal page. Its explicit instructions are accompanied by plenty of source code. With the open source nature of Liferay, you will find a user-friendly environment to design themes with the latest user interface technologies.<br /><br />Liferay User Interface Development unlocks the potential of using Liferay as a framework to develop a rich user interface.</p> <p>The book starts off with how you should go about structuring a Liferay Portal web page. It identifies the components of a portal page: theme, layout, and portlets. This hands-on tutorial explains themes, portlets, and Alloy UI, which is the latest output from the Alloy Project of Liferay, in an easy-to-understand way. It covers all aspects of a theme from its inception and rendering through its consumption by an end user, with in-depth discussion.<br /><br />By the end of this book, you will clearly understand themes, layouts, and the Alloy API. Most importantly you will obtain the skills to write a theme and layout templates, apply them to a portal, and also control the portlet UI through different mechanisms.</p> <p>This clear, concise, and practical tutorial will ensure that you have developed skills to become a competent Liferay themer. The detailed text is accompanied with source code that allows you to play with the examples, update the code, and add custom features.</p>
Table of Contents (12 chapters)
11
Index

Using Liferay services in Velocity templates

There is another powerful feature that we can use in Velocity templates: invoking Liferay services. Liferay services can be used to access a lot of resources of the portal.

For example, we will try to use the LayoutLocalService. Here is the code:

#set($layoutService = $serviceLocator.findService("com.liferay.portal.service.LayoutLocalService"))
#set($layouts = $layoutService.getLayouts($layout.getGroup().getGroupId(), false))
#foreach ($page in $layouts)
  <span>$page.getName($locale) | </span>
#end

Copy this snippet of code and paste it at a convenient place in the portal_normal.vm file. When it runs, it will print out the names of all the public pages in this community. The page names will be delimited by a vertical bar.

Velocity does not have the functionality to handle exceptions while many Liferay services throw exceptions. To compensate for this, Liferay has defined a findExceptionSafeService method for the $serviceLocator...