对于不同的站点部分,我有不同的主题 HTML 文件。根据页面是首页还是某个小节,存在一些主要的布局差异。
据我所知,默认行为只是拥有一个 HTML 文件:
http://pypi.python.org/pypi/collective.xdv#usage
使用多个主题文件、轻微的规则变化和collective.xdv 的最佳策略是什么?
克隆 4.1b。
对于不同的站点部分,我有不同的主题 HTML 文件。根据页面是首页还是某个小节,存在一些主要的布局差异。
据我所知,默认行为只是拥有一个 HTML 文件:
http://pypi.python.org/pypi/collective.xdv#usage
使用多个主题文件、轻微的规则变化和collective.xdv 的最佳策略是什么?
克隆 4.1b。
我们通常只使用普通的 xdv 并使用rules.xml
(或任何您想调用的)文件来设置主题模板,而将collective.xdv 控制面板中的相应属性留空。在分配不同的模板时,嵌套规则为您提供了相当多的灵活性:
<?xml version="1.0" encoding="UTF-8"?>
<rules xmlns="http://namespaces.plone.org/xdv"
xmlns:css="http://namespaces.plone.org/xdv+css"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<theme css:if-content="body.section-front-page" href="frontpage.html" />
<theme css:if-path="/section/subsection/somefolder" href="somefolder.html" />
...
<rules css:if-content="#visual-portal-wrapper">
<!-- The default theme -->
<theme href="theme.html" />
<rules css:if-content="body.section-somefolder">
<!-- Secific rules for somefolder go here -->
...
</rules>
</rules>
当 url 匹配特定的正则表达式时,您应该使用替代主题设置来定义替代布局。
例如,我们有一个名为“Plone”的 Plone 站点,可通过 url localhost:8080/Plone 访问。要为主页提供不同的布局,我们可以在注册表中定义以下内容(或在Plone 控制面板 > XDV 设置部分中定义 TTW):
<record field="alternate_themes" interface="collective.xdv.interfaces.ITransformSettings" name="collective.xdv.interfaces.ITransformSettings.alternate_themes">
<field type="plone.registry.field.List">
<description>Define alternate themes and rules files depending on a given path. Should be of a form 'path theme rules' (or 'path rules' with xdv 0.4), where path may use a regular expression syntax, theme is a file path or URL to the theme template and rule is a file path to the rules file.</description>
<required>False</required>
<title>Alternate themes</title>
<value_type type="plone.registry.field.TextLine">
<title>Theme</title>
</value_type>
</field>
<value>
<element>^.*/Plone(/)?$ python://my.xdvtheme/templates/alternative/index.html python://my.xdvtheme/rules/alternative/index-rules.xml</element>
</value>
</record>
这样,主页将使用替代布局,而所有其他页面将使用主题模板和规则模板中指定的主布局
您可以根据站点的不同部分提供多个定义。
我的个人 Plone 站点对不同部分使用不同的主题和规则文件。
您是否在/@@xdv-settings使用 XDV 控制面板?
在主题模板和规则文件字段中,我放置了我的默认(即最常用的)文件。
在备用主题文本框中,您可以根据给定路径提供备用主题和规则文件。
格式为路径主题规则。
以下是我网站配置中的一些示例:
如您所见,您可以使用正则表达式语法来匹配路径。
第一行用于设置登录和注销页面的样式。第二个样式只用于我博客的登录页面(henche $)第三个样式我的软件页面。
奇迹般有效。