New feature for Liferay 7: Autocomplete lists in CKEditor

Company Blogs June 6, 2014 By Chema Balsas Staff

Hi everyone!

As someone leaked earlier this week in this tweet, we're dedicating a lot of effort into improving content creation in the next version of Liferay Portal.

One of the first things we are trying to do, is to improve the portal intelligence and its ability to predict, find and suggest what the user may be looking for when writing some content.

With that in mind we've created a plugin for CKEditor which will allow developers to provide a series of autocomplete lists based on the user input. Check out what you can accomplish with a simple configuration step like the following:

ckEditor.config.autocomplete = {
 trigger: [
   resultTextLocator: 'screenName',
   term: '@',
   tplReplace: '<a href="{portraitURL}">@{screenName}</a>',
   tplResults: '<div class="taglib-user-display><span class="user-name">{fullName}@{screenName}</div>',
   source: '<%= autoCompleteUserURL.toString() %>'
   resultTextLocator: 'title',
   term: ':',
   tplReplace: '<div><img class="img-polaroid" src="{url}"</img></div>',
   tplResults: '<div><img class="img-rounded" src="{url}">{title}</div>',
   source: '<%= autocompleteImageURL.toString() %>'


We are still planning which kind of features to ship by default. Amongst others, we're considering:

  • Autocomplete of users based on screenName
  • Autocomplete of friendly urls to site pages
  • Autocomplete of related (by site or author) blog entries
  • Autocomplete of assets in the document library
  • Autocomplete of emojis
  • [...]
  • Any other list you may think of ;)


So, what do you think? What kind of options would you like to see implemented for this feature?

New feature for Liferay 7: Quick Access

General Blogs May 7, 2014 By Chema Balsas Staff

Hi everyone!

Today, I'm showing you a new accessibility feature that we'll be adding in the next Liferay Portal version.

As you know, making sites accessible is one of the hardest things to achieve on web development. In Liferay, we're always trying to improve on this area. For some time now, we've had a hidden Skip to Content link that shows on the first Tab stroke. This grants keyboard users a fast way to access the content and skip all the navigation elements on the top of the page.


For Liferay Portal 7.0, we wanted to take this idea a little bit further. Now, instead of just a link, we provide a small list of actions that are sequentially activated and allows a keyboard user to access specific parts of the page very quickly.

The good news is that, in addition to the out of the box shortcuts that some of the portlets will provide, you can use this in your themes to add shortcuts from your themes:


<@liferay.quick_access contentId="#main-content" />


Also, with the new liferay-ui:quick-access-entry taglib you can add not only anchors, but custom actions via JavaScript as well!!

String taglibOnClick = "Liferay.Util.focusFormField('#" + namespace + "keywords');";

<liferay-ui:quick-access-entry label="skip-to-search" onClick="<%= taglibOnClick %>" />


What do you think? Will you be adding quick access shortcuts to your developments?

New feature for Liferay 7: Localize Email Notifications

General Blogs April 28, 2014 By Chema Balsas Staff

Hi everyone!

For quite some time, one of our community's most requested features has been the possibility to localize all email notifications sent from your portal. Finally, the wait is over. Email localization for notifications has officially landed on master and will be publicly available in Liferay Portal 7.0.

Additionally, as part of the effort of localizing the notifications, a new liferay-ui:email-notification-setting taglib has been created that should help everyone localize their emails easily by using:

  emailBody='<%= LocalizationUtil.getLocalizationXmlFromPreferences(
      companyPortletPreferences, renderRequest, "adminEmailVerificationBody", "settings", 
      ContentUtil.get(PropsValues.ADMIN_EMAIL_VERIFICATION_BODY)) %>'
  emailSubject='<%= LocalizationUtil.getLocalizationXmlFromPreferences(
      companyPortletPreferences, renderRequest, "adminEmailVerificationSubject", "settings", 
      ContentUtil.get(PropsValues.ADMIN_EMAIL_VERIFICATION_SUBJECT)) %>'fieldPrefix="settings"
  showEmailEnabled="<%= false %>"

What do you think? Is there any other improvements you'd like to see around this?

Hope you enjoy...

Showing 3 results.