Umbraco 7 HTML Site Map Partial View

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{ var home = CurrentPage.Site(); }

@if (home.Children.Any())
{
    @* Get the first page in the children *@
    var naviLevel = home.Children.First().Level;
    var listChildPages = "false";

    @* Add in level for a CSS hook *@
    <ul style="margin-top:0px;paddin:0px;font-size:16px;">        
        @* For each child page under the home node *@
        <li><a href="/" title="@CurrentPage._siteTitle">Home</a></li>
        @foreach (var childPage in home.Children.Where("Visible"))
        {
            if (childPage.Children.Any() && listChildPages =="true"  && childPage.id != 1110)
            {                
                <li style="margin-bottom:5px;">
                        @if(@childPage.HasValue("navigationName"))
                        {
                            <a href="@childPage.Url" title="@childPage.Name">@childPage.navigationName</a>
                        }
                        else {
                            <a href="@childPage.Url" title="@childPage.Name">@childPage.Name</a>
                        }
                            @childPages(childPage.Children)
                </li>
            }
            else
            {
                if(childPage.id != 1110)
                {
                <li style="margin-bottom:5px;">
                          <a href="@childPage.Url" title="@childPage.Name">@childPage.navigationName</a>
                            @childPages(childPage.Children)
                </li>
                }
            }        
        }

    </ul>
}

@helper childPages(dynamic pages)
{
    @* Ensure that we have a collection of pages *@
    if (pages.Any())
    {
        @* Get the first page in pages and get the level *@
        var naviLevel = pages.First().Level;
    
   
   
        @* Add in level for a CSS hook *@
        <ul style="margin:0px;padding:0px;padding-left:20px;">
            @foreach (var page in pages)
            {
                <li style="margin-bottom:5px;">
                    @if(@page.HasValue("navigationName"))
                        {
                            <a href="@page.Url" title="@page.Name">@page.navigationName</a>
                        }
                    else
                    {
                        <a href="@page.Url" title="@page.Name">@page.Name</a>
                    }
                
                    @* if the current page has any children *@
                    @if (page.Children.Any())
                    {                    
                        @* Call our helper to display the children *@
                        @childPages(page.Children)
                    }
                </li>
            }
        </ul>
    }
}

For more Umbraco work, please visit my website: Mark Development Web Designer East Kilbride, Glasgow for Umbraco.

Comments

Popular posts from this blog

Umbraco Razor Sort Nodes Ascending or Descending

Umbraco Razor get Querystring

Create a .NET Contact Form that Gets the Last Url Visited in C# Can also be Used in Umbraco