public static menuWithContent GetMenu(int id = 0, int websiteID = 0) { menuWithContent menu = new menuWithContent(); try { CurtDevDataContext db = new CurtDevDataContext(); menu = (from m in db.Menus where m.menuID == id && m.websiteID.Equals(websiteID) select new menuWithContent { menuID = m.menuID, menu_name = m.menu_name, isPrimary = m.isPrimary, active = m.active }).First<menuWithContent>(); List<menuItem> contents = (from msc in db.Menu_SiteContents where msc.menuID.Equals(menu.menuID) orderby msc.parentID, msc.menuSort select new menuItem { menuContentID = msc.menuContentID, menuID = msc.menuID, menuSort= msc.menuSort, menuTitle = msc.menuTitle, menuLink = msc.menuLink, parentID = msc.parentID, linkTarget = msc.linkTarget, contentID = msc.contentID, content = (from sc in db.SiteContents where sc.contentID.Equals(msc.contentID) select new ContentPage { contentID = sc.contentID, page_title = sc.page_title, content_type = sc.content_type, lastModified = sc.lastModified, createdDate = sc.createdDate, published = sc.published, meta_title = sc.meta_title, meta_description = sc.meta_description, keywords = sc.keywords, active = sc.active, isPrimary = sc.isPrimary, revisions = (db.SiteContentRevisions.Where(x => x.contentID == sc.contentID).ToList<SiteContentRevision>()) }).FirstOrDefault<ContentPage>() }).ToList<menuItem>(); menu.contents = contents.ToLookup(k => (k.parentID == null) ? 0 : k.parentID); return menu; } catch { return menu; } }
public static string writeContentTree(menuWithContent menu, int parentid, int level) { string pagecontent = ""; string editlink = ""; string primarylink = ""; level++; List<menuItem> menuitems = menu.getChildren(parentid); foreach (menuItem menuitem in menuitems) { editlink = "<a href=\"/Website/Link/Edit/" + menuitem.menuContentID + "\"><img src=\"/Content/img/pencil.png\" alt=\"Edit Link\" title=\"Edit Link\" /></a>"; primarylink = ""; if (menuitem.hasContent() && menuitem.content.isPrimary) { primarylink = "<a href=\"/Website/SetPrimaryContent/" + menuitem.contentID + "/" + menu.menuID + "\"><img src=\"/Content/img/check.png\" alt=\"Primary Page\" title=\"Primary Page\" /></a> "; } else if (menuitem.hasContent()) { primarylink = "<a href=\"/Website/SetPrimaryContent/" + menuitem.contentID + "/" + menu.menuID + "\"><img src=\"/Content/img/makeprimary.png\" alt=\"Make This Page the Primary Page\" title=\"Make This Page the Primary Page\" /></a> "; editlink = "<a href=\"/Website/Content/Edit/" + menuitem.contentID + "\"><img src=\"/Content/img/pencil.png\" alt=\"Edit Page\" title=\"Edit Page\" /></a>"; }; pagecontent += "<li id=\"item_" + menuitem.menuContentID + "\" class=\"level_" + level + (((menuitem.hasContent() && menuitem.content.published) || (!menuitem.hasContent())) ? " published" : "") + "\">" + "<span class=\"handle\">↕</span> <span class=\"title\">" + ((menuitem.hasContent()) ? menuitem.content.page_title : (menuitem.menuTitle + " (link)")) + "</span>" + "<span class=\"controls\">" + primarylink + editlink + " <a href=\"/Website/RemoveContent/" + menuitem.menuContentID + "\" class=\"remove\" id=\"remove_" + menuitem.menuContentID + "\"><img src=\"/Content/img/delete.png\" alt=\"Remove Page From Menu\" title=\"Remove Page From Menu\" /></a>" + "</span>" + "<span id=\"meta_" + menuitem.menuContentID + "\">" + "<input type=\"hidden\" id=\"parent_" + menuitem.menuContentID + "\" value=\"" + ((menuitem.parentID == null) ? 0 : menuitem.parentID) + "\" />" + "<input type=\"hidden\" id=\"children_" + menuitem.menuContentID + "\" value=\"" + menu.getChildrenIDs(menuitem.menuContentID) + "\" />" + "<input type=\"hidden\" id=\"count_" + menuitem.menuContentID + "\" value=\"" + menu.getChildrenCount(menuitem.menuContentID) + "\" />" + "<input type=\"hidden\" id=\"sort_" + menuitem.menuContentID + "\" value=\"" + menuitem.menuSort + "\" />" + "<input type=\"hidden\" id=\"depth_" + menuitem.menuContentID + "\" value=\"" + level + "\" />" + "</span>" + "<ul id=\"transport_" + menuitem.menuContentID + "\"></ul>" + "</li>"; if (menu.hasChildren(menuitem.menuContentID)) { pagecontent += writeContentTree(menu, menuitem.menuContentID, level); } } return pagecontent; }