示例#1
0
        public static HtmlTag Menu(this IFubuPage page, string menuName = null)
        {
            var navigationService = page.Get <INavigationService>();
            var items             = navigationService.MenuFor(new NavigationKey(menuName ?? StringConstants.BlogName));
            var menu = new HtmlTag("ul");
            var user = page.GetUser();

            items.Each(x =>
            {
                var link = new LinkTag(x.Key, x.Url);
                var li   = new HtmlTag("li");
                li.AddClass(
                    string.Format("menu-item-{0}", x.Key.Replace(" ", string.Empty).ToLowerInvariant()));

                if (x.Key.Equals("Logout") && x.MenuItemState == MenuItemState.Available && user != null)
                {
                    var aTag = new LinkTag(string.Format("Welcome, {0}", user.FirstName), "/profile");
                    aTag.AddClass("user");
                    menu.Append(aTag);
                }

                if (x.MenuItemState == MenuItemState.Active)
                {
                    li.AddClass("current");
                }

                if (x.MenuItemState == MenuItemState.Active || x.MenuItemState == MenuItemState.Available)
                {
                    menu.Append(li.Append(link));
                }
            });

            return(menu);
        }
示例#2
0
        public static ImageTag Gravatar(this IFubuPage page, string email, int size = 100)
        {
            var user = page.GetUser();

            var image = page.GravatarHash(user.GravatarHash, size);

            image.Title("Refresh page to update, after save.");

            return(image);
        }