如何根据与重氮的网址使用两个不同的主题?

时间:2014-04-17 09:29:07

标签: plone diazo

我需要一个符合以下要求的解决方案:

  1. 使用基于无格式(!)的重氮主题,主题库(即“Plone Default”)和URL diazotheme.domain.com
  2. 使用“sunburst主题”(或任何其他Plone主题),网址为“sunburst.domain.com”
  3. 似乎diazo不仅使用重氮主题的基本主题,而且还使用“未主题的主机名”。在diazo的“@@ theming-controlpanel”中设置基本主题实际上会更改站点的默认外观。

    我发布了一个使用重氮与editskinswitcher结合的解决方案:https://stackoverflow.com/a/23130398/1659599。我想知道如果不使用editskinswitcher这是否可行。

3 个答案:

答案 0 :(得分:2)

查看collective.behavior.localdiazo包。

您可以在http://www.cfa.org.br/rba网站中查看该广告,其主题与http://www.cfa.org.br/主网站不同。

RBA是Microsite的一个实例,是sc.microsite中定义的基于敏捷的内容类型。

答案 1 :(得分:0)

您肯定需要一种机制来为您网站的不同部分激活不同的皮肤。 editskinswitcher是这里的一个选择。

你也可以编写自己的遍历器来应用正确的浏览器层并修补portal_skins工具。

另一种方法是允许在portal_skins中选择皮肤,并通过请求变量设置皮肤。 这里概述了这个概念:https://dev.plone.org/ticket/10311

答案 2 :(得分:0)

你需要换皮肤吗?或者是否足以改变重氮主题,使用相同(或多或少中性)的plone皮肤?

我使用这种方法根据路径切换重氮规则集和index.html。两个重氮主题使用不同的资源:图像,样式,js等,并且非常不同。

我的rules.xml - 缩短了:

<?xml version="1.0" encoding="UTF-8"?>
<rules
    xmlns="http://namespaces.plone.org/diazo"
    xmlns:css="http://namespaces.plone.org/diazo/css"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xi="http://www.w3.org/2001/XInclude">

    <!-- The theme for my "app" -->
    <rules if-path="/app_path /site/app_path">
        <theme href="index_app.html"/>
        <!-- rules for the specific path -->
    </rules>

    <!-- The default theme, used for standard Plone web pages -->
    <theme href="index.html" css:if-content="#visual-portal-wrapper" />

    <!-- Rules applying to a standard Plone web page -->
    <rules css:if-content="#visual-portal-wrapper">
        <!-- rules for the rest of the site -->
    </rules>
</rules>

使用p.a.theming主题参数的域应该是可行的:https://pypi.python.org/pypi/plone.app.theming#theme-parameters

并使用&#34;基于任意参数的条件&#34;来自http://docs.diazo.org/en/latest/advanced.html

(将if-path替换为if =&#34; $ host =&#39; domain&#39;&#34;)

UNTESTED! :)