community.xdv и несколько файлов тем - PullRequest
4 голосов
/ 12 апреля 2011

У меня разные HTML-файлы темы для разных разделов сайта. Существуют некоторые основные различия в макете, которые зависят от того, является ли страница главной страницей или определенным подразделом.

Насколько я понимаю, по умолчанию используется только один файл HTML:

http://pypi.python.org/pypi/collective.xdv#usage

Какова была бы лучшая стратегия для использования нескольких файлов тем, небольших вариаций правил и коллективного .xdv?

Plone 4.1b.

Ответы [ 3 ]

3 голосов
/ 12 апреля 2011

Обычно мы просто используем обычный xdv и используем файл rules.xml (или как вы хотите его называть) для настройки шаблонов тем, оставляя соответствующие свойства в панели управления коллективной.Правила вложения дают вам некоторую гибкость при назначении различных шаблонов:

<?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>
1 голос
/ 13 апреля 2011

Вы должны использовать настройки Alternate Themes , чтобы определить альтернативные макеты, когда URL соответствует определенному регулярному выражению.

Например, у нас есть Plone-сайт с именем "Plone", доступный поurl localhost: 8080 / Plone.Чтобы предоставить другой макет для домашней страницы, мы можем определить следующее в реестре (или TTW в разделе Панель управления Plone> Настройки XDV ):

<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>

Таким образом,домашняя страница будет использовать альтернативный макет, в то время как все остальные страницы будут использовать основной макет, указанный в Шаблон темы и Шаблон правил

Вы можете предоставить несколько определений в соответствии св разные разделы вашего сайта.

0 голосов
/ 13 апреля 2011

Мой личный сайт Plone использует разные файлы тем и правил для разных частей.

Используете ли вы панель управления XDV на / @@ xdv-settings ?

В полях Шаблон темы и Файл правил я поместил мои стандартные (т.е. наиболее часто используемые) файлы.

В Альтернативные темы текстовое поле, затем вы можете предоставить альтернативные файлы темы и правил в зависимости от заданного пути.

Формат правил темы пути .

Вот несколько примеров из моегоконфигурация сайта:

  1. . * / login_form |. * logged_out /home/zope/production/theme/theme.html /home/zope/production/theme/login.xml
  2. / media / blog $ /home/zope/production/theme/blog.html /home/zope/production/theme/blog.xml
  3. / media / software / home / zope / production / theme / software.html /home/zope/production/theme/media.xml

Как видите, вы можете использовать синтаксис регулярных выражений для сопоставления путей.

Первый line предназначен для стилизации страниц входа и выхода.Второй для стиля только целевой страницы моего блога (henche $), третий стиль для моей страницы программного обеспечения.

Работает как шарм.

...