Archive for the ‘configuracion’ Category

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”));

Antes de comenzar

Sunday, November 9th, 2008

Antes de comenzar con Liferay, voy a hacer un resumen de las propiedades más importantes

portal-ext.properties

# El nombre de la compañia por default

company.default.web.id=miproyecto.com

# Especifica como el usuario puede loguearse al sistema

# Valores que puede tomar esta propiedad: emailAddress, screenName, userId

company.security.auth.type=emailAddress

# Permite si un usuario no logueado puede crear o no una cuenta

company.security.strangers=true

# Locales disponibles

locales=es_ES

# Si esta propiedad esta en true, un usuario invitado toma como por default el lenguaje de la aplicacion.

# Caso contrario toma el valor de header del request.

locale.default.request=false

# Los Time Zones disponibles

time.zones=America/Buenos_aires

# Directorio donde Liferay guardar los indices de Lucene, los archivos de Document Library, Jackrabbit, etc.

resource.repositories.root=${user.home}/liferay/miproyecto

# Si esta propiedad esta en true, carga todo el css en un archivo comprimido (SUPER RECOMENDADO)

theme.css.fast.load=true

# Si esta propiedad esta en true, carga todo el javascript en un archivo comprimido (SUPER RECOMENDADO)

javascript.fast.load=true

system-ext.properties

#País y Lenguaje predeterminado

user.country=AR
user.language=es

# Time Zone predeterminado

user.timezone=GMT