public override string GetHtml()
{
List<SiteNav> lstNav = new List<SiteNav>();
StringBuilder sb = new StringBuilder();
SiteNav pageNav = this.ContentPage.GetSiteNav();
string sParent = pageNav.FileName.ToLowerInvariant();
using (ISiteNavHelper navHelper = SiteNavFactory.GetSiteNavHelper()) {
if (SiteData.CurretSiteExists && SiteData.CurrentSite.Blog_Root_ContentID.HasValue &&
pageNav.ContentType == ContentPageType.PageType.BlogEntry) {
lstNav = navHelper.GetPageCrumbNavigation(SiteData.CurrentSiteID, SiteData.CurrentSite.Blog_Root_ContentID.Value, !SecurityData.IsAuthEditor);
if (lstNav != null && lstNav.Any()) {
pageNav.NavOrder = lstNav.Max(x => x.NavOrder) + 100;
lstNav.Add(pageNav);
}
} else {
lstNav = navHelper.GetPageCrumbNavigation(SiteData.CurrentSiteID, pageNav.Root_ContentID, !SecurityData.IsAuthEditor);
}
lstNav.RemoveAll(x => x.ShowInSiteNav == false && x.ContentType == ContentPageType.PageType.ContentEntry);
}
lstNav.ForEach(q => ControlUtilities.IdentifyLinkAsInactive(q));
string sCSS = String.Empty;
if (!String.IsNullOrEmpty(this.CssClass)) {
sCSS = " class=\"" + this.CssClass + "\" ";
}
string sSelCSS = String.Format("{0} {1}", this.CssSelected, this.CssWrapper).Trim();
string sWrapCSS = String.Empty;
if (!String.IsNullOrEmpty(this.CssWrapper)) {
sWrapCSS = " class=\"" + this.CssWrapper + "\" ";
}
if (this.DisplayAsList) {
sb.AppendLine("<ul" + sCSS + " id=\"" + this.ElementId + "\">");
foreach (SiteNav c in lstNav) {
if (SiteData.IsFilenameCurrentPage(c.FileName) || ControlUtilities.AreFilenamesSame(c.FileName, sParent)) {
sb.AppendLine("<li class=\"" + sSelCSS + "\">" + c.NavMenuText + "</li> ");
} else {
sb.AppendLine("<li" + sWrapCSS + "><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a></li> ");
}
}
sb.AppendLine("</ul>");
} else {
string sDivider = String.Format(" {0} ", this.TextDivider);
int iCtr = 1;
int iMax = lstNav.Count;
sb.AppendLine("<div" + sCSS + " id=\"" + this.ElementId + "\">");
foreach (SiteNav c in lstNav) {
if (SiteData.IsFilenameCurrentPage(c.FileName) || ControlUtilities.AreFilenamesSame(c.FileName, sParent)) {
sb.AppendLine("<span class=\"" + sSelCSS + "\">" + c.NavMenuText + " " + sDivider + "</span> ");
} else {
sb.AppendLine("<span" + sWrapCSS + "><a href=\"" + c.FileName + "\">" + c.NavMenuText + "</a> " + sDivider + "</span> ");
}
iCtr++;
if (iCtr == iMax) {
sDivider = String.Empty;
}
}
sb.AppendLine("</div>");
}
return sb.ToString();
}