0

我想要这样一种机制,它将根据 Liferay 中不同的用户角色提供不同的主题。有没有一种方法可以为我提供一个解决方案,我可以在用户角色上更改主题。其次,我想知道这是否可以通过编程方式实现,或者 Liferay 对此提供了自定义支持。

任何帮助将不胜感激。

4

3 回答 3

0

糟糕的选择

正确的方法不是改变主题,而是在页面中注入一些东西来改变样式。

根据用户会话在运行时更改主题是一个坏主意。由于每个请求的缓存无效,性能不佳。

构建自定义 portlet 并将其注入到每个页面的主题中。根据用户逻辑,portlet 可以注入一些 javascript 来更改 html 标记的 css 类。

清楚吗?

于 2014-05-21T08:24:42.523 回答
0

主题与布局(即页面)相关联。这可以在liferay的布局表中观察到。因此,即使它可以使用 API 进行更改,但在用户级别并没有什么不同,而是在页面级别关联。

根据您的要求,如果您有一些固定数量的主题,则应用不同的站点,每个站点都有一个特定的主题。

使用 Post login hook,您可以检查用户角色并重定向到适当的站点。使用这种方法,如果您愿意,您也可以根据用户角色拥有完全不同的布局和页面。

于 2014-05-21T08:48:08.227 回答
0

我们还可以使用速度变量$is_male, $is_female, $time_zone, $language..来识别用户组,并可以在 body 标签中加载不同的 CSS 文件或父类。

答案可能对提出此问题的马克没有用,但未来的读者可能会发现这很有用。

谢谢

于 2015-07-16T08:34:39.463 回答