internal DynamicPageItem(Agility.Web.AgilityContentServer.DynamicPageFormulaItem dpItem) { PageID = dpItem.PageID; ContentID = dpItem.ContentID; ContentReferenceName = dpItem.ContentReferenceName; LastModifiedDate = dpItem.LastModifiedDate; Name = dpItem.Name; Title = dpItem.Title; MenuText = dpItem.MenuText; VisibleOnMenu = dpItem.VisibleOnMenu; VisibleOnSitemap = dpItem.VisibleOnSitemap; }
internal static AgilityDynamicSiteMapNode GetDynamicNode(AgilitySiteMapNode parentNode, Agility.Web.AgilityContentServer.DynamicPageFormulaItem pageFormulaItem, AgilityPage page) { string nodeID = string.Format("{0}_{1}", parentNode.Key, pageFormulaItem.ContentID); string menuText = pageFormulaItem.MenuText; string pageName = pageFormulaItem.Name; string url = parentNode.ParentNode.PagePath; if (string.IsNullOrEmpty(url)) { url = parentNode.ParentNode.Url; } int index = url.LastIndexOf(".aspx", StringComparison.CurrentCultureIgnoreCase); if (index > 0) { url = url.Substring(0, index); } bool addAspx = true; if (AgilityContext.Domain != null && AgilityContext.Domain.ExtensionlessUrls) { addAspx = false; } string urlPath = string.Format("{0}/{1}", url, pageName); url = string.Format("{0}/{1}", url, pageName); if (addAspx) { url = string.Format("{0}.aspx", url); } if (url.StartsWith("/")) { url = string.Format("~{0}", url); } AgilityDynamicSiteMapNode node = new AgilityDynamicSiteMapNode(nodeID, url, menuText); node.ReferenceName = pageFormulaItem.ContentReferenceName; node.ContentID = pageFormulaItem.ContentID; //override the visibility attributes... node.SitemapVisible = pageFormulaItem.VisibleOnSitemap; node.MenuVisible = pageFormulaItem.VisibleOnMenu; node.ParentNode = parentNode.ParentNode; node.PageItemID = parentNode.PageItemID; node.ChildNodes = new List <AgilitySiteMapNode>(); foreach (AgilitySiteMapNode parentChildNode in parentNode.ChildNodes) { AgilitySiteMapNode childNode = parentChildNode.Copy(urlPath, node); node.ChildNodes.Add(childNode); } return(node); }