private void addClipsToMenu(ComponentArt.Web.UI.MenuItemCollection parentItems, DbContentCatalog rootCatalog, DbContentCatalog catalog, DbContentClipCollection clips) { foreach (DbContentClip clip in clips) { if (!clip.MenuEnabled | clip.ExpirationDate <= DateTime.Now | clip.PublishDate > DateTime.Now) { continue; } // Check for a break and use the current catalog's _menu break system if (clip.MenuBreak) { ComponentArt.Web.UI.MenuItem menuBreak = new ComponentArt.Web.UI.MenuItem(); menuBreak.Look.ImageUrl = rootCatalog.MenuBreakImage; menuBreak.Look.CssClass = rootCatalog.MenuBreakCssClass; menuBreak.Look.ImageHeight = Unit.Pixel(2); menuBreak.Look.ImageWidth = Unit.Percentage(100); parentItems.Add(menuBreak); } ComponentArt.Web.UI.MenuItem clipMenuItem = new ComponentArt.Web.UI.MenuItem(); IconInfo leftIconInfo, rightIconInfo; CssInfo clipCssInfo; clipMenuItem.ID = clip.ID.ToString(); #if DEBUG clipMenuItem.Text = clip.MenuLabel + " (" + clip.MenuOrder.ToString() + ")"; #else clipMenuItem.Text = clip.MenuLabel; #endif if (clip.OverrideUrl != string.Empty) { clipMenuItem.NavigateUrl = clip.OverrideUrl; } else { clipMenuItem.NavigateUrl = Page.ResolveUrl(string.Format(_linkFormat, clip.ID.ToString())); } clipMenuItem.ToolTip = clip.MenuTooltip; if (catalog.MenuCssClass == "[rootcatalog]" | catalog.MenuCssClass == "") { clipCssInfo = new CssInfo(rootCatalog.MenuCssClass); } else { clipCssInfo = new CssInfo(catalog.MenuCssClass); } clipCssInfo.SetLook(clipMenuItem); if (clip.MenuLeftIcon == "[rootcatalog]") { leftIconInfo = new IconInfo(rootCatalog.MenuLeftIcon); } else if (clip.MenuLeftIcon == "[catalog]") { leftIconInfo = new IconInfo(catalog.MenuLeftIcon); } else { leftIconInfo = new IconInfo(clip.MenuLeftIcon); } leftIconInfo.SetLeftLook(clipMenuItem); if (clip.MenuRightIcon == "[rootcatalog]") { rightIconInfo = new IconInfo(rootCatalog.MenuRightIcon); } else if (clip.MenuRightIcon == "[catalog]") { rightIconInfo = new IconInfo(catalog.MenuRightIcon); } else { rightIconInfo = new IconInfo(clip.MenuRightIcon); } rightIconInfo.SetRightLook(clipMenuItem); parentItems.Add(clipMenuItem); } }
private void addCatalogToMenu(ComponentArt.Web.UI.MenuItemCollection parentItemCollection, DbContentCatalog rootCatalog, DbContentCatalog catalog) { if (!catalog.Enabled || !catalog.MenuEnabled) { return; } DbContentClipCollection clips; ComponentArt.Web.UI.MenuItem catalogMenuItem; IconInfo leftIconInfo, rightIconInfo; CssInfo catalogCssInfo; clips = catalog.GetMenuEnabledClips(); clips.Sort(ContentCompareKey.MenuOrder); catalogMenuItem = new ComponentArt.Web.UI.MenuItem(); parentItemCollection.Add(catalogMenuItem); catalogMenuItem.Text = catalog.MenuLabel; catalogMenuItem.ToolTip = catalog.MenuTooltip; if (catalog.DefaultClip != null) { if (catalog.DefaultClip.OverrideUrl != string.Empty) { catalogMenuItem.NavigateUrl = catalog.DefaultClip.OverrideUrl; } else { catalogMenuItem.NavigateUrl = string.Format(_linkFormat, catalog.DefaultClip.ID); } catalogMenuItem.ID = catalog.DefaultClip.ID.ToString(); } if (catalog.MenuCssClass == "[rootcatalog]" | catalog.MenuCssClass == "") { catalogCssInfo = new CssInfo(rootCatalog.MenuCssClass); } else { catalogCssInfo = new CssInfo(catalog.MenuCssClass); } if (catalog.MenuLeftIcon == "[rootcatalog]" | catalog.MenuCssClass == "") { leftIconInfo = new IconInfo(rootCatalog.MenuLeftIcon); } else { leftIconInfo = new IconInfo(catalog.MenuLeftIcon); } if (catalog.MenuRightIcon == "[rootcatalog]" | catalog.MenuCssClass == "") { rightIconInfo = new IconInfo(rootCatalog.MenuRightIcon); } else { rightIconInfo = new IconInfo(catalog.MenuRightIcon); } catalogCssInfo.SetLook(catalogMenuItem); leftIconInfo.SetLeftLook(catalogMenuItem); rightIconInfo.SetRightLook(catalogMenuItem); DbContentCatalogCollection childCatalogs = catalog.GetCatalogs();; childCatalogs.Sort(ContentCompareKey.SortOrder); foreach (DbContentCatalog childCatalog in childCatalogs) { addCatalogToMenu(catalogMenuItem.Items, rootCatalog, childCatalog); } addClipsToMenu(catalogMenuItem.Items, rootCatalog, catalog, clips); }