Localize Layout Friendly URLs

Company Blogs August 7, 2013 By Sergio González Staff

Lately I have been working on a new feature that many users have asked for a long time and Liferay didn't support it (yet).

As most of you know, friendly URLs are very important nowadays for several reasons, although I would say that the two most important ones are:

  • SEO: it definitely improves the ranking of a site when the urls of that site are friendly
  • Usability: from the user point of view, if we have a nice friendly url we provided to the end user with helpful information. Even sometimes, friendly urls can behave as a breadcrumb, and allows the user to modify them and visit the pages they want just by modifying the url. 

In Liferay 6.1 and previous, site admins could add Pages and update friendly URLs for those pages from the UI. However, those friendly URLs were not localizable. This means that, in sites with more than one language, the friendly URL for the pages was useful only for part of the people (people who understand the language the friendly URLs are written)

From 6.2 and on we allow localized friendly urls, so for a single page, we can have many different friendly urls for different locales. Then, for the homepage we could have /home (english) and /inicio (spanish), so when an user whose language is English hits the frontpage, he will see in the url www.example.com/home and if i'ts a Spanish user he will see www.example.com/inicio

 

 

All the links will be generated considering the user language, so the right friendly url will be automatically used for every link. Then, you may be wondering, what will happen if english user copy/paste his URL (www.example.com/home) to his spanish friend? Will the spanish user access the right page? Will he see the content in English? Spanish?

In that case, the user will be automatically redirected to the friendly url in his own language and a non obtrussive message will be displayed for 10 seconds notifying the redirect to the user and allowing him to access the original link.

 

I Hope you like it. I'm looking forward to hear your feedback.

Repositorios CMIS en Liferay 6.1

Company Blogs July 6, 2011 By Sergio González Staff

Con cada nueva versión, Liferay incluye muchas nuevas funcionalidades que son demandadas por los usuarios y la comunidad. Una de las mejoras más importantes de la versión 6.1 es la renovada gestión documental de la Biblioteca de Documentos. Las nuevas funcionalidades de gestión documental que se han incluido en esta versión son las siguientes:

  1. Integración con otros repositorios que soporten el protocolo CMIS. La conexión con otros repositorios se realiza desde la interfaz gráfica y ofrece dos modalidades de conexión: AtomPub o WebServices.
  2. Una nueva interfaz que mejora la usabilidad y la confianza del usuario a la hora de gestionar documentos y carpetas. Tres nuevas vistas (icono, detalle y lista) y el uso de AJAX ofrecen una nueva experiencia al usuario que pensará que se encuentra ante una aplicación de escritorio.
  3. Hemos creado un nuevo concepto: "Tipo de documento". Los usuarios ya no añaden un archivo "Sergio Gonzalez.doc", ahora añaden un "Curriculum" que contiene un archivo "Sergio Gonzalez.doc" y donde los usuarios pueden rellenar unos metadatos personalizados (además de los datos que son extraidos automáticamente en función del tipo de documento)

Esta entrada se centra en la primera funcionalidad: la integración de Liferay con repositorios CMIS. 

Los usuarios que llevan tiempo utilizando Liferay sabrán que en la versión 6.0 de Liferay ofrecíamos un Hook que permitía conectar Liferay con repositorios CMIS (CMISHook). Esto era el primer paso en el proceso de conexión de Liferay con otros repositorios. Este hook le daba la posibilidad al usuario de almacenar sus documentos en un repositorio CMIS (al igual que existen otros hooks como JCRHook o S3Hook que almacenan los documentos en otros repositorios), pero su uso quedaba mermado cuando se quería ampliar esta funcionalidad, ya que desde el punto de vista del usuario no era usable, ya que los nombres de los documentos eran números (1.0 2.0 etc) y si se cambiaban documentos desde el repositorio los datos que mostraba Liferay eran inconsistentes porque no había sincronización.

