Я создаю тему 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>
Было бы достаточно узнать, если какой-либо портлет максимизирован на странице или вас интересует только портлет входа? Например, портлет поиска также может быть максимизирован, даже если вы не предлагаете явную кнопку «максимизировать» в вас. –
Я так решил. См. Обновление сообщений. –
Я извлек ваше решение и перевел его на явный ответ ниже. –