user497447
user497447

Reputation: 43

Create multilevel menu for umbraco using XSLT?

how to create Umbraco menu like this using XSLT ?

<ul id="topmenu">
     <li><a href="#">top1</a></li>
     <li><a href="#">top2</a></li>
     <li><a href="#">top3</a>
         <ul>
         <li><a href="#">sub1</a></li>
         <li><a href="#">sub2</a></li>
         <li><a href="#">sub3</a></li>
         </ul>
      </li>
      <li><a href="#">top4</a></li>
      <li><a href="#">top5</a></li>
 </ul>menu like this using XSLT ? 

Upvotes: 2

Views: 2601

Answers (1)

BeaverProj
BeaverProj

Reputation: 2215

Something like this should work. This is based on the initially generated Navigation XSLT.

<ul class="nav sf-menu">
<xsl:for-each select="$currentPage/ancestor-or-self::*[@isDoc and @level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">

  <li>

    <a href="{umbraco.library:NiceUrl(@id)}">
      <xsl:value-of select="@nodeName"/>
    </a>
    <xsl:if test="count(./child::*[@isDoc and string(umbracoNaviHide) != '1']) &gt; 0">
      <ul>
        <xsl:for-each select="./child::*[@isDoc and string(umbracoNaviHide) != '1']">
          <li>
            <a href="{umbraco.library:NiceUrl(@id)}">
              <xsl:value-of select="@nodeName"/>
            </a>
          </li>
        </xsl:for-each>
      </ul>  
    </xsl:if>
  </li>


</xsl:for-each>
</ul>

Upvotes: 7

Related Questions