Мне нужно изменить тему (скажем, тема по умолчанию = классическая) на тему iphone (или любую другую), когда пользователь перешел на портал liferay с помощью мобильного устройства.
Я подумал так:
- создать ловушку, которая запускается при событии входа пользователя в систему
- проверить устройство, используя атрибут заголовка запроса User-Agent
-при необходимости установите тему на iphone, используя LayoutServiceUtil
Возможно, есть лучший подход для реализации такого требования, поэтому не стесняйтесь предлагать альтернативы.
Я совершенно новичок в LifeRay, так что, возможно, поэтому я не смог заставить это работать.
а.Прежде всего, я очень озадачен тем, как темы обрабатываются в liferay;Кажется, существуют различные связанные объекты модели, которые трудно различить: Theme, ThemeDisplay, Layout, LayoutSet, ColorScheme, ....Может кто-то объяснить это или знать, где это объясняется?
б.очевидно, вам нужно получить ThemeDisplay из запроса, чтобы установить тему для него.Однако, когда пользователь входит в систему, атрибут темы (THEME_DISPLAY) еще не был установлен (ни в событиях pre, ни post; он устанавливается, когда я проверяю во время события выхода из системы).Установка темы при входе в систему является абсолютным минимумом, я действительно надеялся, что смогу установить тему до того, как пользователь войдет в систему, но так как атрибут даже не известен после входа в систему пользователя ...
c.при использовании LayoutServiceUtil.updateLookAndFeel необходимо указать groupId, themeId, colorSchemeId, css, ....Я ожидал, что просто скажу liferay, какую тему (имя) использовать независимо от того, какой идентификатор группы, ....Это не возможно?
большое спасибо за любую помощь,
Stijn
PS Я использую liferay 6.0.5.