Vista combinada Visión Plana Vista de árbol
Discusiones [ Anterior | Siguiente ]
toggle
Rubén Lara
Crear Web Content desde el Panel de Control
12 de agosto de 2011 4:26
Respuesta

Rubén Lara

Ranking: New Member

Mensajes: 1

Fecha de incorporación: 4 de mayo de 2010

Mensajes recientes

Buenas tardes,

Soy nuevo con Liferay y quisiera saber si es posible implementar la siguiente funcionalidad: he creado una estructura para un tipo de datos (por ejemplo digamos que he definido una estructura para noticias con Título, Cuerpo y Foto como campos) y quisiera agregar una opción en el panel de control que fuese "Noticia" y que, al pulsar sobre ella, me cargase el formulario para dar de alta un Web Content con esa estructura.

¿alguna idea? Toda indicación será bien recibida.

Muchas gracias.

Un saludo.

Rubén.
Adolfo Pérez Álvarez
RE: Crear Web Content desde el Panel de Control
15 de agosto de 2011 12:19
Respuesta

Adolfo Pérez Álvarez

Ranking: New Member

Mensajes: 22

Fecha de incorporación: 9 de julio de 2009

Mensajes recientes

Hola Rubén,

La forma más directa que se me ocurre es implementar un portlet que muestre ese formulario y se encarge de guardar los datos. Suponiendo que estés familiarizado con el desarrollo de portlets, los únicos puntos "oscuros" que veo son:
  1. Añadir un enlace al portlet en el panel de control.
  2. Almacenar los datos en un contenido de Liferay.


Para añadir el portlet al panel de control, debes modificar la configuración de éste (liferay-portlet.xml) para indicar la sección dónde va, quién puede verlo, etc. Tienes un montón de ejemplos en el fichero liferay-portlet.xml en el código fuente del portal (portal-web/docroot/WEB-INF/liferay-portlet.xml); busca el elemento xml "control-panel-entry" (y en general, cualquier elemento que tenga "control-panel" en el nombre). Para más detalles sobre la configuración, échale un ojo al DTD del XML (los DTDs se encuentra en la carpeta definitions/ del código fuente).

Ahora la gran pregunta :-) : ¿cómo crear un contenido a partir del formulario y cómo almacenarlo en Liferay?

Toda la gestión de contenidos (añadir, borrar, etc.) pasa siempre por el correspondiente servicio Java, en este caso JournalArticleLocalServiceUtil. Tu portlet debería invocar al método addArticle() de dicha clase pasándole como parámetros el ID de comunidad, estructura, el propio contenido y un montón de cosas mas. Estos métodos esperan el contenido en forma de XML (que tendrá que construir tu portlet a partir de los datos del usuario). Para ver cómo es este XML, crea un contenido de la estructura que te interesa y tras guardarlo, verás que te aparece un botón "Descargar" junto al resto de botones. Esta acción te permite descargar un XML tipo, a partir del cual podrás generar una plantilla para utilizar en tu portlet.

Bueno, espero haberte aclarado algo (aunque releyendo el post, no lo entiendo ni yo ;-) )

Un saludo.