Установить тему для страницы портала Liferay во время выполнения (вместо времени настройки)? - PullRequest
1 голос
/ 14 марта 2011

Интересно, можно ли назначить тему странице во время выполнения, а не во время настройки? Я имею в виду, что одна и та же страница отображается с разными темами, в зависимости от некоторых условий.

Я хотел бы сделать следующее: у меня есть три страницы: «страница 1», «страница 2» и «страница регистрации». «Страница 1» и «Страница 2» - это обычные страницы, доступ к которым можно получить из меню навигации. «Страница 1» и «страница 2» имеют разные темы. «Страница регистрации» не отображается в меню навигации, однако есть ссылки на нее как «страница 1», так и «страница 2». Я хочу, чтобы «страница регистрации» отображалась с темой «страница 1» при доступе с «страницы 1» и с темой «страница 2» при доступе с нее.

Очевидно, что я могу создать две версии "страницы регистрации" с разными темами, но на самом деле у меня есть около десяти тем (на самом деле вариации тем) и около пяти страниц, таких как "страница регистрации".

Я использую Liferay Portal EE 5.2.5

-k6ps

1 Ответ

1 голос
/ 15 марта 2011

Короткий ответ: портлет не является страницей, и к моменту отображения портлета тема уже определена, поэтому вы не можете сделать это в портлете. Извините, если это очевидно для вас, но я просто работаю над этой проблемой.

Более длинный ответ заключается в том, что, поскольку Liferay разработан с учетом индивидуальных требований, все возможно, это зависит только от того, как это можно сделать. В этом случае мое лучшее предположение состоит в том, что вам нужно что-то запустить непосредственно перед тем, как сервлет Liferay создаст страницу, и при просмотре файла portal.properties есть назначенная точка расширения servlet.service.events.pre. Сначала вам нужен способ сохранить начальный выбор страницы, но как только вы это сделаете, вы можете прочитать его в своем пользовательском классе и настроить тему для этого экземпляра. Может быть.

Я предполагаю, что вы будете вынуждены сохранить выбор темы в HttpSession, но есть также возможность, что вы можете либо передать выбор темы в URL в качестве параметра HTTP, либо даже использовать значение заголовка HTTP REFERRER чтобы найти, откуда они пришли.

Полезно?

...