Skip to main content

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 7 - C# Razor - Passing a parameter variable from a Template to a Partial View.

Passing a parameter variable from a Template to a Partial View Example - Passing a Page Id to a Partial View.
In the example below we are passing 3 page Ids (1090. 1091, 1092) to a partial view.  The Partial View will display the details for each of these nodes on a home page.  See final output below.


1) In your Template:
@Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1090}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1091}}) @Html.Partial("HomePageLinksToLandingPages", new ViewDataDictionary{{ "pageId", 1092}})

2) The Partial View:
@inherits Umbraco.Web.Mvc.UmbracoTemplatePage @{ var thisPageId = 1090; var stringPage = @ViewData["pageId"]; thisPageId = Convert.ToInt32(stringPage); } <div class="col-md-4"> <article class="common-blog-pos…

Umbraco Razor Sort Nodes Ascending or Descending

Descending:
@inherits umbraco.MacroEngines.DynamicNodeContext  
@using umbraco.cms.businesslogic.template;

@foreach(var item in Model.Children.OrderBy("Name descending"))
{
if(item.HasAccess())
{
@item.Name 
}
}


Ascending:
@inherits umbraco.MacroEngines.DynamicNodeContext  
@using umbraco.cms.businesslogic.template;

@foreach(var item in Model.Children.OrderBy("Name"))
{
if(item.HasAccess())
{
@item.Name 
}
}



Umbraco - Reset the Admin Password via SQL Server

To reset the admin password of a Umbraco website.

1. In Sql server, run the following script on the database:


USE  INSERT-YOUR-DATABASE-NAME-HERE
GO

UPDATE umbracoUser set userdisabled=0, userLogin='admin', userPassword='default' where id=0

2. In your web config file, find the "UsersMemnershipProvider" section, change the setting:


passwordFormat="Hashed"
to
passwordFormat="Clear"


You should now be able to login using the Username: Admin and the Password: default ("the two sweetest words in the english language").