Plone 使用XDV向body元素添加类

Plone 使用XDV向body元素添加类,plone,diazo,xdv,plone-3.x,deliverance,Plone,Diazo,Xdv,Plone 3.x,Deliverance,我想在Plone3+collective.xdv中设计一些表单的样式,但我不希望所有表单都有特殊的样式 因此,我想在显示某些模板时,向body元素的class属性添加一个特殊的样式化表单类名: 联系信息 寄存表格 PFG表格 因此,我认为我可以设法用XDV执行此操作,以避免修改这些模板 通过使用XDV规则中的if content指令,我可以检查这些模板是否正在显示: css:if-content="body.template-contact-info" 比如说 但是我没有找到方法来保留Pl

我想在Plone3+collective.xdv中设计一些表单的样式,但我不希望所有表单都有特殊的样式

因此,我想在显示某些模板时,向
body
元素的
class
属性添加一个特殊的
样式化表单
类名:

  • 联系信息
  • 寄存表格
  • PFG表格
因此,我认为我可以设法用XDV执行此操作,以避免修改这些模板

通过使用XDV规则中的
if content
指令,我可以检查这些模板是否正在显示:

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

但是我没有找到方法来保留Plone提供的class属性,并根据该条件添加特殊类

我期望的结果是:

<body class="template-contact-info styled-form">
    ...
</body>
<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>

...

提前感谢。

使用Diazo/plone.app.theming,您可以合并模板和内容中的属性,请参阅:

如果无法升级,则需要使用内联XSL进行升级,例如:

<body class="template-contact-info styled-form">
    ...
</body>
<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>
样式化表单

更新:我忘记了上面示例中的标记。现在应该可以用了。

这几乎可以用了。它添加了一个文本节点,其中包含结果值:
模板联系人信息样式表单
我如何告诉XDV将其插入
属性中?我想您可以使用:styled获得它-form@davi-利马:不,显然
主题
不接受属性,而是接受整个元素。我认为重氮的
合并规则应该有效。但我没有重氮,而是集体的。xdv@laurence-罗:太好了!谢谢