3

我在 rules.xml 中有以下片段

<!-- Fix search box to honour Plone rules-->
<replace css:theme="form#search">
    <form action="http://localhost:8080/LS/search" name="form1" id="search">
        <input type="text" name="SearchableText" onclick="make_blank();" onblur="keep_search();" class="search_text_style content_text2"/>       
        <input type="image" src="++resource++lsm/images/template/search.png" width="22" height="22" class="search_btn" />
</form>
</replace>

如何将动态属性传递给 XSL,以便我根据 Plone 站点对象设置为真实 URL?

我可以通过提供帮助视图、修改 XDVTransform 等来做到这一点,但我想首先知道这里推荐的方法是什么。

4

2 回答 2

1

请注意,在 plone.app.theming / Diazo 中,您将能够使用 TAL 定义参数并将它们传递给您的主题。

我认为在这种情况下,我只需从具有属性 value-of 的内容中获取实际的搜索 URL(或主 URL)。

于 2011-04-20T22:27:29.743 回答
0

我认为你需要一个全局<xsl:param>

通常,全局参数的值是由转换的发起者在转换开始之前设置的。这是一种公认​​的将非静态值(在样式表编译时已知)传递给 XSLT 转换值的通用方法。

这是一个例子

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:param name="pUrl" select="'http://www.cnn.com'"/>

 <xsl:template match="/">
  <t href="{$pUrl}"/>
 </xsl:template>
</xsl:stylesheet>

当此转换应用于任何 XML 文档(未使用)时,结果为

<t href="http://www.cnn.com" />

如何设置全局参数值取决于实现,并且从一个 XSLT 处理器到另一个不同。阅读 XSLT 处理器的文档以了解如何执行此操作。

于 2011-04-20T22:07:46.527 回答