コード例 #1
0
        protected virtual IEnumerable <MenuItemModel> BuildLeftMenuTree(IPublishedContent parent, IList <int> excludeContentIds)
        {
            if (!parent.Children.Any())
            {
                yield break;
            }

            var children       = GetAvailableContent(parent.Children).Where(pContent => !excludeContentIds.Contains(pContent.Id));
            var activeMenuItem = CurrentPage.AncestorsOrSelf().FirstOrDefault(pc => !IsHideFromNavigation(pc));

            foreach (var child in children)
            {
                var isHeading = child.IsHeading();

                var newMenuItem = new MenuItemModel
                {
                    Id        = child.Id,
                    Name      = GetNavigationName(child),
                    Url       = isHeading ? string.Empty : child.Url,
                    IsActive  = child == activeMenuItem,
                    IsHeading = isHeading,
                    Children  = BuildLeftMenuTree(child, excludeContentIds).ToList()
                };

                yield return(newMenuItem);
            }
        }
コード例 #2
0
        protected virtual MenuItemModel GetHomePageMenuItem(IPublishedContent homePage)
        {
            var result = new MenuItemModel
            {
                Id         = homePage.Id,
                Name       = GetNavigationName(homePage),
                Url        = homePage.Url,
                IsActive   = homePage.Id == CurrentPage.Id,
                IsHomePage = true,
                Children   = GetHomeSubNavigation(homePage).ToList()
            };

            return(result);
        }