コード例 #1
0
 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;
 }
コード例 #2
0
        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);
        }