En varias ocasiones tuve el requerimiento de no mostrar algunos portlets en la lista de portlets disponibles para ser agregados a una página, y este ocultamiento no se podia hacer mediante permisos porque el usuario tenia que usar el portlet y no debia tirar el error de que el portlet no estaba disponibles. Entonces me di cuenta de que algunos portlets del core de Liferay no estaban disponibles para ser agregados a una página, por ejemplo el portlet de Look and Feel, el My Account o el del Page Setting. Para esto hay que declarar al portlet como portlet de sistema en liferay-portlet.xml.
liferay-portlet.xml
<portlet>
<portlet-name>MIPORTLET</portlet-name>
…
<system>true</system>
</portlet>
Desde otro portlet vamos a llamar a MIPORTLET
<%
PortletURL miPortletURL = new PortletURLImpl(
request, “MIPORTLET”, plid, PortletRequest.ACTION_PHASE);
miPortletURL.setWindowState(WindowState.MAXIMIZED);
miPortletURL.setPortletMode(PortletMode.VIEW);
miPortletURL.setParameter(“struts_action”, “/miportlet/view”);
%>
<a href=”<%= miPortletURL %>”>IR A MI PORTLET</a>
Tags: configuracion, desarrollo, portlet