En busca del portlet perdido


Hay veces que tenemos que modificar un portlet que no sabemos en cuál de las 200 páginas del site está. Y, hay otras veces, que lo tenemos localizado pero no sabemos si se está utilizando en otras páginas.

1. Averiguar el nombre del portlet

Los portlets por defecto están definidos por números. El listado de portlets por defecto de un server se puede encontrar en el fichero /webapps/ROOT/WEB-INF/portlet-custom.xml

Por ejemplo el Asset Publisher sería el 101.

Los portlets custom podemos saber su nombre mirando el portlet id o portlet name en /docroot/WEB-INF/liferay-display.xml o /docroot/WEB-INF/portlet.xml

Hay que tener en cuenta que al generar el id ignora espacios o guiones, por lo que un <portlet-name>custom-name</portlet-name> pasaría a ser customname_WAR_customnameportlet

Si tenemos localizado una de las páginas donde aparece el portlet también podemos sacar su id accediendo a la ‘Configuration’ del portlet y después a la pestaña ‘Sharing’.

2. Buscar las páginas en las que se encuentra nuestro portlet

Una vez tenemos el nombre de nuestro portlet ya podemos utilizar la siguiente consulta SQL para averiguar en qué páginas se encuentra.

SQL: SELECT friendlyURL, typeSettings FROM databasename.Layout WHERE typeSettings LIKE ‘%customname%’;

Ésta consulta nos mostrará las urls de las páginas en las que podemos encontrar nuestro portlet. Además, está el apartado ‘typeSettings’ que nos indica todos los portlets que contiene dicha página, aparte del que estábamos buscando.

También existe una aplicación para Liferay 6.1 que muestra esta información, se puede encontrar ‘Where is my portlet’ en el ‘Marketplace’ 

Espero que la explicación os ayude a encontrar esos portlets que hace tiempo desaparecieron de vuestra memoria.

¡Un saludo!


Leave a Reply

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