我正在尝试通过xslt在Sitecore 6中创建一个简单的菜单。
目前有一个1级导航,显示网站第一级的所有菜单项。这很好用。然后我有一个2级菜单,显示我当前(或父级)1级项目的所有子项目。
我将它作为2个单独的检查,因此它们没有相互链接(由于网站上的样式,1级菜单项显示在一个地方,2级项目显示在另一个地方)。
我目前正在使用它进行2级检查;
<xsl:for-each select="$sc_currentitem/item[sc:fld('In global menu',.) = '1']">
但当然这只有效,当我实际上在1级项目时 - 当我向下移动到2级项目时,它不再有效。
有什么想法吗?它应该非常简单,但我遗漏了一些明显的东西。
答案 0 :(得分:0)
我认为你的错是你使用$ sc_currentitem。 您可以创建变量或使用existsin变量作为您的主项目,并循环显示您的菜单
像这样<xsl:for-each select="$home/item[sc:fld('In global menu',.) = '1']">
比你可以将$ sc_currentitem ID与迭代项目ID进行比较,通过使用a知道当前访问了哪一个,并使用类似<xsl:for-each select="./item[sc:fld('In global menu',.) = '1']">
我希望这有帮助。
致以最诚挚的问候,
来自netzkern Sitecore Trainingcenter德国的菲尔答案 1 :(得分:0)
网站的所有“部分”是否都基于相同的数据模板?如果是这样,你可以使用这样的东西(未经测试):
<xsl:variable name="section" select="'$sc_currentitem/ancestor-or-self::item[@template='templatename']'"/>
从这里你可以使用$ section / item来获取所有二级导航项。