Añadir portlet Visor de Contenido Web en Liferay

por

Hoy os voy a enseñar como añadir un portlet Visor de contenidos en el tema de apariencia a través de velocity.

Para ello, debemos irnos a nuestro _diffs/templates/portal-normal.vm y para añadir el portlet vamos a ver línea a línea como se hace:


$velocityPortletPreferences.setValue("portlet-setup-show-borders", 
"false")

Hacemos que no muestre los bordes del portlet. Podemos ponerlos o no, como queramos.


$velocityPortletPreferences.setValue("group-id", "$group_id")

Establecemos el identificador al que pertenece el portlet. Es necesario ponerlo.


$velocityPortletPreferences.setValue("article-id", "11916")

Con esta línea establecemos el Contenido Web que queremos que aparezca en nuestro portlet. El ID del artículo lo podemos obtener una vez hayamos creado el contenido web y veamos sus datos.

Debemos tener en cuenta que antes de añadir el portlet debemos haber creado el Contenido Web ya que una vez aplicado el tema con el portlet y su ID de artículo, si por el motivo que sea queremos cambiar el contenido web que aparece en él deberemos hacerlo página por página ya que la base de datos guarda la configuración inicial.


$theme.runtime("56_INSTANCE_IMAGENCAB", "", 
$velocityPortletPreferences.toString())

Establecemos el tipo de portlet que queremos, en este caso el 56, le damos una instance que será el identificador de portlet único y lo lanzamos.


$velocityPortletPreferences.reset()

Por último reseteamos las preferencias del portlet.

Os pongo también el código completo de para añadirlo:


$velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
$velocityPortletPreferences.setValue("group-id", "$group_id")
$velocityPortletPreferences.setValue("article-id", "11916")
$theme.runtime("56_INSTANCE_IMAGENCAB", "", 
$velocityPortletPreferences.toString())	
$velocityPortletPreferences.reset()

Como os dije antes, añadiendolo en el portal-normal directamente o en un archivo a parte y luego incluyendo en el portal normal tendríamos listo nuestro portlet Visor de contenido para usarlo, por ejemplo, para añadir una imagen de cabecera.

Espero que os sea de utilidad.

COMENTARIOS

03-04-2016 13:16:02
Hola @Carlos, lo primeor de todo disuclpa la tardanza en contestar pero he estado fuera y no he podido atender a los comentarios. Para añadir un publicador de contenido es tan simple como cambiar el ID del runtime(donde pone 56_INSTANCE) y poner el ID del publicador de contenido, en este caso sería el 101. El código final quedaría asi:
$velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
$velocityPortletPreferences.setValue("group-id", "$group_id")
$theme.runtime("101_INSTANCE_mipublicador", "", 
$velocityPortletPreferences.toString()) 
$velocityPortletPreferences.reset()
Espero haberte ayudado.
18-03-2016 19:29:54
Hola Sergio, gracias por la información. como se podría agregar un publicador de contenido
06-09-2012 22:43:21
Podrías utilizar una variable de sesion de liferay para poder usar esa variable en cualquier otro portlet, ya sea un portlet de contenido web u otro diferente.
05-09-2012 22:42:15
Buen post!, aunque en estos momentos tengo problemas, ya que quiero pasar informacion o datos de un visor de contenido a otro, es eso posible??????
04-09-2012 23:48:21
Una pregunta quisiera saber como traer el nombre de un enlace de pagina con vm, puesto que cuando llamo una variable digamos $enlace.getData() trae el id de la pagina y no el nombre?????.
30-08-2012 08:14:54
Exite un portlet llamado Web Form que puedes configurar desde el panel de configuración del portlet para que haga exactamente lo que quieres hacer. Puedes descargarlo desde el marketplace de Liferay
30-08-2012 01:08:37
Una pregunta como hago para poner un formulario de contactenos y que los datos que ingrese los guarde o los envie a un correo; con un porlet visor de contenido o con que????
28-08-2012 08:19:53
No te sabría decir si mediante servicios habría alguna posibilidad de obtener ese contenido web(seguramente la haya, habría que investigarlo) pero por propia experiencia te digo que lo más fácil y lo que siempre se hace es cargarlo sobre un portlet de contenido web.
27-08-2012 17:13:33
Entiendo, mi pregunta es el contenido web yo lo puedo cargar desde el portal_normal sin utilizar un portlet de contenido web????
25-08-2012 02:39:32
¿Por datos a que te refieres? El ejemplo lo que hace es cargar un contenido web desde el portal_normal a través de un portlet de contenido web.
24-08-2012 23:09:27
Muy buen aporte, pero tengo una pregunta es posible traer los datos creados en el contenido web desde mi portal-normal.vm??????

DEJA TU COMENTARIO