Un Hook es una herramienta que ofrece Liferay para poder, entre otras cosas, sobrescribir funcionalidades que vienen por defecto. Modificando un archivo de una ruta concreta, el archivo del Hook pasa a ser el utilizado en lugar del que utilizaría un Liferay no hookeado. La ventaja de éste sistema es que, retirando el Hook, Liferay regresa a su estado original.

Los usos más comunes son la modificación del comportamiento de ciertas funcionalidades, y la localización del sitio web (traducción a diferentes idiomas).

Pasos para la utilización de un Hook:

1. Crear el hook

– Creamos un nuevo Liferay Plugin Project

01.png

– Elegimos el nombre del proyecto, seleccionamos para que SDK se aplicará el Hook y en el tipo de plugin seleccionamos “Hook”.

02.png

Esto generará el árbol básico junto con los archivos de configuración

03.png

2. Configurar el hook

En el archivo “liferay-hook.xml ” es donde se indican los archivos de donde se extraerán las traducciones y el directorio donde se colocarán los archivos a modificar.

<hook>
      <language-properties>content/Language_es.properties</language-properties>
      <language-properties>content/Language_en.properties</language-properties>
      <language-properties>content/Language_fr.properties</language-properties>
      <language-properties>content/Language_de.properties</language-properties>
      <language-properties>content/Language.properties</language-properties>
      <custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir>
<hook>

3. Realizar las modificaciones

3.1 Modificar funcionalidades

Lo primero es saber la ruta en la que se encuentran los archivos a modificar. Los archivos base los podemos encontrar en la carpeta ROOT dentro del liferay-portal.

En nuestro caso modificaremos el comportamiento del buscador de Liferay el cual se encuentra en “\ROOT\html\portlet\search”, para ello copiamos los archivos que nos interesa modificar.

Una vez conocemos su ruta la replicamos en nuestro hook, teniendo en cuenta que el ROOT es nuestra carpeta custom_jsps (la que definimos en el paso anterior).

– Path original: \ROOT\html\portlet\search

– Path en el hook: \custom_jsps\html\portlet\search

 Ya podemos pegar en su interior los archivos que posteriormente modificaremos. Solo es necesario copiar los archivos a modificar.

05.png
06.png

3.2 Añadir traducciones

A diferencia de lo que hemos hecho con el buscador, los archivos utilizados para los idiomas no machacan las traducciones por defecto (a no ser que usemos la misma key) sino que se añaden a las que ya hay.

Para añadir la localización a distintos idiomas se necesita un archivo por cada idioma que deseamos traducir. El nombre de los archivos es Language_xx.properties donde xx corresponde al código del idioma.

Estos archivos van en la ruta que hemos definido en el “liferay-hook.xml” que suele ser dentro de “WEB-INF/src/content

07.png

Las traducciones que realicemos en estos archivos afectarán a todo el portal.

4.2 Aplicar los cambios

Una vez hemos realizado las modificaciones que nos interesan y/o añadido las traducciones a los idiomas deseados, solo queda realizar el build e instalarlo en nuestro Liferay.

En el próximo blog os explicaremos con más detalle cómo utilizar los archivos del Language para realizar la localización del portal. ¡ Nos leemos !


Leave a Reply

Your email address will not be published. Required fields are marked *