2015-12-14 3 views
1

Я создаю тему freemarker для своего liferay 6.2, и я изо всех сил пытаюсь получить состояние окна портлета входа, когда я пытаюсь получить доступ к странице без необходимых разрешений. В этом случае liferay «перехватывает» запросы и отображает портлет входа поверх моего шаблона домашнего макета в максимизированном состоянии окна (что является хорошим поведением).Liferay Theme: get Portlet Window State

Моя проблема заключается в том, что мой домашний макет отличается от моих других шаблонов макета. Таким образом, портлет визуализируется с неправильным внешним видом.

Есть ли способ проверить, отображается ли портлет ввода или нет, и если он получает режим просмотра, чтобы проверить, хочу ли я отображать мой домашний макет или нет?

Это мой код для проверки макета дома. Тодо-комментарий - это то место, где я борется.

<#-- Check whether layout template of current page is home layout. --> 
<#assign isHomeLayout = false /> 
<#if themeDisplay.getLayout().getTypeSettingsProperty("layout-template-id") == "novofleet-home-layout"> 
    <#-- TODO: CHECK FOR LOGIN PORTLET AND WINDOW STATE AND RETURN FALSE IF PORTLET IS RENDERED AS MAXIMIZED --> 
    <#assign isHomeLayout = true /> 
</#if> 
+0

Было бы достаточно узнать, если какой-либо портлет максимизирован на странице или вас интересует только портлет входа? Например, портлет поиска также может быть максимизирован, даже если вы не предлагаете явную кнопку «максимизировать» в вас. –

+0

Я так решил. См. Обновление сообщений. –

+0

Я извлек ваше решение и перевел его на явный ответ ниже. –

ответ

1

(Ответ извлеченный из вопроса)

Я только что проверил, есть ли портлет в развернутом состоянии окна с помощью URL-адреса Params Liferay в. Новый код:

<#-- Check whether layout template of current page is home layout. --> 
<#assign isHomeLayout = false /> 
<#if themeDisplay.getLayout().getTypeSettingsProperty("layout-template-id") == "novofleet-home-layout"> 
    <#assign isHomeLayout = true /> 

    <#-- Check for existence of url parameter which forces portlets to maximezed window state and revoke home layout --> 
    <#assign maximized = request.getParameter("p_p_state")!"defaultValue" /> 
    <#if maximized == "maximized"> 
     <#assign isHomeLayout = false /> 
    </#if> 
</#if>