Добавление класса к элементу тела с помощью XDV - PullRequest
3 голосов
/ 06 июля 2011

Я хочу стилизовать некоторые формы в Plone3 + colle.xdv, но я не хочу, чтобы все формы получали особый стиль.

Поэтому я хотел бы добавить специальное имя класса styled-form ватрибут class элемента body только при отображении определенных шаблонов:

  • contact-info
  • sendto_form
  • PFG формы

Поэтому я подумал, что мне удастся выполнить это с XDV, чтобы не изменять эти шаблоны.

Используя директивы if-content в правилах XDV, я могу проверить, отображаются ли эти шаблоны:

css:if-content="body.template-contact-info"

например.

Но я не нахожу способ сохранить атрибут класса , предоставленный Plone, и добавить специальный класс , основанный на этом условии.

Мой желаемый результат будет примерно таким:

<body class="template-contact-info styled-form">
    ...
</body>

Заранее спасибо.

1 Ответ

3 голосов
/ 06 июля 2011

С помощью Diazo / plone.app.theming вы можете объединять атрибуты из шаблона и содержимого, см .: http://diazo.org/basic.html#merge

Если вы не можете выполнить обновление, вам нужно сделать это с помощью встроенного XSL, например:

<prepend theme="/html/body" css:if-content="body.template-contact-info"><xsl:attribute name="class"><xsl:value-of select="/html/body/@class"/> styled-form</xsl:attribute></prepend>

Обновление: Я забыл тег в примере выше. Это должно работать сейчас.

...