Hoy os voy a enseñar como añadir un portlet Visor de contenido web en el tema de apariencia de Liferay 7 a través de Freemarker.
Para ello, debemos irnos a nuestro templates/portal-normal.ftl y para añadir el portlet vamos a ver línea a línea como se hace:
<#assign VOID = freeMarkerPortletPreferences.setValue("portletSetupPortletDecoratorId", "barebone") />
Esta línea establece el decorator que queremos que traiga por defecto el portlet.
<#assign theme_groupID = htmlUtil.escape(theme_display.getCompanyGroupId()?string) /> <#assign VOID = freeMarkerPortletPreferences.setValue("groupId", '${group_id}') />
En esta línea establecemos el GroupID al que pertenece el portlet.
<#assign VOID = freeMarkerPortletPreferences.setValue("articleId", "30601") />
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.
<@liferay_portlet["runtime"] defaultPreferences="${freeMarkerPortletPreferences}" portletProviderAction=portletProviderAction.VIEW instanceId="footercontent" portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" />
Por último, inicializamos el portlet con las preferencias que habíamos seleccionado anteriormente junto con la elección del portlet y su instancia.
${freeMarkerPortletPreferences.reset()}
Antes de terminar, que no se nos olvide resetear las preferencias.
Os pongo también el código completo del portlet para añadirlo:
<#assign VOID = freeMarkerPortletPreferences.setValue("portletSetupPortletDecoratorId", "barebone") /> <#assign theme_groupID = htmlUtil.escape(theme_display.getCompanyGroupId()?string) /> <#assign VOID = freeMarkerPortletPreferences.setValue("groupId", '${group_id}') /> <#assign VOID = freeMarkerPortletPreferences.setValue("articleId", "30601") /> <@liferay_portlet["runtime"] defaultPreferences="${freeMarkerPortletPreferences}" portletProviderAction=portletProviderAction.VIEW instanceId="footercontent" portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet" /> ${freeMarkerPortletPreferences.reset()}
Todo este código debe incluir en el archivo portal-normal.ftl de nuestro theme para que, cada vez que creemos una página nueva ya esté añadido nuestro portlet y preconfigurado facilitando asi el mantenimiento del portal.
Espero que os sea de utilidad.