2011-11-01 30 views
1

我需要支持使用umbraco制作的网站。在umbraco是一个总新手。让我解释一下我的场景。我已经离开了用于导航到不同页面的菜单。现在我需要更改一个菜单项以导航到不同的页面。这是可行的吗?在umbraco网站编辑菜单

它使用宏创建主菜单。母版页显示它具有宏DisplayMainMenu。该宏使用XSLT文件DisplayMainMenu。在此附上xslt代码:

<div id="main_navigation" class="jqueryslidemenu unitPng"> 
    <ul> 
    <li><a href="/">Home</a></li> 
    <xsl:for-each select="$pagesNodeSet"> 
     <xsl:sort select="./@sortOrder" data-type="text" order="ascending"/> 
     <li> 
     <a href="{umbraco.library:NiceUrl(./@id)}"><xsl:value-of select="./title"/></a> 
     <xsl:if test="count(./*[@isDoc and string(umbracoNaviHide) != '1' and string(includeInMainNavigation) = '1']) &gt; 0"> 
      <ul class="sub-menu"> 
      <xsl:for-each select="./*[@isDoc and string(umbracoNaviHide) != '1' and string(includeInMainNavigation) = '1']"> 
       <xsl:sort select="./@sortOrder" data-type="text" order="ascending"/> 
       <li><a href="{umbraco.library:NiceUrl(./@id)}"><xsl:value-of select="./title"/></a></li>    
      </xsl:for-each> 
      </ul> 
     </xsl:if> 
     </li> 
    </xsl:for-each> 
    </ul> 
</div> 

由于某些格式问题,部分代码部分无法包含。

+0

没有足够的信息在这里工作。这个菜单是如何产生的?它使用宏吗?如果是的话,你可以发布宏代码(xslt或剃刀)? –

+0

我将用xslt代码编辑我的帖子。 –

回答

1

您的xslt根据您的网站布局动态创建菜单,如umbraco仪表板的内容部分所定义。因此,您不能“将菜单项更改为指向不同的页面”。您可以通过添加新页面,移动现有页面或删除不需要的页面来改变您的网站结构以反映您的想法。

如果您想添加一个静态页面链接,您可以将它添加到上面的xslt中(以与添加“主页”链接相同的方式),但您需要确保它位于xslt:for-each之外循环,除非你想进入一些复杂的xslt编码。

从本质上讲,上面的代码正在做的是创建一个无序列表,为主页静态添加第一个列表项。然后循环每个子页面并添加一个链接。然后,对于每个子页面,如果它具有可见的子页面(通过确保它们不应该被隐藏并且应该使用它们的umbracoNaviHide和includeInMainNavigation属性被包括在主导航中),它正在循环遍历它们并显示链接。