Posts Tagged ‘portlet’

Liferay y Maven

Friday, December 4th, 2009

En el último tiempo, Maven se me conviertio en una herramienta indispensable al momento de programar.  En el blog de Liferay salio un post que habla como generar un portlet con Maven, dicho pluggin no es oficial de Liferay, seguramente el fin de semana lo voy a probar y les cuento como funciona.

En este link se detallan las instrucciones para crear un portlet con Maven.

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>

Mostrar un portlet en un PopUp

Wednesday, November 12th, 2008

Armo la URL

<portlet:renderURL windowState=”<%= LiferayWindowState.EXCLUSIVE.toString() %>” var=”url”>

<portlet:param name=”struts_action” value=”/miportlet/popupview” />

</portlet:actionURL>

Llamo al POPUP

<script type=”text/javascript”>

function mostrar_popup() {

var _dialog = Liferay.Popup( {

width: 700,

modal: true,

message: ‘<div class=”loading-animation” />’,

position: ['center', 100],

title: <liferay-ui:message key”popup-title”/>,

resizable: false,

draggable: false,

onClose: function() {

// se ejecuta cuando el portle se cierra

}

} );

jQuery.ajax( {

url: “<%= url %>”,

success: function(message) {

_dialog.html(message);

}

} );

}

</script>

<a href=”javascript:mostrar_popup();”>mostrar popup</a>

Al definir el estado de la ventana como exclusivo, el resultado de la respuesta solamente va a ser el contenido del portlet al cual se invoca.

Ejemplo:

:

Crear un Portlet con el Plugins SDK

Saturday, November 8th, 2008

Para crear un portlet vamos a utilizar la versión 5.1.2 de Liferay, y requerimos los siguientes componentes:

  1. ANT 1.7
  2. JAVA
  3. MySQL (opcional)
  4. liferay-portal-tomcat-5.5-5.1.2
  5. liferay-plugins-sdk-5.1.2

Liferay se puede descargar desde http://sourceforge.net/projects/lportal/.

Paso a seguir:

  • Variables de entorno

SDK_HOME=/home/joyola/desarrollo/liferay/liferay-plugins-sdk-5.1.2
TOMCAT_HOME=/home/joyola/desarrollo/liferay/liferay-portal-tomcat-5.5-5.1.2

  • Configuracion del SDK

Creamos el archivo: $SDK_HOME/build.${user.name}.properties
Todas la propiedades utilizadas aca, sobreescriben el valor por default de las propiedades del archivo build.properties.
A continuación se especifican aquellas propiedades necesarias para comenzar.

#
# Specify the paths to an unzipped Tomcat 5.5.x bundle.
#
app.server.dir=${project.dir}/../liferay-portal-tomcat-5.5-5.1.2
app.server.portal.dir=${app.server.dir}/webapps/ROOT
app.server.classes.portal.dir=${app.server.portal.dir}/WEB-INF/classes
app.server.lib.portal.dir=${app.server.portal.dir}/WEB-INF/lib
app.server.lib.global.dir=${app.server.dir}/common/lib/ext
#
# Plugins will be deployed to this directory. Make sure that Liferay is
# also set to scan this directory.
#
auto.deploy.dir=${user.home}/liferay/deploy

  • Crear el portlet

Ejecutamos el comando: $SDK_HOME/portlets/create.sh miportlet “Mi Portlet”
Este comando tiene 2 parametros:

  1. Portlet Id
  2. Display name
  • Tasks más utilizados
  1. clean: elimina los archivos generados por los otros comandos
  2. compile: compila los java
  3. war: genera el war
  4. deploy: compila, genera el war y lo copia al directorio deploy
  • Ejecutamos el deploy

En el directorio $SDK_HOME/portles/miportlet-portlet, ejecutamos el comando: ant deploy

Acá tenemos un problema con esta versión, el archivo build.xml no es copiado cuando se crea el portlet.  Por lo tanto tenemos que copiar el build.xml de una versión anterior del plugin, también es necesario agregar el build.xml al portlet.zip para que la proxima vez que creamos un portlet no tengamos este mismo error.

  • Tomcat

Iniciamos el TOMCAT, para esto ejecutamos el comando:
$TOMCAT_HOME/bin/startup.sh

  • Agregamos el portlet a una página
  1. Entar a http://localhost:8080/c/portal/login
  2. Usuario: test@liferay.com y Password: test
  3. Ir al dock, hacer click en Add Portlet
  4. Buscar el nuevo portlet
  5. Hacer click sobre add

Links:

http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Plugins+SDK