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:
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:
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