我在Plone 4.1上使用了重氮(目前为plone.app.theming 1.0b1-r48205)。除了要使用<input>替换用于搜索小部件中搜索按钮的<button>元素外,我想完全使用Plone的html作为搜索小部件。 diazo docs似乎建议您可以执行此操作。

在主题html文件中,我有一个空的<div id="portal-searchbox"></div>。在我的rules.xml中,我具有以下内容:

<rules if-content="$enabled">
    <replace css:theme="div#portal-searchbox">
        <xsl:apply-templates css:select="div#portal-searchbox" />
    </replace>
    <xsl:template css:match="div#portal-searchbox input.searchButton">
        <button type="submit"><img src="images/search.png" alt="Search" /></button>
    </xsl:template>
</rules>

我已经尝试过许多变体,但没有成功。任何帮助将非常感激。

最佳答案

好的,因此以下工作。之前无法正常工作的原因是<xsl:template>不在根级别规则标记中(那里有一个文档错误)。 <xsl:template>必须在根级别规则标记中,因为当前无法将规则条件应用于<xsl:template>

<xsl:template css:match="div#portal-searchbox input.searchButton">
     <button type="submit"><img src="images/search.png" alt="Search" /></button>
</xsl:template>

<replace css:theme="div#portal-searchbox" css:content="div#portal-searchbox"/>

更新:我已向Diazo添加了对<replace content="...">的支持,因此认为不推荐使用内联<xsl:template>。而是使用:
<replace css:content="div#portal-searchbox input.searchButton">
    <button type="submit"><img src="images/search.png" alt="Search" /></button>
</replace>
<replace css:theme="div#portal-searchbox" css:content="div#portal-searchbox"/>

http://diazo.org/advanced.html#modifying-the-content-on-the-fly上的文档

关于plone - 如何从插入 Diazo 主题的插件转换内容块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5749561/

10-10 17:29