public BreadcrumbsViewModel(IAbstractItem currentPage, string additionalBreadcrumb) { var result = new List <BreadcrumbsItemViewModel>(); if (additionalBreadcrumb != null) { result.Add(new BreadcrumbsItemViewModel { Title = additionalBreadcrumb }); } if (currentPage != null) { while (!(currentPage is IStartPage)) { if (currentPage.IsPage) { result.Add(new BreadcrumbsItemViewModel { Title = currentPage.Title, Url = currentPage.GetUrl() }); } currentPage = currentPage.Parent; } if (result.Any()) { result.First().IsActive = true; result.First().Url = null; } result.Reverse(); } Items = result; }
private static void VisitNodes(StringBuilder sb, IAbstractItem node, ITargetingFilter filter, ITargetingUrlTransformator urlTransformator) { if (node.IsPage) { sb.Append($"<li> <a href = {node.GetUrl(urlTransformator)}> {node.Title} </a></li>"); } else { sb.Append($"<li> {node.Title} </li>"); } var children = node.GetChildren(filter); if (children.Any()) { sb.Append("<ul>"); foreach (var item in children) { VisitNodes(sb, item, filter, urlTransformator); } sb.Append("</ul>"); } }