/// <summary> /// Creates new menu page /// </summary> /// <param name="srcPage">Source page</param> /// <param name="title">Page title</param> /// <returns>Menu page</returns> public static IContextPage BuildPage(IContextPage srcPage, string title) { var page = new MenuPage(); page.DataDictionary["title"] = title; page.Url = srcPage.Url; page.FullUrl = srcPage.FullUrl; return(page); }
/// <summary> /// Extracts the title from this page /// </summary> /// <param name="page">This page</param> /// <param name="data">Page metadata</param> /// <returns>Title</returns> public static string GetTitle(IContextPage page, IContextMetadata data) { var title = page.Data.GetOrDefault <string>(DEFAULT_TITLE_ATT); if (string.IsNullOrEmpty(title)) { title = page.Url.Split('/', StringSplitOptions.RemoveEmptyEntries).LastOrDefault(); } return(title); }
/// <summary> /// Finds the language of this page /// </summary> /// <param name="site">Site</param> /// <param name="page">Page to get language for</param> /// <returns>Language</returns> public static string GetLanguage(IContextSite site, IContextPage page) { const string LANG_VAR = "lang"; var lang = page.Data.GetOrDefault <string>(LANG_VAR); if (string.IsNullOrEmpty(lang)) { lang = site.Configuration.GetOrDefault <string>(LANG_VAR); } return(lang); }
/// <summary> /// Gets all pages from all level /// </summary> /// <param name="page">This page</param> /// <returns>All pages</returns> public static IEnumerable <IContextPage> GetAllPages(IContextPage page) { if (page.SubPages != null) { foreach (var childPage in page.SubPages) { yield return(childPage); foreach (var subChildPage in GetAllPages(childPage)) { yield return(subChildPage); } } } }
/// <summary> /// Returns the caption (short title) of the page /// </summary> /// <param name="page">This page</param> /// <param name="data">Page metadata</param> /// <returns>Caption</returns> public static string GetCaption(IContextPage page, IContextMetadata data) { var caption = ""; if (data != null) { string titleAtt; if (data.TryGet(TITLE_ATT, out titleAtt) && !string.IsNullOrEmpty(titleAtt)) { caption = page.Data.GetOrDefault <string>(titleAtt); } } if (string.IsNullOrEmpty(caption)) { caption = GetTitle(page, data); } return(caption); }
internal ContextModel(ISite site, IPage page, IMetadata data, string url) { Site = new ContextSite(site); Page = new ContextPage(site, page, url); Data = new ContextMetadata(data); }