2011-11-01 29 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屬性被包括在主導航中),它正在循環遍歷它們並顯示鏈接。