Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Tony 11 posts 31 karma points
    Jul 03, 2011 @ 20:00
    Tony
    0

    Sub Navigation Question...

    I am trying to show a basic sub navigation from 2 levels in on a top page...

    Example:

    Page (show sub nav here)
    - InnerPage (don't show this page)
    - - InnerInnerPage 1 (show this plus the following inner inner pages)
    - - InnerInnerPage 2
    - - InnerInnerPage 3

    Make sense?

    Here is the code I thought would work... but it doesn't. 

    <ul>
      <xsl:for-each select="$currentPage/InnerPage/* [@isDoc and string(umbracoNaviHide) != '1']">
      <li>
        <href="{umbraco.library:NiceUrl(@id)}">
          <xsl:value-of select="@nodeName"/>
        </a>
      </li>
    </xsl:for-each>
    </ul>

    Any ideas?
    Thanks,
    Tony

  • Dennis Aaen 4457 posts 17970 karma points admin hq c-trib
    Jul 03, 2011 @ 20:51
    Dennis Aaen
    1

    Hi Tony,

    Have you looked for one of the predefined xslt snippets could do the job for you. Here I think of the one called List Subpages By Level.
    This XSLT file contains the following code:

    Variable indicates the level it should start. So maybe you could try to see if it can solve your problem..

    <xsl:variable name="level" select="2"/>

    <
    xsl:template match="/">

    <ul>
    <xsl:for-each select="$currentPage/ancestor-or-self::* [@level=$level]/* [@isDoc and string(umbracoNaviHide) != '1']">
      <li>
        <a href="{umbraco.library:NiceUrl(@id)}">
          <xsl:value-of select="@nodeName"/>
        </a>
      </li>
    </xsl:for-each>
    </ul>
    </xsl:template>

    Hope this can help you.
    /Dennis

  • Kim Andersen 1447 posts 2196 karma points MVP
    Jul 03, 2011 @ 21:27
    Kim Andersen
    0

    Hi Tony

    The reason why your subanvigation doesn't work is probably because the "InnerPage"-node's document type is not called InnerPage, or am I wrong?

    If you only want to show the navigation on the "Page"-node (using a for-each), you should be able to do this:

    <ul>
      <xsl:for-eachselect="$currentPage/*[@isDoc]/* [@isDoc and string(umbracoNaviHide) != '1']">
        <li>
          <ahref="{umbraco.library:NiceUrl(@id)}">
            <xsl:value-ofselect="@nodeName"/>
          </a>
        </li>
      </xsl:for-each>
    </ul>

    You could use a xsl:apply-templates, sinstead of the for-each, but either way the result should be the same of course :)

    I guess that you've only inserted the macro on the page where the subnavigation should be shown.

    By the way, Dennis approach should work as well...

    /Kim A

  • Tony 11 posts 31 karma points
    Jul 04, 2011 @ 04:23
    Tony
    0

    Thanks for the replies!

    Ok so Kim... thank you for smacking me upside the head with that :) I totally was using the pages node name not doc type.  Not sure what I was thinking.

    Working great now.

    Thank you very much for helping me through that

    Tony

  • Kim Andersen 1447 posts 2196 karma points MVP
    Jul 04, 2011 @ 19:12
    Kim Andersen
    0

    Hehe, you're more than welcome Tony. We all make mistakes once in a while right :)

    Glad it worked!

    /Kim A

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies