【问题标题】:How to transform block of content from plone being inserted into diazo theme如何将内容块从被插入重氮主题的克隆中转换
【发布时间】:2011-04-21 20:41:08
【问题描述】:

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

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

【问题讨论】:

  • 我真的需要一个可重现的例子来在这里提供任何帮助。我建议将您的规则、主题和内容剥离到显示问题所需的最低限度,然后将它们发布到某个地方供我们查看。您需要确保该示例可以从命令行运行(bin/diazorun - 如果它不存在,则使用 zc.recipe.egg 配方和 egg=diazo 创建一个新的构建部分)

标签: plone xdv diazo


【解决方案1】:

好的,所以下面的工作。它之前不起作用的原因是&lt;xsl:template&gt; 不在根级别规则标签中(那里有一个文档错误)。 &lt;xsl:template&gt; 必须在根级规则标记中,因为目前无法将规则条件应用于 &lt;xsl:template&gt;

<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 添加了对 &lt;replace content="..."&gt; 的支持,因此内联 &lt;xsl:template&gt; 被视为已弃用。而是使用:

<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的文档

【讨论】:

  • 正如劳伦斯所建议的那样(感谢劳伦斯!) - 没有工作,因为我试图在嵌套的规则元素中执行此操作。我已经编辑了我的问题以明确这一点。请注意,我最终在我的
猜你喜欢
  • 1970-01-01
  • 2010-10-17
  • 2020-06-26
  • 1970-01-01
  • 2019-05-23
  • 2017-02-21
相关资源
最近更新 更多