一把umbraco XSLT RenderTemplate困境
问题描述:
孤男寡女XSLT和一把umbraco一些指导。对XSLT来说相当新颖,但我想我理解这些概念。右一个页面上我有两列,每一个都有自己独立的可拾取内容。这是通过标准内容选择器属性完成的(每列一个)。问题是我需要能够在页面上有两个不同的模板。所以本质上页面导航了两个列,它必须在它自己的页面中呈现它的两个子项。一把umbraco XSLT RenderTemplate困境
我有一个使用通用XSLT,我发现,基本上只是使得它发现什么都子项有一列这方面的工作,但我希望它使用户拿起什么都之一。
我知道内容选取器返回页面的XML节点ID,并且可以与Render Template函数一起使用来显示它(我有一个例子),但是当涉及到在我自己的属性中添加和然后将它们传递给RenderTemplate函数,我迷路了。这个XSLT的新功能:)。
到目前为止,我有...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxml="urn:schemas-microsoft-com:xslt"
xmlns:umbraco.library="urn:umbraco.library"
xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon"
xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes"
xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath"
xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions"
xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings"
xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:variable name="nodeID" select="data[@alias='leftColumn']"/>
<xsl:template match="/">
<xsl:value-of select="umbraco.library:RenderTemplate($nodeID)" disable-output-escaping="yes"/>
</xsl:template>
</xsl:stylesheet>
任何一个知道为什么这不起作用怎么办我后?以上给出的值不是太大就是太小错误。
答
实际上,你这里有两个问题...
调用RenderTemplate()使用另一种模板,第一个是内容节点ID,和第二个是当
RenderTemplate
实际上需要两个参数您要应用的所选模板。
<xsl:value-of
select="umbraco.library:RenderTemplate($nodeID, $templateID)"
disable-output-escaping="yes" />
请访问以下链接了解更多信息:http://our.umbraco.org/wiki/reference/umbracolibrary/rendertemplate
过大或过小的错误
这一个很简单的把一个如果空语句周围的代码来解决题。
<xsl:if test="$nodeID != ''">
<xsl:value-of
select="umbraco.library:RenderTemplate($nodeID, $templateID)"
disable-output-escaping="yes" />
</xsl:if>
XSLT解析器喜欢假定某些值为空,实际上它们不是。此获得的另一种方法是检查在保存时的Skip Errors
复选框,但是这使得调试实际的错误代码有点痛。
希望它有帮助。
感谢您的答复,我环顾四周,从我能看到,你可以在它自己的一个节点ID通过。我会给它一个templateID的测试,但我不认为这是错误。我挖了一点,似乎无论nodeID变量从来没有获取任何数据。我打印的内容选择器缩小页面模板设计师“”,并打印出正确的数据,但使用它在XLST它从来没有得到数据。 – Dilvid 2012-02-07 14:15:12
你使用哪种版本的Umbraco? – 2012-02-07 14:17:39
umbraco v 4.7.1(Assembly version:1.0.4281.20201) 你可以看到网站 - http://priority.wireddotnet.co.uk/ – Dilvid 2012-02-07 14:26:02