Foros de discusión

RE: Chamar Portlet de dentro do Tema

Picanha picanha, modificado hace 11 años.

Chamar Portlet de dentro do Tema

New Member Mensajes: 13 Fecha de incorporación: 9/03/12 Mensajes recientes
Olá pessoal,


procurei como chamar métodos de portlets de dentro de um velocity do tema mas não encontrei nada. Alguém já fez isso?

Tem como incluir um portlet manualmente no tema?


Obrigado.
thumbnail
Vitor Silva, modificado hace 11 años.

RE: Chamar Portlet de dentro do Tema

Junior Member Mensajes: 36 Fecha de incorporación: 3/05/12 Mensajes recientes
Sim tem. No tema e num template.
No tema
$theme.runtime exemplo:
#set ($myPortletId = "73_INSTANCE_${instanceId}")$theme.runtime($myPortletId, '', $velocityPortletPreferences.toString())
No template
$processor.processPortlet("73_INSTANCE_abcd") em que abcd e um random que representa a instancia.
Picanha picanha, modificado hace 11 años.

RE: Chamar Portlet de dentro do Tema

New Member Mensajes: 13 Fecha de incorporación: 9/03/12 Mensajes recientes
Olá,

no fim eu consegui dessa forma:

#set ($locPortletId = "ID_DO_PORTLET")
#set ($portletPreferencesFactoryUtil = $portal.getClass().forName("com.liferay.portlet.PortletPreferencesFactoryUtil"))
#set ($portletSetup = $portletPreferencesFactoryUtil.getLayoutPortletSetup($layout, $locPortletId))

#if ($portletSetup.getValue("portletSetupShowBorders", "") != "false")
#set ($temp = $portletSetup.setValue("portletSetupShowBorders", "false"))
#set ($temp = $portletSetup.store())
#end

#set ($embeddedPortletURL = $portletURLFactory.create($request, $locPortletId, $layout.plid, "RENDER_PHASE"))
#set ($VOID = $embeddedPortletURL.setWindowState("pop_up"))
#set ($VOID = $embeddedPortletURL.setPortletMode("view"))

<iframe frameborder="0" id="${locPortletId}custom_frame" src="${embeddedPortletURL.toString()}" scrolling="no" width="100%"></iframe>