private void GetDescendentPath(out string descendentPath, out string[] sections) { if (CurrentRequest.Value["DescendentPathExpression.Evaluate.Sections"] == null) { if (ContentManager.RequestedPage == null) { descendentPath = SprocketPath.Value; sections = SprocketPath.Sections; } else { descendentPath = SprocketPath.GetDescendentPath(ContentManager.RequestedPage.Path); sections = descendentPath.Split('/'); } if (descendentPath == "") { sections = new string[0]; } CurrentRequest.Value["DescendentPathExpression.Evaluate.Sections"] = sections; CurrentRequest.Value["DescendentPathExpression.Evaluate.Path"] = descendentPath; } else { sections = (string[])CurrentRequest.Value["DescendentPathExpression.Evaluate.Sections"]; descendentPath = (string)CurrentRequest.Value["DescendentPathExpression.Evaluate.Path"]; } }
public PageEntry FromPath(string sprocketPath) { if (requestPaths.ContainsKey(sprocketPath)) { return(requestPaths[sprocketPath]); } foreach (PageEntry page in flexiblePaths) { if (!File.Exists(SprocketPath.Physical)) { if (page.Path == "") { return(page); } else if (SprocketPath.IsCurrentPathDescendentOf(page.Path)) { return(page); } } } return(null); }
void WebEvents_OnLoadRequestedPath(HandleFlag handled) { if (handled.Handled) { return; } if (!IsAdminRequest) { return; } PageEntry page = pages.FromPath(SprocketPath.Value); if (page == null) { return; } KeyValuePair <string, object>[] vars; if (!SprocketPath.StartsWith("admin", "login")) { if (!WebAuthentication.VerifyAccess(PermissionType.AccessAdminArea)) { WebUtility.Redirect("admin/login"); return; } AdminInterface admin = new AdminInterface(); WebClientScripts scripts = WebClientScripts.Instance; admin.AddMainMenuLink(new AdminMenuLink("Website Home", WebUtility.MakeFullPath(""), ObjectRank.Last, "website_home")); admin.AddMainMenuLink(new AdminMenuLink("Overview", WebUtility.MakeFullPath("admin"), ObjectRank.First, "website_overview")); admin.AddMainMenuLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), ObjectRank.Last, "log_out")); admin.AddFooterLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), ObjectRank.Early)); admin.AddFooterLink(new AdminMenuLink("© 2005-" + DateTime.UtcNow.Year + " " + SprocketSettings.GetValue("WebsiteName"), "", ObjectRank.Late)); admin.AddFooterLink(new AdminMenuLink("Powered by Sprocket", "http://www.sprocketcms.com", ObjectRank.Last)); admin.AddHeadSection(new AdminSection(scripts.BuildStandardScriptsBlock(), ObjectRank.Late)); admin.WebsiteName = GetWebsiteName(); if (OnLoadAdminPage != null) { OnLoadAdminPage(admin, page, handled); if (handled.Handled) { return; } } vars = admin.GetScriptVariables(); } else { vars = new KeyValuePair <string, object> [1]; vars[0] = new KeyValuePair <string, object>("_admin_websitename", GetWebsiteName()); } ContentManager.RequestedPage = page; if (pagePreProcessors.ContainsKey(page.PageCode)) { foreach (PagePreprocessorHandler method in pagePreProcessors[page.PageCode]) { method(page); } } string txt = page.Render(vars); Response.ContentType = page.ContentType; Response.Write(txt); handled.Set(); }