跳转到内容

Umbraco/参考/umbraco.library/RenderMacroContent

来自维基教科书,开放的书籍,开放的世界

运行宏并将输出插入您的 XSLT。

RenderMacroContent(String Text, Int32 PageId)

Text:模板“宏”代码的编码版本(有关正确编码,请参见下文)

PageId:您要用于宏内容的节点的 NodeID

字符串文本编码说明

[编辑 | 编辑源代码]

当您将宏代码放在模板中时,它看起来像这样

<?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3"></?UMBRACO_MACRO>

要为 RenderMacroContent 函数编码此内容,请执行以下步骤

1. 将“<”更改为“&lt;”

&lt;?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3">&lt;/?UMBRACO_MACRO>

2. 将“>”更改为“&gt;”

&lt;?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3"&gt;&lt;/?UMBRACO_MACRO&gt;

3. 将“"”更改为“&quot;”

&lt;?UMBRACO_MACRO macroAlias=&quot;LatestNews&quot; numberOfItems=&quot;3&quot;&gt;&lt;/?UMBRACO_MACRO&gt;

4. 将其放入 XSLT 时,将整个内容用单引号括起来

umbraco.library:RenderMacroContent('&lt;?UMBRACO_MACRO macroAlias=&quot;LatestNews&quot; numberOfItems=&quot;3&quot;&gt;&lt;/?UMBRACO_MACRO&gt;'...

示例 XSLT 用法

[编辑 | 编辑源代码]

<xsl:value-of select="umbraco.library:RenderMacroContent('<?UMBRACO_MACRO macroAlias="LatestNews" numberOfItems="3"></?UMBRACO_MACRO>', @id)" disable-output-escaping="yes"/>

此字符串当然应该被编码,所以它看起来像这样

<xsl:value-of select="umbraco.library:RenderMacroContent('&lt;?UMBRACO_MACRO macroAlias=&quot;LatestNews&quot; numberOfItems=&quot;3&quot;&gt;&lt;/?UMBRACO_MACRO&gt;', @id)" disable-output-escaping="yes"/>

小贴士:用于为您进行编码的 XSLT

[编辑 | 编辑源代码]

如果您希望能够将标准模板宏代码“剪切并粘贴”到您的 XSLT 中并让它正确编码,请将这段代码添加到一个新的 XSLT 中

<xsl:variable name="Macro"> <xsl:value-of select="{将您的模板宏代码粘贴到这里}"/> </xsl:variable> <xsl:variable name="MacroEncoded"> <xsl:value-of select="umbraco.library:Replace(umbraco.library:Replace(umbraco.library:Replace($Macro, '"', '&quot;'), '>', '&gt;'), '<', '&lt;')"/> </xsl:variable>

然后使用它将编码后的 XSLT 呈现到浏览器中的测试页面(然后您可以将它剪切并粘贴到您的 XSLT 代码中)

<xsl:value-of select="$MacroEncoded" />


版本 4 警告

[编辑 | 编辑源代码]

警告,Umbraco 4 中带有新模板的宏具有不同的语法,但是 XSLT 扩展仍然需要旧的 v3 语法,因此如果您将插入 v 4 模板中的宏复制过来,则需要将其更改为 v3

例如

<umbraco:Macro Alias="Name" runat="server"></umbraco:Macro>

变为

<?UMBRACO_MACRO macroAlias="Name" runat="server"></?UMBRACO_MACRO>

(带转义)

华夏公益教科书