Forums

Home » Liferay Portal » Español » 3. Desarrollo

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Juan Antonio Girón
Embeber Portlet en CMS Template
May 17, 2012 6:53 AM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Hola, he conseguido embeber un portlet en un tema Liferay mediante el siguiente código:

$velocityPortletPreferences.setValue("portlet-setup-show-borders", "false")
$theme.runtime("122_INSTANCE_c6xI","", $velocityPortletPreferences.toString())
$velocityPortletPreferences.reset()

He querido reproducir el mismo funcionamiento en esta ocasión mediante una estructura y su plantilla asociada.
Por tanto he insertado el mismo código en el editor de la plantilla, pero parece no reconocer $theme.runtime (adjunto captura).

Por favor, ¿pueden ayudarme?, ¿cómo es posible utilizar la función $theme.runtime desde una plantilla CMS?

Gracias.
Attachment

Attachments: runtime.png (10.5k)
Juan Fernández
RE: Embeber Portlet en CMS Template
May 17, 2012 7:32 AM
Answer

Juan Fernández

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1250

Join Date: October 2, 2008

Recent Posts

Hola Juan Antonio:
Es posible embeber portlets dentro del tema y de las plantillas de página, pero no dentro de las plantillas de contenido web.
El objeto "theme display" del contexto "Journal" no contiene la información necesaria para ejecutar el portlet. Lo siento pero no se puede hacer eso out-of-the-box.
Para la siguiente versión hemos extendido el concepto de contexto para poder compartir más información con los contextos de las plantillas, pero de momento no tenemos nada que te pueda servir.
Un saludo,
Juan Fernández
Juan Antonio Girón
RE: Embeber Portlet en CMS Template
May 17, 2012 11:33 PM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Gracias Juan.

Me indicas que es posible hacerlo en las plantillas de páginas, pero no encuentro el modo.
Además de crear o editar la plantilla de página, puedo abrirla en una nueva ventana a través de botón "Abrir plantilla de página" y aquí puedo añadir portlets y demás, pero no encuentro el modo de poder embeber un portlet.

Por favor, ¿puedes indicarme cómo hacerlo?

Gracias.
Juan Fernández
RE: Embeber Portlet en CMS Template
May 18, 2012 12:15 AM
Answer

Juan Fernández

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1250

Join Date: October 2, 2008

Recent Posts

Hola:
En este artículo tienes la información que buscas: Add runtime portlets to a layout
Un saludo,
Juan Fernández
Juan Antonio Girón
RE: Embeber Portlet en CMS Template
May 18, 2012 1:27 AM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Gracias de nuevo, Juan.
Juan Antonio Girón
RE: Embeber Portlet en CMS Template
October 1, 2012 7:50 AM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Hola, finalmente y como me indicabas en tu respuesta, utilizando el artículo: Add runtime portlets to a layout pude insertar portlets desde un Layout.

Actualmente estoy migrando desde la versión 6.0.5 a la versión 6.1.1 y me encuentro con el problema de que para esta nueva versión no funciona la solución adoptada. Es decir, no funciona el uso de $processor.processPortlet.

¿Se ha producido alguna modificación al respecto con el cambio de versión?
¿Existe solución en la versión 6.1.1?

Gracias.
Juan Antonio Girón
RE: Embeber Portlet en CMS Template
October 2, 2012 3:53 AM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Juan Fernández:
Hola Juan Antonio:
Es posible embeber portlets dentro del tema y de las plantillas de página, pero no dentro de las plantillas de contenido web.
El objeto "theme display" del contexto "Journal" no contiene la información necesaria para ejecutar el portlet. Lo siento pero no se puede hacer eso out-of-the-box.
Para la siguiente versión hemos extendido el concepto de contexto para poder compartir más información con los contextos de las plantillas, pero de momento no tenemos nada que te pueda servir.
Un saludo,
Juan Fernández


¿Es posible embeber portlets dentro de las plantillas de contenido web en la versión 6.1 GA2?
Es decir, ¿el objeto "theme display" del contexto "Journal" dispone en la versión 6.1 GA2 de la información requerida para ejecutar el portlet?

Gracias.
Jose Jimenez
RE: Embeber Portlet en CMS Template
October 7, 2012 4:55 AM
Answer

Jose Jimenez

LIFERAY STAFF

Rank: Regular Member

Posts: 129

Join Date: August 22, 2012

Recent Posts

Hola Juan Antonio,

Las plantillas de contenidos deberían limitarse a renderizar el contenido y no contener lógica de embebido de otros portlets.
El objeto themeDisplay de la plantilla del Journal es simplemente un mapa con ciertos atributos que pueden ser útiles para el renderizado del contenido actual, y por tanto, no es una instancia de la clase ThemeDisplay como tal y no permite el incluir otros portlets.

Un saludo,
Juan Antonio Girón
RE: Embeber Portlet en CMS Template
October 8, 2012 1:54 AM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Hola José A.,
volvía a preguntarlo porque estoy migrando a la versión 6.1.1 y, como aparece en la "cita" de mi comentario anterior en la que estaba utilizando la versión 6.0.5, me indicaron que se estaba extendiendo el contexto de ThemeDisplay. Quería saber si como ponía en la "cita" ya se disponía de esta información.

Gracias por resolver mi duda.

En un mensaje anterior también indicaba que en la versión 6.05 he insertado portlets desde un Layout siguiendo el artículo: Add runtime portlets to a layout.

Actualmente estoy migrando desde la versión 6.0.5 a la versión 6.1.1 y me encuentro con el problema de que para esta nueva versión no funciona la solución adoptada. Es decir, no funciona el uso de $processor.processPortlet.

¿Conoces algo al respecto?
¿Sabes si se ha modificado algo en la versión 6.1.1 que impide utilizarlo? En tal caso, ¿existe solución alternativa?

Gracias de nuevo.
Jose Jimenez
RE: Embeber Portlet en CMS Template
October 10, 2012 12:43 AM
Answer

Jose Jimenez

LIFERAY STAFF

Rank: Regular Member

Posts: 129

Join Date: August 22, 2012

Recent Posts

Hola Juan Antonio,

Supongo lo estás utilizando desde tus layout-tpl, te confirmo que no se ha eliminado tal funcionalidad.

Como puedes ver en http://www.liferay.com/en/community/wiki/-/wiki/Main/Layout+Template el objeto $processor es una instancia de la clase TemplateProcessor y si te descargas el código fuente de tu versión podrás observar que soporta el método processPortlet(String portletId). Te puedo asegurar que incluso en las últimas versiones es soportado.

Si estás trabajando con portlets de desarrollo propio verifica que no hayan cambiado su portletId y en caso de ser instanciables que efectivamente existe el portletInstanceId que estás pasando, quizás en los log puedas observar alguna traza de error que te oriente a buscar el por qué no te está funcionado la inclusión del portlet o incluso hacer debug con el código del portal.

Espero que des pronto con ello y nos comentes cual era el motivo, un saludo!!
Juan Antonio Girón
RE: Embeber Portlet en CMS Template
October 10, 2012 4:57 AM
Answer

Juan Antonio Girón

Rank: New Member

Posts: 15

Join Date: February 10, 2012

Recent Posts

Gracias José A.

Trataré de localizar cuál es el problema que surge con la migración.

Un saludo.