2013-11-20 76 views
2

我有以下問題。我的節點樹是這個樣子:CurrentPage別名 - Umbraco

  • 首頁

    • 新聞區

      • 新聞1
      • 新聞2
    • 活動區

      • 事件1
      • 事件2

當你想要顯示它的主要網站上,一切都很好。

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

然而,這隻能找到我的網站的主頁上。當我轉到子頁面時,此解決方案不再適用。

有誰知道如何解決它?

回答

0

所以我假設你想在每個頁面上顯示事件列表,比如在側欄上。
要在$currentPage開始這樣做,而不是開始/root/home像這樣:

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

,或者如果你想找到所有simpleEvent頁面無論在哪裏,他們存在這樣做:

<xsl:for-each select="//simpleEvent [@isDoc and string(umbracoNaviHide) != '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