Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Seminario Liferay 6.1 sobre gestion avanzada de portales y tecnologias JAVA Empresariales. CLEFormacion
1. Características más
importantes de Liferay 6.1
Liferay 6.1
La gestión avanzada de portales y las
tecnologías Java Empresariales
Viernes 8 de Junio de 2012
Centro de Innovación del BBVA (Madrid)
Jesús Salinas Revelles
lunes 11 de junio de 2012
2. Características más importantes de Liferay 6.1
Índice
‣ Introducción.
‣ El panel de control.
‣ Organizaciones y sitios web.
‣ Usuarios y roles.
‣ Trabajando con taxonomías.
‣ Contenidos web.
‣ Multimedia.
‣ Plantillas.
lunes 11 de junio de 2012
3. Características más importantes de Liferay 6.1
Índice
‣ Flujos de trabajo.
‣ Listas de datos dinámicas.
‣ Redes sociales.
‣ Campos personalizados.
‣ OpenSocial.
‣ Stage.
‣ Configuración.
lunes 11 de junio de 2012
4. Características más importantes de Liferay 6.1
Introducción
‣ Pasamos a comentar a continuación algunas de las
funcionalidades más importantes que nos ofrece Liferay Portal
por defecto.
‣ Son funcionalidades que puede aprender a configurar cualquier
usuario de la plataforma.
lunes 11 de junio de 2012
5. Características más importantes de Liferay 6.1
El panel de control
‣ Introducción.
‣ La sección del usuario.
‣ La sección Liferay.
‣ La sección Portal.
‣ La sección Servidor.
lunes 11 de junio de 2012
6. Características más importantes de Liferay 6.1
Introducción
‣ El panel de control es la herramienta de administración y
configuración del sistema.
‣ Permite al usuario acceder a funcionalidades que ofrece la
plataforma en función de su role, es decir, el panel de control
es un área dentro del gestor que cambia en función de los
permisos que tiene cada usuario.
‣ Para acceder a él, por defecto, se hace mediante la barra Ir a.
lunes 11 de junio de 2012
7. Características más importantes de Liferay 6.1
Introducción
‣ Si eres administrador el panel de control tiene cuatro
secciones:
‣ Cuenta de usuario, Liferay, Portal y Servidor.
lunes 11 de junio de 2012
8. Características más importantes de Liferay 6.1
Introducción
‣ Si eres editor la barra de administración es muy limitada y su
panel de control también.
lunes 11 de junio de 2012
11. Características más importantes de Liferay 6.1
La sección Portal
‣ Nos permite realizar todo tipo de tareas administrativas:
Esta sección nos permite
gestionar usuarios,
grupos de usuarios, etc
lunes 11 de junio de 2012
12. Características más importantes de Liferay 6.1
La sección Portal
Este panel permite listar
todos los usuarios,
‣ Gestión de usuarios: añadir, buscar, etc.
Esta sección nos Listado de usuarios
permite gestionar
usuarios, grupos de
usuarios, etc
lunes 11 de junio de 2012
13. Características más importantes de Liferay 6.1
La sección Servidor
‣ En esta sección encontramos las siguientes opciones:
lunes 11 de junio de 2012
14. Características más importantes de Liferay 6.1
Organizaciones y sitios web
‣ Hasta la versión 6 de Liferay se manejan dos conceptos:
‣ Organización y
‣ Comunidad.
‣ Para la versión 6.1 desaparece el concepto de Comunidad y
se incorpora el concepto de Sitio Web.
lunes 11 de junio de 2012
15. Características más importantes de Liferay 6.1
Organización
‣ Las organizaciones son colecciones de usuarios jerárquica.
‣ Las organizaciones son recursos que pueden tener páginas.
‣ Hay un tipo especial de organización llamado location, que
define donde se encuentra.
‣ Las organizaciones son muy útiles para definir las jerarquías a
las que pertenecen los usuarios.
lunes 11 de junio de 2012
16. Características más importantes de Liferay 6.1
Organización
Una organización es una
estructura jerárquica.
lunes 11 de junio de 2012
17. Características más importantes de Liferay 6.1
Organización
‣ Por ejemplo: Se está utilizando Liferay para trabajar con una
gran organización. Si se quiere definir el usuario Antonio
Molina mediante el organigrama de la empresa. Se supone que
trabaja como ingeniero informático en la oficina de Sevilla, en
la división Sur, en el departamento de I+D+i. Este usuario
debe ser miembro de las siguientes organizaciones:
‣ I+D+i.
‣ División Sur.
‣ Localización Sevilla.
‣ Las organizaciones pueden formar parte de un sitio web.
lunes 11 de junio de 2012
18. Características más importantes de Liferay 6.1
Organización
‣ Los miembros de una organización SÓLO pueden ser
usuarios:
lunes 11 de junio de 2012
19. Características más importantes de Liferay 6.1
Organización
‣ Se pueden asignar roles de organización a una organización,
de tal forma que, todos los usuarios que pertenezcan a dicha
organización automáticamente tendrá esos roles:
lunes 11 de junio de 2012
20. Características más importantes de Liferay 6.1
Sitio web
‣ Como ya se ha comentado antes, el sitio web es la evolución
del antiguo concepto de comunidad:
lunes 11 de junio de 2012
21. Características más importantes de Liferay 6.1
Sitio web
‣ Para cada sitio web podemos realizar las siguientes
operaciones:
lunes 11 de junio de 2012
22. Características más importantes de Liferay 6.1
Sitio web
‣ Por ejemplo, se pueden gestionar los miembros de un sitio
web:
lunes 11 de junio de 2012
23. Características más importantes de Liferay 6.1
Usuarios
‣ Personas que acceden de alguna forma al portal que se quiere
desarrollar:
lunes 11 de junio de 2012
24. Características más importantes de Liferay 6.1
Usuarios
‣ Los usuarios pueden acceder a los portales, los usuarios
pertenecen a organizaciones o sitios web. Pueden
agruparse de varias formas:
‣ Miembros de organizaciones.
‣ Pueden encontrarse dentro de grupos de usuarios.
‣ Miembros de sitios web.
‣ Los usuarios tienen asociados unos roles que definen qué
pueden y qué no pueden hacer en función de dónde se
encuentran.
lunes 11 de junio de 2012
25. Características más importantes de Liferay 6.1
Usuarios
‣ Los usuarios pueden acceder a los portales.
‣ Los usuarios se organizan en grupos de usuarios.
‣ Los usuarios pertenecen a organizaciones.
‣ Las organizaciones pueden organizarse en jerarquías.
‣ Los usuarios, grupos y organizaciones pueden pertenecer a
comunidades que tienen un interés común.
lunes 11 de junio de 2012
26. Características más importantes de Liferay 6.1
Grupo de usuarios
‣ Conjunto arbitrario de usuarios creado por un administrador.
lunes 11 de junio de 2012
27. Características más importantes de Liferay 6.1
Grupo de usuarios
‣ Sólo usuarios pueden ser miembros de un grupo:
lunes 11 de junio de 2012
28. Características más importantes de Liferay 6.1
Grupo de usuarios
‣ Un grupo de usuarios puede tener asociado un conjunto de
páginas.
‣ Importante: un grupo de usuarios NO pueden tener
asociados roles.
lunes 11 de junio de 2012
29. Características más importantes de Liferay 6.1
Equipos
‣ Grupo de usuarios definido exclusivamente para un sitio web:
lunes 11 de junio de 2012
30. Características más importantes de Liferay 6.1
Equipos
‣ Se dan de alta usuarios dentro de un equipo:
lunes 11 de junio de 2012
31. Características más importantes de Liferay 6.1
Equipos
‣ Una vez definido un equipo, se pueden definir permisos en las
aplicaciones del portal sobre estos (siempre sobre el sitio web
donde hayan sido definidos).
lunes 11 de junio de 2012
32. Características más importantes de Liferay 6.1
Roles
‣ Identificador lógico que tiene asociado una serie de permisos.
‣ Existen tres tipos:
‣ Roles normales.
‣ Roles de organización.
‣ Roles de sitios.
‣ Se les denomina role scopes. Estos roles se utilizan para
definir permisos dentro de un portal, organización o
comunidad.
‣ Usuarios, comunidades y organizaciones pueden asociarse a
un determinado role.
lunes 11 de junio de 2012
33. Características más importantes de Liferay 6.1
Trabajando con taxonomías
‣ La gestión de categorías se realiza mediante el panel de
control, dentro de la sección Liferay:
lunes 11 de junio de 2012
34. Características más importantes de Liferay 6.1
Trabajando con taxonomías
‣ Se pueden crear nuevos vocabularios, por ejemplo, un
vocabulario para el portal del Empleado.
‣ Se puede definir la visibilidad del vocabulario en función del
role del usuario.
lunes 11 de junio de 2012
35. Características más importantes de Liferay 6.1
Trabajando con taxonomías
‣ Se pueden crear categoría asociadas a un vocabulario
lunes 11 de junio de 2012
36. Características más importantes de Liferay 6.1
Trabajando con taxonomías
‣ La gestión de etiquetas se realiza mediante el panel de
control, dentro de la sección Liferay:
lunes 11 de junio de 2012
37. Características más importantes de Liferay 6.1
Trabajando con taxonomías
‣ Se pueden crear etiquetas:
lunes 11 de junio de 2012
38. Características más importantes de Liferay 6.1
Trabajando con taxonomías
‣ Como ya se ha comentado en la introducción, la clave de las
etiquetas es que pueden ser creadas por el usuario de forma
totalmente flexible y dinámica.
lunes 11 de junio de 2012
39. Características más importantes de Liferay 6.1
Contenidos web
‣ La generación de contenidos web es uno de los elementos más
importantes dentro del concepto de portal, dado que permite,
a los gestores del portal y a los usuarios que acceden a él,
dotar de contenidos a la herramienta.
‣ Liferay ofrece una serie de funcionalidades que permite
generar, revisar y mantener contenidos web de una forma
cómoda, flexible y avanzada:
‣ Editor de contenidos web: WYSWYG.
‣ Portlets auxiliares para el manejo de contenidos.
‣ Integración con flujos de trabajo.
‣ ...
lunes 11 de junio de 2012
40. Características más importantes de Liferay 6.1
Contenidos web
‣ Dentro de la sección Liferay podemos encontrar un enlace
llamado Contenidos Web:
lunes 11 de junio de 2012
41. Características más importantes de Liferay 6.1
Contenidos web
‣ Esta sección nos permite crear, editar, borrar y buscar
contenidos web.
lunes 11 de junio de 2012
42. Características más importantes de Liferay 6.1
Contenidos web
‣ La lista de portlets para la gestión de contenidos se encuentra
disponible mediante la opción Añadir de la barra superior, en la
opción Más:
lunes 11 de junio de 2012
43. Características más importantes de Liferay 6.1
Contenidos web
‣ Liferay permite crear contenidos web totalmente
personalizados.
‣ De forma estándar, cuando se quiere crear contenidos web se
utiliza el portlet Contenido web accesible desde el panel de
control:
lunes 11 de junio de 2012
44. Características más importantes de Liferay 6.1
Contenidos web
‣ Hasta ahora no hemos tenido en cuenta:
Las estructuras y las plantillas nos permitirán ofrecer valor
añadido a la hora de definir nuevos contenidos web
lunes 11 de junio de 2012
45. Características más importantes de Liferay 6.1
Soporte a múltiples lenguajes
‣ Liferay proporciona soporte a diferentes lenguajes, la gestión
de contenidos web no podía ser menos.
‣ Podemos definir el mismo contenido web en diferentes
idiomas, de tal manera que si se cambia el idioma de
visualización de contenidos, cambia también el del contenido
web.
‣ El proceso se realiza mediante una etiqueta llamada
localizado (en español).
lunes 11 de junio de 2012
46. Características más importantes de Liferay 6.1
Soporte a múltiples lenguajes
‣ Se crea un documento en inglés:
lunes 11 de junio de 2012
47. Características más importantes de Liferay 6.1
Soporte a múltiples lenguajes
‣ Posteriormente se edita:
lunes 11 de junio de 2012
48. Características más importantes de Liferay 6.1
Soporte a múltiples lenguajes
‣ El documento se edita cambian el idioma en el que está
escrito:
lunes 11 de junio de 2012
49. Características más importantes de Liferay 6.1
Multimedia
‣ Documentos y Multimedia actúa como un disco compartido
virtual, con atributos y metadatos de fichero, versionado y
personalización de carpetas.
‣ Los administradores pueden manejar carpetas y documentos,
cambiar los permisos y navegar por la biblioteca de
documentos.
lunes 11 de junio de 2012
50. Características más importantes de Liferay 6.1
Multimedia
‣ Interfaz de usuario innovadora, drag and drop, selección con
ratón.
‣ Repositorio unificado: conecta a múltiples repositorios:
sharepoint, documentum, alfresco.
‣ Previsualización de formatos estándares.
‣ Definir nuevos tipos de documentos: los documentos tienen
características específicas: formulario visual para que el
usuario pueda incorporar.
‣ Aplicación iphone.
‣ Dropbox: Liferay Sync.
lunes 11 de junio de 2012
52. Características más importantes de Liferay 6.1
Flujos de trabajo
‣ Configuración de los flujos de trabajo utilizados dentro de
Liferay:
lunes 11 de junio de 2012
53. Características más importantes de Liferay 6.1
Listas de datos dinámicas
‣ Esta nueva funcionalidad nos permite crear listas dinámicas:
lunes 11 de junio de 2012
54. Características más importantes de Liferay 6.1
Listas de datos dinámicas
‣ Se pueden definir los datos a manejar:
lunes 11 de junio de 2012
55. Características más importantes de Liferay 6.1
Listas de datos dinámicas
‣ El visor nos permite manejar dichas listas:
lunes 11 de junio de 2012
56. Características más importantes de Liferay 6.1
Redes sociales
‣ Introducción.
‣ Blogs.
‣ Calendario.
‣ Wiki.
‣ Foro.
‣ Mail.
‣ Proyectos de la comunidad.
lunes 11 de junio de 2012
57. Características más importantes de Liferay 6.1
Introducción
‣ Liferay portal proporciona un conjunto de aplicaciones
colaborativas que pueden usarse para construir comunidades
de usuarios para tus webs.
‣ Todas estas aplicaciones comparten una apariencia común,
modelo de seguridad, etc.
‣ Vamos a analizar cómo configurar y administrar blogs,
calendarios, chats,wikis, foros y correo electrónico.
lunes 11 de junio de 2012
58. Características más importantes de Liferay 6.1
Blogs
‣ El término blog procede de web log, web diaria, en español
también conocido como bitácora.
‣ No es más que una lista de entradas donde los usuarios
pueden asociar comentarios.
‣ Un blog es un sitio web que recopila textos o artículos de uno
o varios autores, apareciendo primero el más reciente, a los
que los lectores pueden asociar comentarios.
lunes 11 de junio de 2012
59. Características más importantes de Liferay 6.1
Blogs
‣ Liferay tiene un portlet llamado Blogs que permite
proporcionar un servicio de blogs para los usuarios de la web.
‣ Asociado a este existe un segundo portlet llamado Blogs
Aggregator que recupera entradas de distintos y las organiza
en una lista.
lunes 11 de junio de 2012
60. Características más importantes de Liferay 6.1
Blogs
‣ Portlet Blogs:
‣ Sólo puede crearse una instancia por comunidad u organización.
‣ Si se añade un portlet de este tipo a la página de una comunidad u
organización, se crea un blog compartido para los miembros de la
comunidad u organización.
‣ Si se añade este portlet al espacio personal de un usuario sólo será para
el usuario.
lunes 11 de junio de 2012
61. Características más importantes de Liferay 6.1
Blogs
‣ Portlet Blogs. Configuración:
‣ Por defecto, sólo el dueño de la comunidad puede añadir entradas al blog.
‣ Para modificar este comportamiento se deben cambiar los permisos
asociados.
‣ Una vez solventados los problemas de permisos, el usuario podrá incluir
entradas en el blog haciendo click sobre el botón:
lunes 11 de junio de 2012
63. Características más importantes de Liferay 6.1
Blogs
‣ Agregador de blogs:
‣ Te permite publicar entradas de diferentes bloggers en una página.
lunes 11 de junio de 2012
64. Características más importantes de Liferay 6.1
Calendario
‣ El portlet Agenda (Calendar portlet) es una solución de
calendario muy completa:
lunes 11 de junio de 2012
65. Características más importantes de Liferay 6.1
Calendario
‣ Se pueden incorporar eventos de diferentes tipos, recibir
alarmas vía email o sms, importar o exportar el calendario,
etc.
‣ También se pueden importar y exportar calendarios en
formato ICS para usarlo en otras aplicaciones.
‣ Los calendarios se pueden utilizar como calendarios
compartidos para una comunidad u organización, o como
calendarios personales. Esto se configura definiendo un
determinado ámbito dentro de la configuración del portlet:
lunes 11 de junio de 2012
66. Características más importantes de Liferay 6.1
Wiki
‣ El portlet Wiki ofrece una aplicación Wiki con todas las
características que se esperan.
lunes 11 de junio de 2012
67. Características más importantes de Liferay 6.1
Foros
‣ El portlet nos ofrece en la barra principal enlaces para acceder
a Mensajes recientes, Mis mensajes, etc.
‣ Se pueden añadir nuevas categorías y crear nuevos hilos de
discusión.
lunes 11 de junio de 2012
68. Características más importantes de Liferay 6.1
Foros
‣ Categorías:
‣ Se pueden buscar y crear categorías dentro del foro, es una forma de
organizar el flujo de información.
lunes 11 de junio de 2012
69. Características más importantes de Liferay 6.1
Foros
‣ Asociados a cada categoría se crean hilos de discusión:
lunes 11 de junio de 2012
70. Características más importantes de Liferay 6.1
Foros
‣ Mis mensajes:
‣ Se puede localizar de una forma sencilla todos los mensajes que a creado
un usuario:
lunes 11 de junio de 2012
71. Características más importantes de Liferay 6.1
Foros
‣ Mis suscripciones:
‣ El usuario puede suscribirse a categorías. Se selecciona la categoría y
mediante el botón Acciones se marca la opción Suscribirse.
‣ Una vez añadidas las suscripciones, en la pestaña Mis suscripciones
estarán disponibles para un acceso rápido.
lunes 11 de junio de 2012
73. Características más importantes de Liferay 6.1
Mails
‣ Cada usuario tiene la posibilidad de consultar su correo
electrónico previamente configurado o configurar nuevas
cuentas de correo electrónico. Para configurar una cuenta se
debe hacer click sobre la opción añadir cuenta de correo
electrónico:
lunes 11 de junio de 2012
78. Características más importantes de Liferay 6.1
Campos personalizados
‣ Existe un mecanismo para añadir nuevos campos a la
entidades que ya existen en el núcleo de Liferay sin necesidad
de modificar el modelo y sus servicios asociados.
‣ Este mecanismo se conoce como Campos personalizados.
‣ Desde el panel de control se puede acceder a la
funcionalidad que comentamos:
lunes 11 de junio de 2012
79. Características más importantes de Liferay 6.1
Campos personalizados
‣ Seleccionando la opción Editar pueden añadirse campos:
‣ Se debe definir una clave y un tipo de dato.
lunes 11 de junio de 2012
80. Características más importantes de Liferay 6.1
Campos personalizados
‣ Los tipos disponibles para la versión 6 de Liferay son:
lunes 11 de junio de 2012
81. Características más importantes de Liferay 6.1
OpenSocial
‣ Liferay Portal 6 ofrece un contenedor OpenSocial basado en
Shindig.
‣ Gadgets OpenSocial permite incluir en nuestras aplicaciones
este tipo de aplicaciones.
lunes 11 de junio de 2012
82. Características más importantes de Liferay 6.1
OpenSocial
‣ Por ejemplo:
‣ http://www.labpixies.com/campaigns/todo/todo.xml
‣ http://www.google.com/ig/modules/horoscope.xml
lunes 11 de junio de 2012
83. Características más importantes de Liferay 6.1
Stage
‣ Mecanismo muy interesante para poder actualizar los
contenidos de un determinado portal y pasarlo a producción
cuando sea necesario.
‣ Este sistema ha evolucionado mucho en esta última versión.
lunes 11 de junio de 2012
86. Estrategias de desarrollo
avanzado
Liferay 6.1
La gestión avanzada de portales y las
tecnologías Java Empresariales
Viernes 8 de Junio de 2012
Centro de Innovación del BBVA (Madrid)
Jesús Salinas Revelles
lunes 11 de junio de 2012
87. Estrategias de desarrollo avanzado
Índice de contenidos
‣ Introducción.
‣ ¿Cuándo?
‣ ¿Dónde?
‣ Portal.
‣ Plugin Portlets.
‣ Plugin Ext.
‣ Plugin Hook.
lunes 11 de junio de 2012
88. Estrategias de desarrollo avanzado
Introducción
‣ Liferay nos ofrece una serie de funcionalidades por defecto
que nos hacen la vida más fácil y que en muchos casos,
pueden encajar con los servicios que necesita nuestro cliente.
‣ En muchas otras ocasiones esto no será posible, el
desarrollador tiene que incluir nueva funcionalidad en la
plataforma.
‣ Capacidad de integración:
‣ Nos ofrece diferentes estrategias para incorporar nuevas
funcionalidades dentro de la plataforma.
lunes 11 de junio de 2012
89. Estrategias de desarrollo avanzado
Introducción
Gestores
Bases de datos documentales
Motores de Motores de
Liferay Portal Informes
workflow
Sistemas de gestión
...
integral
lunes 11 de junio de 2012
90. Estrategias de desarrollo avanzado
Introducción
‣ Liferay nos permite crear módulos/piezas software
apoyándonos en los frameworks JavaEE más conocidos:
‣ Capa de presentación: Struts, JavaServer Faces, etc.
‣ Capa de negocio: Spring Framework (POA, IoC, gestión de
transacciones).
‣ Capa de persistencia: Hibernate, iBatis, etc.
‣ También se puede trabajar con tecnología Servlet y JSP.
‣ El desarrollador puede aprovechar su Know-How para crear
infinidad de aplicaciones que posteriormente podrán integrarse
en una plataforma común de forma sencilla y simple.
lunes 11 de junio de 2012
91. Estrategias de desarrollo avanzado
Introducción
‣ Como ya se ha comentado antes, Liferay permite al
desarrollador crear nuevas funcionalidades utilizando
diferentes estrategias.
‣ Estas estrategias de desarrollo deben conocerse, sabiendo cuál
elegir en cada momento.
‣ Una mala decisión puede condicionar en gran medida el éxito
o el fracaso de un desarrollo. Éstas son:
‣ Plugin Portlet.
‣ Plugin Hook.
‣ Plugin Ext.
lunes 11 de junio de 2012
92. Estrategias de desarrollo avanzado
¿Cuándo?
‣ Como ya se ha comentado antes, tenemos tres alternativas
cuando desarrollamos nuevas funcionalidades en Liferay:
‣ Portlets: desarrollos nuevos que no tienen nada que ver con portlets
que ya existen en Liferay.
‣ Hooks: modificaciones no muy profundas sobre el core del producto.
‣ Ext: modificaciones profundas de la plataforma.
lunes 11 de junio de 2012
93. Estrategias de desarrollo avanzado
¿Dónde?
‣ Herramientas disponibles para desarrollar:
‣ Eclipse Liferay IDE.
‣ NetBeans.
‣ Cualquier herramienta de desarrollo que trabaje con Java.
lunes 11 de junio de 2012
96. Estrategias de desarrollo avanzado
Portal
‣ Un portal es una aplicación web que proporciona
personalización, autenticación, mecanismos para incorporar
contenidos en una página web y centraliza la capa de
presentación de un sistema de información.
‣ Un portal debe tener características avanzadas para la
personalización de los contenidos de usuario.
‣ Las páginas de un portal pueden estar formadas por los
contenidos generados por diferentes portlets.
lunes 11 de junio de 2012
97. Estrategias de desarrollo avanzado
Portal
‣ Todas las características de un portal se apoyan en el siguiente
concepto:
‣ Integrar diferentes aplicaciones en la misma pantalla.
‣ El usuario interactúa con el portal y el portal interactúa con
diferentes aplicaciones de backend, integrándolas a todas en
una única ventana del navegador sobre la que el usuario
actúa.
‣ Esta integración habitualmente se conoce como at the glass.
lunes 11 de junio de 2012
98. Estrategias de desarrollo avanzado
Portal
‣ Analicemos las características más importantes de la definición
de portal:
‣ Personalización de usuario: permite que el usuario personalice los
contenidos que ve en las páginas del portal.
‣ Personalización del backend: permite al administrador personalizar un
determinado componente para un entorno específico.
‣ Single sign on: el usuario tendrá que autenticarse una sola vez.
‣ Incorporación de contenido:
‣ Concepto de componente: permite que se desarrollen componentes que se
puedan incorporar en el portal. Son como bloques de construcción.
lunes 11 de junio de 2012
99. Estrategias de desarrollo avanzado
Plugin Portlet
‣ Introducción.
‣ ¿Qué es un portlet?
‣ ¿Quién puede construir un portlet?
‣ ¿Cómo se construye un portlet?
lunes 11 de junio de 2012
100. Estrategias de desarrollo avanzado
Introducción
‣ La tecnología Portlet va a permitir al desarrollador crear
componentes de interfaz de usuario intercambiables e
independientes para construir páginas en portales web.
‣ Se basa en tecnología Java.
‣ Java Community Process es el organismo que actúa como
mecanismo para desarrollar especificaciones técnicas
estándares para tecnologías Java.
‣ Se ha encargado de definir la especificación estándar de
Portlets. Ésta explica cuáles son los requisitos que se deben
cumplir para crear aplicaciones que cumplan la especificación.
‣ http://www.jcp.org
lunes 11 de junio de 2012
101. Estrategias de desarrollo avanzado
Introducción
‣ La web del JCP (Java Community Process) proporciona
información muy interesante sobre las distintas
especificaciones.
‣ Éstas se organizan en documentos llamados Java Specification
Requests, habitualmente conocidos como JSRs.
lunes 11 de junio de 2012
102. Estrategias de desarrollo avanzado
Introducción
‣ Existen dos versiones de la especificación Portlets, y se
conocen como:
‣ JSR-168: Especificación de Portlets v 1.0
‣ JSR-286: Especificación de Portlets v 2.0
lunes 11 de junio de 2012
103. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ Es una aplicación que genera una porción de contenido que
puede ser incluido dentro de la página de un portal:
Ventana del
portlet
Modos y estados
del portlets
Fragmento
de marcado
lunes 11 de junio de 2012
104. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ Es un componente web basado en tecnología Java que se
encarga de procesar peticiones y generar contenido dinámico:
...
public class MiPortlet extends GenericPortlet {
private static final String NORMAL_VIEW = "/normal.jsp";
private static final String MAXIMIZED_VIEW = "/
maximized.jsp";
private static final String HELP_VIEW = "/help.jsp";
private PortletRequestDispatcher normalView;
private PortletRequestDispatcher maximizedView;
private PortletRequestDispatcher helpView;
public void doView( RenderRequest request, RenderResponse
response )
throws PortletException, IOException {
if( WindowState.MINIMIZED.equals
( request.getWindowState() ) ) {
!
return;
}
...
lunes 11 de junio de 2012
105. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ Los portales usan a los portlets como componentes de
interface de usuario intercambiables que proporcionan la capa
de presentación a un sistema de información.
lunes 11 de junio de 2012
106. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ El contenido generado por un portlet se llama fragmento y,
no es más que un trozo de código de marcado.
‣ Estos fragmentos tienen que cumplir una serie de reglas para
que puedan agruparse con otros fragmentos para generar un
documento completo.
‣ El contenido generado por un portlet se agrupa junto con el
contenido de otros portlets para crear la página de un portal.
‣ El ciclo de vida de un portlet es controlado mediante el
contenedor de portlets.
lunes 11 de junio de 2012
107. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ Estados de la ventana:
‣ La ventana de un portlet se puede encontrar en diferentes estados. Los
estados por defectos son:
‣ Normal.
‣ Maximizado.
‣ Minimizado.
lunes 11 de junio de 2012
108. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ Estados de la ventana: Este botón hace que
la ventana pase a
‣ Normal y minimizado: estado minimizado
Si de nuevo se hace
click en este botón se
vuelve al estado normal
lunes 11 de junio de 2012
109. Estrategias de desarrollo avanzado
¿Qué es un portlet?
‣ Estados de la ventana: Este botón hace que
la ventana pase a
‣ Normal y maximizado: estado maximizado
Si se hace click en
este botón se vuelve
al estado normal
lunes 11 de junio de 2012
110. Estrategias de desarrollo avanzado
¿Quién puede construir un portlet?
‣ Desarrolladores que conocen las tecnologías JavaEE core:
Servlets y JSP:
‣ La especificación de Portlets es muy similar a la especificación de
Servlets.
‣ Conocida una, conocidas todas.
‣ Las especificación de Portlets trabaja con JSP para generar la vista.
‣ Desarrolladores JavaEE que conocen Framework de desarrollo:
‣ JavaServer Faces,
‣ Struts,
‣ etc.
lunes 11 de junio de 2012
111. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Creación de una clase que hereda de GenericPortlet:
lunes 11 de junio de 2012
112. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Ejemplo:
...
public class PortletBasico extends GenericPortlet{
...
}
lunes 11 de junio de 2012
114. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Renderización:
‣ Como ya se ha comentado antes, esta clase abstracta implementa el
método render() de la interface Portlet y proporciona otros métodos en
los que delega la renderización del portlet en función del modo en el que
se encuentra.
‣ Los modos de un portlet indican la función que está proporcionando en
cada momento. La especificación define tres modos:
‣ view.
‣ help.
‣ edit.
lunes 11 de junio de 2012
115. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Renderización:
‣ Sus métodos de renderización son:
‣ doView(): método llamado por el método render cuando el portlet se
encuentra en modo view.
‣ doHelp(): método llamado por el método render cuando el portlet se
encuentra en modo help.
‣ doEdit(): método llamado por el método render cuando el portlet se encuentra
en modo edit.
lunes 11 de junio de 2012
116. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Acciones:
‣ El método processAction() debe redefinirse para construir la acción que
quiere desarrollar el portlet:
public void processAction(ActionRequest request,
ActionResponse response)
! ! ! throws PortletException, IOException {
! // Se recuperan los parámetros de la petición
! String nombre = request.getParameter("nombre");
! String ruta = request.getParameter("ruta");
! String contenido = request.getParameter("contenido");
...
}
lunes 11 de junio de 2012
117. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Acciones:
‣ El contenedor de portlets llama al método processAction() para permitir
que el portlet procese una acción asociada a la petición.
‣ Este método es invocado si la petición del cliente fue originada por una
URL creada mediante el método RenderResponse.createActionURL().
lunes 11 de junio de 2012
118. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Construyendo acciones en un portlet:
‣ El método processAction() se ejecuta cada vez que un portlet tiene que
realizar una acción.
‣ ¿Si tiene que ejecutar varias acciones? ¿el método processAction() tiene
que manejar todas las acciones?
...
public void processAction(...){
...
if(...){
}else if(){
}
...
}
lunes 11 de junio de 2012
119. Estrategias de desarrollo avanzado
¿Cómo se construye un portlet?
‣ Construyendo acciones en un portlet:
‣ Gracias a la anotación @ProcessAction el portlet puede tener tantos
métodos diferentes como acciones tenga que llevar a cabo.
Evidentemente, la cabecera del método debe cumplir unos requisitos:
@ProcessAction(name="guardarFichero")
public void accion1(ActionRequest request,
ActionResponse response)
throws PortletException,IOException
@ProcessAction(name="borrarFichero")
public void accion2(ActionRequest request,
ActionResponse response)
throws PortletException,IOException
lunes 11 de junio de 2012
120. Estrategias de desarrollo avanzado
Configuración
‣ Fichero portlet.xml.
‣ Fichero liferay-display.xml.
‣ Fichero liferay-portlet.xml.
‣ Fichero liferay-plugin-package.properties.
lunes 11 de junio de 2012
121. Estrategias de desarrollo avanzado
Fichero portlet.xml
‣ El descriptor de despliegue estándar para portlets se llama
portlet.xml.
‣ Es un fichero xml que permite definir las características de los
portlets que se están manejando.
‣ Ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app
xmlns="http://java.sun.com/xml/ns/portlet/portlet-
app_1_0.xsd"
version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/
portlet-app_1_0.xsd
http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
<portlet>
...
</portlet>
</portlet-app>
lunes 11 de junio de 2012
122. Estrategias de desarrollo avanzado
Fichero liferay-display.xml
‣ Este fichero permite definir la categoría donde se podrán
encontrar el portlet dentro de Liferay una vez se despliegue.
<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 5.2.0//EN"
"http://www.liferay.com/dtd/liferay-display_5_2_0.dtd">
<display> Identificador
INTERNACIONALIZADO de la
<category name=" category.sample "> categoría donde se quiere
incluir el portlet
<portlet id=" PortletBasico01 " />
</category>
El atributo id debe coincidir
</display> con el nombre del portlet que
se ha definido en el fichero
portlet.xml
lunes 11 de junio de 2012
123. Estrategias de desarrollo avanzado
Fichero liferay-display.xml
La categoría definida en
el fichero liferay-
display.xml determina la
categoría donde se podrá
encontrar
lunes 11 de junio de 2012
124. Estrategias de desarrollo avanzado
Fichero liferay-portlet.xml
‣ Este fichero es la extensión de portlet.xml para Liferay.
‣ Se encarga de definir características avanzadas del portlet:
‣ icon: define el icono que aparece en la ventana del portlet.
‣ instanceable: si este elemento está a true significa que puede aparecer
en la página tantas veces como se quiera. En cambio si su valor es false,
sólo podrá aparecer una vez.
‣ css-class-wrapper: nombre del class asociado al div que va a envolver
este portlet cuando se renderize en la página del portal.
‣ header-portlet-css.
‣ ...
lunes 11 de junio de 2012
125. Estrategias de desarrollo avanzado
Fichero liferay-portlet.xml
‣ Ejemplo:
<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet
Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-
portlet-app_5_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>PortletBasico01</portlet-name>
<icon>/icon.png</icon>
<instanceable>true</instanceable>
<header-portlet-css>/css/test.css</header-portlet-css>
<footer-portlet-javascript>/js/test.js</footer-portlet-
javascript>
</portlet>
</liferay-portlet-app>
lunes 11 de junio de 2012
126. Estrategias de desarrollo avanzado
Fichero liferay-plugin-
package.properties
name=PortletBasico01
module-group-id=liferay
module-incremental-version=1
tags=
short-description=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=MIT
lunes 11 de junio de 2012
127. Estrategias de desarrollo avanzado
Ejercicio
‣ Paso 1: Listado de documentos.
lunes 11 de junio de 2012
128. Estrategias de desarrollo avanzado
Ejercicio
‣ Paso 2: Creación de documentos.
lunes 11 de junio de 2012
130. Estrategias de desarrollo avanzado
Plugin Ext
‣ Introducción.
‣ Estrategia de desarrollo.
‣ Trabajando con el entorno.
‣ Despliegue del plugin Ext.
lunes 11 de junio de 2012
131. Estrategias de desarrollo avanzado
Introducción
‣ El plugin Extension es el plugin que proporciona un mayor
nivel de personalización del portal Liferay.
‣ Se puede cambiar cualquier cosa del producto.
‣ Plugin Ext ha sido creado para proporcionar una forma de
separar el código introducido por el programador y el código
de Liferay, de tal forma que los desarrolladores pueden saber
dónde empieza su código y dónde el de Liferay.
‣ No se debe modificar el código de Liferay directamente para
realizar cambios en el producto. Se mantiene el código
separado y el plugin se encarga de solapara tus cambios
encima del código de Liferay.
‣ Esto también hace que las actualizaciones de versión sean
más sencillas, dado que se puede actualizar Liferay y
posteriormente, inyectar el plugin Ext para la nueva versión.
lunes 11 de junio de 2012
132. Estrategias de desarrollo avanzado
Estrategia de desarrollo
‣ La estrategia para usar este plugin es muy simple: extender,
no modificar.
lunes 11 de junio de 2012
133. Estrategias de desarrollo avanzado
Trabajando con el entorno
‣ Clase StrutsPortlet.
‣ Fichero liferay-portlet.xml.
‣ Definición de acciones.
‣ Definición de la navegación.
‣ Páginas JSP.
lunes 11 de junio de 2012
134. Estrategias de desarrollo avanzado
Clase StrutsPortlet
‣ Se encuentra en el paquete com.liferay.portlet.
‣ Es el portlet diseñado por Liferay para integrar el Framework
Struts.
‣ El fichero portlet.xml debe tenerlo en cuenta:
<?xml version="1.0"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/
portlet-app_2_0.xsd"version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/
portlet/portlet-app_2_0.xsd http://java.sun.com/
xml/ns/portlet/portlet-app_2_0.xsd">
<portlet>
<portlet-name>portletEjercicio</portlet-name>
<display-name>portletEjercicio</display-name>
<portlet-class>
com.liferay.portlet.StrutsPortlet
</portlet-class>
lunes 11 de junio de 2012
135. Estrategias de desarrollo avanzado
Clase StrutsPortlet
‣ Este portlet trabaja con parámetros iniciales que determinan
las urls asociadas a los modos VIEW, HELP y EDIT, si existen.
‣ Se configuran en el fichero portlet.xml:
<portlet>
! <portlet-name>ProyectoStruts</portlet-name>
! <display-name>ProyectoStruts</display-name>
! <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-
class>
! <init-param>
! ! <name>view-action</name>
! ! <value>/jsp/input</value>
! </init-param>
! <init-param>
! ! <name>help-action</name>
! ! <value>/jsp/help</value>
! </init-param>
...
lunes 11 de junio de 2012
136. Estrategias de desarrollo avanzado
Fichero liferay-portlet.xml
‣ Se configura la ruta de Struts que se va a manejar:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet
Application 5.2.0//EN" "http://www.liferay.com/dtd/liferay-
portlet-app_5_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>ProyectoStruts</portlet-name>
<icon>/images/world.png</icon>
<struts-path>jsp</struts-path>
<use-default-template>true</use-default-template>
<restore-current-view>true</restore-current-view>
<instanceable>true</instanceable>
<private-request-attributes>false</private-request-
attributes>
</portlet>
...
lunes 11 de junio de 2012
137. Estrategias de desarrollo avanzado
Definición de acciones
‣ Las acciones son clases Java que heredan de PortletAction:
public class Accion01 extends PortletAction {
@Override
public void processAction(
ActionMapping mapping,
ActionForm form,
PortletConfig portletConfig,
ActionRequest actionRequest,
ActionResponse actionResponse) throws Exception {
...
‣ Habitualmente se redefinen los métodos processAction y
render.
lunes 11 de junio de 2012
138. Estrategias de desarrollo avanzado
Definición de la navegación
‣ Se realiza mediante el fichero struts-config.xml.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software
Foundation//DTD Struts Configuration 1.2//EN" "http://
jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
<action-mappings>
<action path="/jsp/input" forward="/portlet/jsp/
listarUsuarios.jsp"></action>
<action path="/jsp/borrar"
type="acciones.BorrarUsuarioAction"input="/jsp/
inicio.jsp">
<forward name="exito" path="/portlet/jsp/
listarUsuarios.jsp"></forward>
</action>
lunes 11 de junio de 2012
139. Estrategias de desarrollo avanzado
Páginas JSP
‣ Se define de forma totalmente normal, pero debe encontrarse
en la ruta html/portlet/. Ejemplo 1:
<action path="/jsp/input"
forward="/portlet/jsp/paginaPrueba.jsp">
</action>
‣ La página debe encontrarse en la ruta html/portlet/jsp/paginaPrueba.jsp.
‣ Ejemplo 2:
<action path="/portal/layout"
type="com.liferay.portal.action.LayoutAction">
! <forward name="portal.layout" path="portal.layout" />
</action>
<definition name="portal.layout" extends="portal">
! <put name="content" value="/portal/layout.jsp" />
! <put name="selectable" value="true" />
</definition>
lunes 11 de junio de 2012
140. Estrategias de desarrollo avanzado
Despliegue del plugin Ext
‣ Los plugins Ext son plugins que se pueden desplegar en
caliente como los hooks y los portlets, pero, cuidado, esto
puede ser engañoso.
‣ Estos plugins son más parecidos al entorno Ext utilizado en
anteriores versiones de Liferay en la forma de trabajar con él.
‣ Existen dos formas de desplegar un plugin Ext:
‣ Mediante los scripts Ant disponibles en Plugins SDK, especialmente
deploy y direct-deploy.
‣ Creando un fichero war y desplegándolo manualmente en Liferay:
‣ Copiándolo en la carpeta deploy de la instalación.
‣ Mediante la interfaz web.
lunes 11 de junio de 2012
141. Estrategias de desarrollo avanzado
Despliegue del plugin Ext
‣ Independientemente del proceso de despliegue utilizado,
posteriormente, ocurre lo mismo, y no tiene nada que ver con
lo que ocurre cuando se despliega otro tipo de plugin:
‣ Se crea ext-service.jar a partir del código que se encuentra en la
carpeta ext-service/src.
‣ Se despliega este jar classpath global. El deployer hace esto después de
extraerlo del war, o el script Ant lo hace como parte de direct-deploy.
‣ Se crea ext-impl.jar a partir del código que se encuentra en la carpeta
ext-impl/src.
‣ El deployer o script entonces comienza a copiar los ficheros en Liferay.
Primero, despliega cualquier fichero portal-*.properties o system-
*.properties en la carpeta WEB-INF/classes. Y posteriormente, despliega
el fichero ext-impl.jar en la carpeta WEB-INF/lib de Liferay.
‣ El deployer o el script copia las carpetas que existen en la carpeta ext-
web en la carpeta de Liferay asociada integrando así los cambios con el
código de Liferay.
lunes 11 de junio de 2012
142. Estrategias de desarrollo avanzado
Despliegue del plugin Ext
‣ Debido a estas operaciones, el despliegue de un plugin Ext
implica un posterior restart del servidor obligatorio.
‣ El código que aparece en el plugin Ext no se encuentra aislado,
forma parte del código de Liferay. Se ejecuta como parte de la
aplicación, de la misma forma que lo hace el código de Liferay.
‣ La primera consecuencia de todo esto es que NO se puede
deshacer un proceso de despliege. Se necesita tener una copia
limpia de nuestra instalación por si comentemos errores.
‣ Se recomienda hacer un proceso de despliegue incremental,
siempre sabiendo que si se hace algo más podemos volver a la
instalación de Liferay inicial.
lunes 11 de junio de 2012
143. Estrategias de desarrollo avanzado
Despliegue del plugin Ext
cd your-tomcat-install
# deleting web application
rm -rf webapps/*-ext
# deleting jars and config files from Liferay
find -name "ext-*" | xargs rm -rf
# stopping Liferay
bin/shutdown.sh
ps ax | grep life
#... wait until life ends ;) ....#
ps ax | grep life
#... wait until life ends ;) ....#
ps ax | grep life
#... wait until life ends ;) ....#
# Starting Liferay
bin/startup.sh
tail -f logs/catalina.out
lunes 11 de junio de 2012
144. Estrategias de desarrollo avanzado
Ejercicio
‣ Introducción.
‣ Creación de plugin Ext.
‣ Disponibilidad del portlet.
‣ Estado de la ventana del portlet.
‣ Visualización de contenidos.
‣ Inspección del portlet.
‣ Modificación del portlet.
‣ Conclusión.
lunes 11 de junio de 2012
145. Estrategias de desarrollo avanzado
Introducción
‣ El portlet Mi cuenta/My Account es elemento muy habitual
dentro de Liferay portal.
lunes 11 de junio de 2012
146. Estrategias de desarrollo avanzado
Introducción
‣ Lamentablemente, por defecto, no se encuentra disponible
para su uso en cualquier página de Liferay, sólo a través del
panel de control.
‣ Vamos, aprovechando el plugin Ext, a realizar las
modificaciones necesarias para que pueda ser utilizado en
cualquier sitio.
‣ Posteriormente, lo personalizaremos para que muestre sólo la
información que sea necesaria.
lunes 11 de junio de 2012
147. Estrategias de desarrollo avanzado
Creación de plugin Ext
‣ Trabajando con Eclipse IDE y plugin SDK implica seguir un
asistente.
‣ La estructura del proyecto, como ya es sabido, es tal que así:
lunes 11 de junio de 2012
148. Estrategias de desarrollo avanzado
Disponibilidad del portlet
‣ El primer paso será, editar el fichero de sistema liferay-
portlet.xml eliminando del portlet 2 la entrada
<system>true</system>.
‣ De esa forma el portlet de administración My Account se
encontrará disponible para ser utilizado.
<liferay-portlet-app>
<portlet>
! <portlet-name>2</portlet-name>
! <icon>/html/icons/my_account.png</icon>
! <struts-path>my_account</struts-path>
! ...
! <system>true</system>
</portlet>
lunes 11 de junio de 2012
149. Estrategias de desarrollo avanzado
Disponibilidad del portlet
‣ El segundo paso será modificar el plugin Ext previamente
creado para añadir el fichero portal.xml un directorio llamado
resource-actions previamente creado.
lunes 11 de junio de 2012
150. Estrategias de desarrollo avanzado
Disponibilidad del portlet
<portlet-resource>
<portlet-name>125</portlet-name>
<permissions>
<supports>
<action-key>ADD_TO_PAGE</action-key>
<action-key>ACCESS_IN_CONTROL_PANEL</action-key>
<action-key>CONFIGURATION</action-key>
<action-key>EXPORT_USER</action-key>
<action-key>VIEW</action-key>
</supports>
<community-defaults>
<action-key>VIEW</action-key>
</community-defaults>
<guest-defaults>
<action-key>VIEW</action-key>
</guest-defaults>
<guest-unsupported>
<action-key>ACCESS_IN_CONTROL_PANEL</action-key>
<action-key>CONFIGURATION</action-key>
</guest-unsupported>
</permissions>
</portlet-resource>
lunes 11 de junio de 2012
151. Estrategias de desarrollo avanzado
Estado de la ventana del portlet
‣ Por defecto, el portlet aparece minimizado y sólo si se
maximiza se muestra la información del usuario.
‣ Esto es así debido a la configuración de una clase llamada
ViewAction asociada al portlet.
‣ Para modificar su comportamiento, mediante el entorno Ext
sobrescribimos dicha clase.
lunes 11 de junio de 2012
152. Estrategias de desarrollo avanzado
Estado de la ventana del portlet
‣ Redefinir el método render:
public class ViewAction extends PortletAction {
public ActionForward render(
! ActionMapping mapping, ActionForm form,
PortletConfig portletConfig,
! RenderRequest renderRequest,
RenderResponse renderResponse)throws Exception {
! ! ...
! !
! }
}
lunes 11 de junio de 2012
153. Estrategias de desarrollo avanzado
Visualización de contenidos
‣ Una vez resuelto el problema de la disponibilidad del portlet,
se describe el proceso de personalización.
lunes 11 de junio de 2012
154. Estrategias de desarrollo avanzado
Visualización de contenidos
‣ Se quiere modificar el portlet para que muestre algo tal que
así, se quieren modificar las secciones y los elementos que
aparecen en cada sección.
lunes 11 de junio de 2012
155. Estrategias de desarrollo avanzado
Visualización de contenidos
‣ ¿Cómo se construye la barra lateral?
‣ ¿Y el panel de detalle?
‣ Obligatoriamente el programador necesita conocer el código
de este portlet.
‣ StrutsPortlet:
‣ view-action: /my_account/view
lunes 11 de junio de 2012
156. Estrategias de desarrollo avanzado
Inspección del portlet
‣ Se busca el portlet en el fichero portlet.xml identificando el
parámetro view-action.
<portlet>
<portlet-name>2</portlet-name>
<display-name>My Account</display-name>
<portlet-class>
com.liferay.portlet.StrutsPortlet
</portlet-class>
<init-param>
<name>view-action</name>
<value>/my_account/view</value>
</init-param>
! ! ...
</portlet>
lunes 11 de junio de 2012
157. Estrategias de desarrollo avanzado
Inspección del portlet
‣ Con ese parámetro se busca en el fichero struts-config.xml:
...
<action path="/my_account/view"
type="com.liferay.portlet.myaccount.action.ViewAction">
<forward name="portlet.my_account.edit_user"
path="portlet.enterprise_admin.edit_user" />
<forward name="portlet.my_account.view"
path="portlet.my_account.view" />
</action>
...
lunes 11 de junio de 2012
158. Estrategias de desarrollo avanzado
Inspección del portlet
‣ Con el atributo path de la entrada forward busco en el fichero
tiles-def.xml:
...
<definition name="portlet.enterprise_admin.edit_user"
extends="portlet.enterprise_admin">
! <put name="portlet_content"
value="/portlet/enterprise_admin/edit_user.jsp" />
</definition>
...
‣ La página edit_user.jsp del portlet de admin es el punto de
partida.
lunes 11 de junio de 2012