Skip to main content

Umbraco 7 Partial View - Main Navigation - C# - Razor - With Home Page

@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;
   
    @* Add in level for a CSS hook *@
             
        @* For each child page under the home node *@
        foreach (var childPage in home.Children)
        {  

if(childPage.umbracoNaviHide != true)
{
if (childPage.Children.Any())
{                  
<li class="has-child @(childPage.IsAncestorOrSelf(CurrentPage) ? "current-menu-item page_item" : null)">
@if(childPage.DocumentTypeAlias == "LandingPage")
{
<a href="@childPage.Url">@childPage.navigationName</a>
@childPages(childPage.Children)
} else {
<a href="@childPage.Url">@childPage.navigationName </a>
}
</li>
}
else
{
<li class="@(childPage.IsAncestorOrSelf(CurrentPage) ? "current-menu-item page_item" : null)">
<a href="@childPage.Url">@childPage.Name</a>
</li>
}          
}
        }
   
}

@helper childPages(dynamic pages)
{
    @* Ensure that we have a collection of pages *@

@*https://our.umbraco.org/documentation/Reference/Querying/DynamicNode/Collections*@

    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 *@

if(@pages.Where("Visible").Where("DocumentTypeAlias != @0","Faq").Where("DocumentTypeAlias != @0","NewsArticle").Count() > 0)
{

<ul>
@foreach (var page in pages.Where("Visible").Where("DocumentTypeAlias != @0","Faq").Where("DocumentTypeAlias != @0","NewsArticle"))
{
<li>
<a href="@page.Url">@page.navigationName</a>

@* if the current page has any children *@
@if (page.Children.Any())
{                      
@* Call our helper to display the children *@
@childPages(page.Children)
}
</li>
}
</ul>
}
    }
}

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").