Добавление класса к элементу тела с помощью XDV

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

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

  • Контактная информация
  • sendto_form
  • Формы PFG

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

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

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

например.

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

Мой желаемый результат будет что-то вроде:

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

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

1 ответ

Решение

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

Если вы не можете выполнить обновление, вам нужно сделать это с помощью встроенного 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>

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

Другие вопросы по тегам