切换基于cookie的diazo(plone.app.theming)主题

时间:2012-02-10 06:46:33

标签: plone diazo

我希望能够让管理员更改当前正在使用的主题。可能通过设置cookie或特殊URL。这将使他们能够调试他们主题的副本,而另一个版本对其他人来说都是实时的。

3 个答案:

答案 0 :(得分:3)

支持这一点需要对plone.app.theming进行处理,以便可以为不同的CMF外观配置不同的重氮主题。这是我的路线图,但我不知道什么时候能够实现它。如果您有兴趣使用此功能或赞助此功能,请与我联系。

答案 1 :(得分:1)

我做了类似的事情,使用主机名来决定使用哪个重氮主题。使用不同的rules.xml,index.html和自定义资源没有问题。 theingingplugins是另一个故事(覆盖,视图,浏览器等),我不知道在每个请求上注册/取消注册itingplugins有多好。

当我回到家时,我会更新此评论,以便您可以看到我做了什么。如果我没记错的话,我将子类化并替换为plone.app.theming(应用主题的组件)注册的内容。

答案 2 :(得分:0)

我没有尝试过,但它可能会这样:

为当前使用的主题定义参数。 请注意,您需要在portal_skins / manage_propertiesForm中启用“允许选择任意皮肤”

[theme:parameters]
theme = python:self.context.REQUEST.get('plone_skin', 'Plone Default')

并在rules.xml

中根据此参数选择主题或规则集
<theme href="theme1.html" if="$them = 'special theme'"/>
<theme href="default.html" if="$them = 'Plone Default'"/>