Добавление класса к элементу тела с помощью 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>
Обновление: я забыл тег в примере выше. Это должно работать сейчас.