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