我正在实现一个功能,允许用户在两种不同的配色方案之间切换。但是,在我看来,Liferay 中的配色方案是按系统/门户而不是按用户的。因此,如果用户更改它(我可以授予每个用户这样做的权限),它将为所有用户更改。我理解正确吗?
如果是这种情况,实现该功能的最佳方法是什么?
我现在想到的是,我可以为每个用户添加一个自定义字段,以存储一个人选择的配色方案;但我不确定下一步该怎么做。看起来我无法更改系统范围内的配色方案以便ThemeDisplay
可以使用它来呈现页面,因为这将为所有其他用户更改它。是否可以在渲染每个页面时应用用户特定的配色方案?
更新:似乎在下面theme/_diffs/templates/init.ftl
,有一种方法可以通过修改以下行来实现,
<#assign css_class = theme_display.getColorScheme().getCssClass() + " yui3-skin-sam" />
我们需要的是检索特定于用户的配色方案的 Css 类,并theme_display.getColorScheme().getCssClass()
用它替换。
明天将测试这个想法。