Posts Tagged ‘configuracion’

Portlet de sistema

Wednesday, November 19th, 2008

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>

Configurar las preferencias de los Portlets

Monday, November 10th, 2008

En primer lugar vamos a crear un portlet con el Plugin SDK y luego vamos a editar el archivo $SDK_HOME/docroot/WEB-INF/portlet.xml.

En este caso vamos a ver la configuración del Portlet RSS para tener un ejemplo concreto para ver, luego de agregar las propiedades vamos a ver como obtenemos dichos valores.

<portlet>
    <portlet-name>RSS</portlet-name> 
    <display-name>RSS</display-name> 
    <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class> 
    <init-param> 
         <name>view-action</name> 
         <value>/rss/view</value> 
    </init-param> 
    <expiration-cache>0</expiration-cache> 
    <supports> 
          <mime-type>text/html</mime-type> 
    </supports> 
    <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle> 
    <portlet-preferences> 
         <preference> 
              <name>urls</name> 
              <value>http://rss.news.yahoo.com/rss/tech</value> 
              <value>http://csmonitor.com/rss/scitech.rss</value> 
              <value>http://partners.userland.com/nytRss/technology.xml</value> 
         </preference> 
         <preference> 
              <name>items-per-channel</name> 
              <value>2</value> 
         </preference>
    </portlet-preferences> 
    <security-role-ref> 
          <role-name>power-user</role-name> 
     </security-role-ref> 
     <security-role-ref> 
          <role-name>user</role-name> 
     </security-role-ref>
</portlet>

En ese caso hemos creado 2 preferencias, urls y items-per-channel.

Para obener estos valores hay que hacer:

PortletPreferences porttletPreferences = renderRequest.getPortletPreferences();

String[] urls = porttletPreferences.getValues(“urls”, new String[]());

long ipc = GetterUtil.getLong(portletPreferences.getValue(“items-per-channel”));