CurrentPage别名 - Umbraco

时间:2013-11-20 18:14:58

标签: xslt umbraco

我有以下问题。我的节点树如下所示:

  • 主页

    • 新闻区

      • 新闻1
      • 新闻2
    • 活动区域

      • 事件1
      • 事件2

当你想在主站点上显示它时,一切都很好。

<xsl:for-each select="$currentPage/eventsArea/simpleEvent [@isDoc and string(umbracoNaviHide) != '1']">

但是,这只能在我网站的主页上找到。当我转到子页面时,此解决方案不再起作用。

有谁知道如何解决它?

2 个答案:

答案 0 :(得分:0)

所以我假设您想要在每个页面上显示事件列表,例如在侧栏上 为此,请$currentPage/root/home开始,而不是从<xsl:for-each select="/root/home/eventsArea/simpleEvent [@isDoc and string(umbracoNaviHide) != '1']"> 开始:

<xsl:for-each select="//simpleEvent [@isDoc and string(umbracoNaviHide) != '1']">

或者如果您想查找所有simpleEvent页面而不管它们存在于何处,请执行以下操作:

{{1}}

如果有人更改文件夹结构,后者将继续工作。

答案 1 :(得分:0)

不幸的是,第一个和第二个不起作用。

如果代码如下所示:

<xsl:for-each select="$currentPage/eventsArea/simpleEvent [@isDoc and string(umbracoNaviHide) != '1']">
<xsl:sort select="@createDate" order="descending" />
<xsl:if test="position() &lt;= $numberOfItems">
<a href="{umbraco.library:NiceUrl(@id)}"><xsl:value-of select="@nodeName"/></a>
<p><xsl:value-of select="umbraco.library:TruncateString(umbraco.library:StripHtml(bodyText), number($excerptLength), '...')" disable-output-escaping="yes"/></p>
</xsl:if>
</xsl:for-each>

一切正常。

enter image description here

<xsl:for-each select="/root/home/eventsArea/simpleEvent [@isDoc and string(umbracoNaviHide) != '1']">

<xsl:for-each select="//simpleEvent [@isDoc and string(umbracoNaviHide) != '1']">

不要显示任何内容。

enter image description here