Estructuras y Plantillas de contenido web Liferay

por

Gracias a las estructuras y pantillas de contenido web , podemos generar contenidos de una forma estructurada y predifinida por nosotros mismos. Esto es muy úitl a la hora de generar contenidos dinámicos como pueden ser noticias.

En nuestro caso, vamos a utilizar el ejemplo de las noticias para generar una estructura que defina la noticia, esto es, titular, fecha y cuerpo de la noticia, por ejemplo, y una vez hecho esto, mostraremos las noticias mediante una plantilla.

Empezaremos creando la estructura de lsa noticias. Para ello, vamos al Panel de control -> Contenido Web -> Estructura -> Añadir Estructura.

En esta página le damos un nombre a nuestra estructura, en nuestro caso noticias. Marcamos la casilla de autogenerar ID y le damos también una descripción cualquiera.

Hecho ésto, solo nos queda definir los campos que llevarán las noticias. Para ello, le damos al botón de añadir fila 1 vez lo que nos mostrará 1 fila única, Además debemos de marcar esta fila como "Repetible".

Ahora crearemos 3 subfilas de ésta. Para ello, le damos al símbolo de "+" que hay junto a ella 3 veces. Al igual que en la primera fila les daremos un nombre a cada subfila, en nuestro caso las llamaremos título,fecha y cuerpo y las establecemos como "Caja de Texto" por ejemplo. Una vez hecho todo ésto guardamos y ya tenemos lista nuestra estructura.

El siguiente paso será crear la plantilla que generará el listado de noticias. Para ello, vamos a Panel de control -> Contendo Web -> Plantilla -> Añadir Plantilla.

Como antes con la estructura, le damos un nombre y una descripción, en nuestro caso la hemos llamado "Plantilla noticias". Seleccionamos la estructura a la que estará asociada la plantilla y una vez hecho esto nos toca crear el código que generará todo el código html de las noticias.

Le damos a Abrir editor y escribimos el siguiente código:


#foreach ($tit in $noticia.getSiblings() )

	<div class="noticia">

		#set ($count = 0)

		#foreach ($noticia in $tit.getChildren() )

			#set ($count = $count + 1)

			#if($count ==1 )
				 <h1>$noticia.getData() </h1>
			#end

			#if($count ==2 )
				 <h2>$noticia.getData() </h2>
			#end

			#if($count ==3 )
				 <h3>$noticia.getData() </h3>
			#end

		#end

	</div>
#end

Una vez escrito le damos a modificar.

Al haber hecho repetible el contenido de la estructura, nos permite generar tantas estructuras título-cuerpo-fecha como nosotros queramos. Con este código lo único que hacemos es recorrer cada una de esas repeticiones y por cada una de ellas recorremos los 3 campos que contienen y marcamos(h1,h2,h3) el código según el campo gracias al contador ($count).

Ya tenemos lista también la plantilla, guardamos y vamos a la pagina principal de nuestro portal.

Añadimos un portlet "Visor de contenido web". Le damos a Añadir nuevo contenido web. En la parte derecha de la pantalla seleccionamos la plantilla que creamos antes(Plantilla noticias).

Ahora podemos ver como aparecen los campos de la estructura en la izquierda para que los rellenemos con contenido. Además,si nos fijamos, nos aparece también un "+" verde que nos permite añadir nuevas noticias ya que,si recordamos, hicimos que fuera repetible.

Añadimos 2 noticias de ejemplo, en nuestro caso titulo1,fecha1,cuerpo1 y titulo2,cuerpo2,fecha2 y le damos publicar.

Una vez hecho todo esto ya podemos ver en el visor de contenido web de antes las 2 noticias que hemos creado.

Esto nos permite añadir noticias de una manera muy fácil,rápida y sencilla, tan solo necesitamos añadir una nueva entrada en el contenido creado y añadir el texto que queramos.

Espero que os sea de utilidad.

Para cualquier duda o pregunta no dudeis en preguntarme.

COMENTARIOS

26-01-2017 13:47:51
Hola No soy capaz de editar la estructura de una plantilla. un saludo
26-07-2016 21:49:25
Hoola Esperanza, tu desde panel de control, en la seccion de contenido web, hay una opciion que es para ver las estructuras y plantillas que tienes creada en el portal. Desde ahi puedes editar tu estructura y luego utilizar esos datos en la plantilla. Aún asi, leete el artículo y verás que lo trae explicado. Espero haberte ayudado.
19-07-2016 14:36:51
Hola Sergio: Tengo una estructura creada es como un menu por favor como se cambia esa estructura. desde dónde accedo gracias
11-05-2013 00:00:25
@Hector, la forma más directa sería crearte un portlet que te muestre los datos que tu le digas en el view.jsp ya que desde el portlet puedes acceder directamente a la BBDD, sea cual sea.
09-05-2013 22:48:54
Buen ejemplo, pero si quisiera algo mas elaborado, digamos que quiero que el Titulo, la Fecha y el Cuerpo lo tome de una base de datos MySQL, ¿Como lo haria?
12-07-2012 16:43:49
@felix28 no te sabría decir ahora mismo pero para que necesitas el ID de la estructura? Una plantilla siempre se asocia a una única estructura
12-07-2012 16:05:05
Como puedo obtener dinamicamente el id de una estructura dentro de la paltilla que la utiliza
10-07-2012 21:11:35
Si quieres mostrar todos los articulos generados ocn una estructura, por ejemplo mostrar N noticias, tienes 2 opciones: puedes crear un portlet a medida o usar el portlet Publicador de Contenidos de Liferay. Te recomiendo la segunda opción por sencillez ya que a través de la configuración del portlet puedes establecer el número máximo de contenidos a mostrar, establecer el tipo de contenido que quieres mostrar, etc.
10-07-2012 17:10:53
He aplicado tu tutorial y me ha salido de maravilla, pero necesito tu colaboración en ¿cómo definir un máximo de artículos a mostrar?
07-07-2012 14:22:44
@Marco Antonio, deberías genera una estructurqa donde introducir un campo tipo imagen, otro de rumen tipo caja de texto o texto enriquecido y por ultimo un campo para introducir la redicrreción a la página que desees. Tienes que pensar que la plantilla no es más que una forma de plasmar en HTML los campos que rellenas en la estructura. Luego simplemente los maquetas con CSS.
04-07-2012 00:26:47
Gracias por tu aporte. Me ha servido para realizar lo que deseaba. La pregunta que necesito responder es ¿como haer un link a otra página? Que plantilla usar para un resumen con imagen al lado?
29-05-2012 23:40:25
Si claro, deberías de utilizar un plugin para generar el carrusel en la plantilla, por ejemplo de jquery, y una vez metido solo tienes que cargar llenar ese carrusel con las imágenes que hayas añadido desde la estructura por ejemplo. Date cuenta que al final es un contenido HTML sobre el que peudes generar cualquier codigo HTML por lo que se usaría como en cualquier otra pagina normal solo que las URL de las imagenes seran la variable velocity de la imagen.
29-05-2012 17:59:55
Buen aporte Pregunta por medio de estructurar y plantillas se puede generar un carrusel de imágenes???

DEJA TU COMENTARIO