34 lines
1.0 KiB
Plaintext
34 lines
1.0 KiB
Plaintext
@inherits umbraco.MacroEngines.DynamicNodeContext
|
|
|
|
@* Render the sitemap by passing the root node to the traverse helper *@
|
|
<div class="sitemap">
|
|
@traverse(@Model.AncestorOrSelf())
|
|
</div>
|
|
|
|
@* Helper method to travers through all descendants *@
|
|
@helper traverse(dynamic node)
|
|
{
|
|
|
|
@* If a MaxLevelForSitemap parameter is passed to the macro, otherwise default to 4 levels *@
|
|
var maxLevelForSitemap = String.IsNullOrEmpty(Parameter.MaxLevelForSitemap) ? 4 : int.Parse(Parameter.MaxLevelForSitemap);
|
|
|
|
@* Select visible children *@
|
|
var items = node.Children.Where("Visible").Where("Level <= " + maxLevelForSitemap);
|
|
|
|
|
|
@* If any items are returned, render a list *@
|
|
if (items.Any())
|
|
{
|
|
<ul>
|
|
@foreach (var item in items)
|
|
{
|
|
<li class="level-@item.Level">
|
|
<a href="@item.Url">@item.Name</a>
|
|
|
|
@*Run the traverse helper again *@
|
|
@traverse(item)
|
|
</li>
|
|
}
|
|
</ul>
|
|
}
|
|
} |