Ampliando el portlet de notificaciones de liferay 6.x

La semana pasada Alfredo Sanchez, del equipo de zylk.net, estuvo haciendo algunas pruebas de desarrollo con la versión 6 del gestor de portales de Liferay. Los conceptos que se querían probar eran los siguientes:

  • El servicio de notificaciones, que está accesible en el core del producto
  • La posibilidad de añadir portlets de manera estática desde el portal-ext.properties, tal como está añadido el portlet de chat.

Para ello hizo el siguiente desarrollo, un portlet que verifica las notificaciones para un usuario/role/comunidad/portal y muestra la notificación en un pop-up si el usuario logueado tiene pendiente leer alguna notificación concreta destinada a él. Las notificaciones a comunidad/role/portal se pueden añadir desde el panel de administración de notificaciones del producto, pero las de usuario, pese que el servicio las permite, deben añadirse de manera programática. La comprobación de si existe o no una notificación se hace en cada petición, no se ha implementado un patrón poll tipo el que hay implementado en el portlet de chat dado que no hemos considerado crítico que se notifique instantaneamente.

Las conclusiones son las siguientes:

  • El servicio de notificaciones se puede utilizar como canal de comunicaciones entre usuarios de manera más o menos sencilla, para ello se podría ampliar el portlet de notificaciones para que permita la comunicación user to user.
  • Sería interesante poder añadir código html con un rich-editor a las notificaciones creadas desde el panel de administración
  • Sería interesante que las notificaciones fueran internacionalizables.
  • Sería interesante que los conceptos que se manejan en el portlet de actividades, tipo de objeto (classname) origen de la actividad y objeto origen de la actividad classPK, estuvieran accesibles para su uso en el servicio de notificaciones del core.


A continuación mostramos unas capturas del portlet y un link para la descarga del mismo. Para añadirlo basta con incluir en el portal-ext.properties la referencia al mismo:

 En esta primera captura vemos el popup con las notificaciones pendientes de leer.

Si pinchamos en el botón de cierra las notificaciones no volverán a mostrarse hasta que no se vuelva al portal.

Marcamos una notificación como leída:

Y nos quedan por leer el resto de notificaciones.

El parámetro que hay que modificar en el portal-ext.properties es el siguiente,

layout.static.portlets.all=notifications_WAR_notificationsportlet

00

Más entradas de blog

Añadir comentarios