如何将插入plone的内容块转换为重氮主题

时间:2011-04-21 20:41:09

标签: plone xdv diazo

我正在使用带有Plone 4.1的重氮(目前是plone.app.theming 1.0b1-r48205)。我想将Plone的html用于搜索小部件,除了我想用<input>替换搜索小部件中用于搜索按钮的<button>元素。 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>

我尝试了很多这方面但没有成功。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:6)

好的,以下是有效的。之前没有工作的原因是<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"/>

更新:我已将<replace content="...">的支持添加到Diazo,因此内联<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

上的文档