2011-11-01 77 views
0

我想通過xslt在Sitecore 6中創建一個簡單的菜單。在xslt中建立獨立的1級和2級菜單

當前有1級導航,顯示網站第一級的所有菜單項。這工作正常。然後我有一個二級菜單,顯示當前(或父母)一級項目的所有子項目。

我把它作爲2個單獨的檢查,所以他們沒有互相鏈接(因爲網站上的樣式,1級菜單項顯示一個地方,2級項目顯示另一個地方)。

我目前正在使用此級別2檢查;

<xsl:for-each select="$sc_currentitem/item[sc:fld('In global menu',.) = '1']"> 

當然,不過這只是工作,當我在1級項目實際上是 - 當我移動到2級項目,它不再起作用。

任何想法?它應該是相當簡單,但我失去了一些明顯的東西。

+0

提供一些輸入?還有一些輸出? – FailedDev

+0

我的建議是使用ascx/.cs創建這種類型的東西,因爲導航通常可以通過XSLT解決得很安靜。你對於你想要達到的目標並不是非常具體,但這是我們常用的導航元素。 – Younes

回答

0

我認爲你的錯是你使用$ sc_currentitem。 您可以創建一個變量或者使用existin變量爲您的家庭項目,並遍歷它來顯示你的菜單

像這樣<xsl:for-each select="$home/item[sc:fld('In global menu',.) = '1']">

比你可以通過使用與迭代項ID比較$ sc_currentitem ID a知道現在訪問哪一個,並且用這樣的東西迭代通過這一個<xsl:for-each select="./item[sc:fld('In global menu',.) = '1']">

我希望這能幫上忙。

最好的問候,

菲爾從netzkern Sitecore的Trainingcenter德國

0

是網站的所有「節」基於同樣的數據模板?如果是這樣,你可以使用這樣的事情(未測試):

<xsl:variable name="section" select="'$sc_currentitem/ancestor-or-self::item[@template='templatename']'"/> 

從這裏你可以使用$部分/項目把所有的二級導航項目。