La versión 6.1 mejora la integración y lo incluye dentro del núcleo de Liferay. Con esta versión podemos "montar" repositorios CMIS dentro de Liferay como si se tratase de una carpeta más de Liferay. Montar nuevos repositorios en Liferay es tan sencillo como esto:

 

Para autenticarnos contra el repositorio a través de Liferay es necesario disponer de algún sistema de SingleSignOn (Liferay se puede configurar de hecho para que se comporte como tal) o en su defecto tener el mismo nombre de usuario y contraseña en Liferay y en el repositorio.

Liferay gestiona el permiso que autoriza o no a un usuario a acceder al repositorio, pero no gestiona los permisos dentro del repositorio. La gestión de permisos dentro del repositorio es delegada al sistema externo. Por lo tanto, para permitir el acceso a una carpeta/documento determinado del repositorio es necesario modificar los permisos desde el sistema externo. Lo mismo ocurre con otras características, como por ejemplo "workflow". Cuando gestionamos documentos de un repositorio el workflow que se aplica es el que está definido en el sistema externo y no el que se encuentre definido en Liferay.

Liferay se encuentra permanentemente sincronizado con el repositorio, de modo que cualquier cambio que se produzca sobre los documentos del repositorio se refleja en Liferay y viceversa. 

Aquí os dejo una captura de pantalla para que veáis la apariencia de la Biblioteca de documentos con un repositorio de Alfresco conectado.

New way of publishing content with the Asset Publisher

Company Blogs January 4, 2011 By Sergio González Staff

I want to make a quick update regarding the latest thing we've been working on: new way of publishing content with the Asset Publisher.

The 'classic' way of publishing content with the Asset Publisher consisted on clicking the "Add New" button, the page changed the context to the respective page of the portlet (i.e. Document Library) where the user had to fill the information, and publish it. This could create confussion to the user because of the change of context within pages and portlets.

We thought we could improve this by using a pop up that would be opened when the user clics "Add New" button. Then, the user could fill the information and publish the new content while staying at the same page.

From a user point of view, the content of the pop up remains with the same view. However, from a technical point of view, the pop up is implemented using a AUI Dialog Iframe that links to the respective portlet (i.e. Document Library) in the Control Panel.

Using the Portlet from the Control Panel (instead of adding the portlet to the community/organization/group) allows us to add new features, as the ability to create new content in all the different scopes within the same Asset Publisher and without creating any security hole (In next image you can see that there are two buttons to add content). 

 

This way, publishing new content becomes even easier and more powerful with Liferay.

Hope you enjoy it! :)
Cheers!

Hook with default site and page templates

Company Blogs July 13, 2010 By Sergio González Staff

Liferay 6 offers a new functionality to easily manage sites and pages by using templates. New templates can be designed in Page Templates and Site Templates sections in Control Panel. Administrators can design templates, include portlets, select layouts, look and feel, and everything you can set when creating a new page. They can also create site templates by defining pages to include when creating communities or organizations. 

When adding a new page, administrators will be able to select one of the previously created page templates. 

Adding new page template

Same when creating new communities: select the site template to use for public and private pages.

Adding new site template

Liferay 6 will be released including a hook containing examples of page and site templates that can be used out of the box when adding pages, communities or organizations. 

Default page templates included in the hook:

  1. Blog: Create, edit, and view blogs from this page. Explore topics using tags, and connect with other members that blog.
  2. Content: Create, edit, and explore content with this page. Search available content, explore related content with tags, and browse content categories.
  3. Wiki: Collaborate with members through the wiki on this page. Discover related content through tags, and navigate quickly and easily with categories.

Default site templates included in the hook:

  1. Public: contains home, blog, wiki, and forum page. A suite of social collaboration tools including blogs, polls, wiki, and message boards. 
  2. Private: contains home, calendar, documents, and images page. A place to manage your documents and images, follow your upcoming events in the calendar, search the directory or see the announcements. 

Some screenshots of the default public and private site templates... Hope you like it!

Default public site template

Default Private site template

Showing 4 results.