我的 Umbraco 网站上有一个内容元素,我想将其用作文档树另一部分内容的容器。
如下图所示,我需要从 /Content/Frontpage Tabs/Featured Pages 节点中引用 /Content/Personal Site/Blog 节点下的所有子页面。
如果我将它放在“个人站点”节点下方的页面上,我为这项工作借用的 XSLT 工作正常,但从“首页选项卡”下方没有任何结果。我猜是因为 currentPage 正在遍历那棵树而不是 Personal Site 的树。
XSLT 看起来像这样:
<xsl:param name="currentPage"/>
<xsl:variable name="numberOfPosts" select="3"/>
<xsl:variable name="level" select="1"/>
<xsl:variable name="pageNumber">
<xsl:choose>
<xsl:when test="umbraco.library:RequestQueryString('page') <= 0 or string(umbraco.library:RequestQueryString('page')) = '' or string(umbraco.library:RequestQueryString('page')) = 'NaN'">1</xsl:when>
<xsl:otherwise>
<xsl:value-of select="umbraco.library:RequestQueryString('page')"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:variable name="numberOfRecords" select="3" />
<xsl:template match="/">
<xsl:if test="$currentPage [name() = 'umbDateFolder']">
<h2 class="page-title">
Monthly Archives: <xsl:value-of select="umbraco.library:FormatDateTime(concat($currentPage/../@nodeName,'-',$currentPage/@nodeName,'-11T10:24:46'),'MMMM yyyy')"/>
</h2>
</xsl:if>
<xsl:for-each select="$currentPage/ancestor-or-self::umbBlog//umbBlogPost">
<xsl:sort select="./PostDate" order="descending" />
<xsl:if test="position() > $numberOfPosts * (number($pageNumber)-1) and
position() <= number($numberOfPosts * (number($pageNumber)-1) +
$numberOfPosts )">
<ul>
<xsl:call-template name="showpost">
<xsl:with-param name="post" select="."/>
</xsl:call-template>
</ul>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template name="showpost">
<xsl:param name="post"/>
<li>
<div class="excerpt">
<a class="header" href="{umbraco.library:NiceUrl($post/@id)}" title="{$post/@nodeName}">
<xsl:value-of select="$post/@nodeName" />
</a>
<xsl:value-of select="$post/bodyText" disable-output-escaping="yes" />
</div>
<a class="link-button" href="{umbraco.library:NiceUrl($post/@id)}">Read more</a>
</li>
有一些明显的地方我需要改变,但我对 XSLT 不够精通,所以非常感谢任何帮助。