public Page_Context(ControllerContext controllerContext, PageRequestContext pageRequestContext) { this.ControllerContext = controllerContext; this.PageRequestContext = pageRequestContext; Styles = new List<IHtmlString>(); Scripts = new List<IHtmlString>(); }
public virtual ActionResult Design(string pageName, string layout, bool?draft, int?version) { var page = new Page(Site, "DesignPage") { IsDummy = false, Layout = layout, EnableTheming = true, EnableScript = true }; if (!string.IsNullOrEmpty(pageName)) { page = PageHelper.Parse(Site, pageName); } if (draft.HasValue && draft.Value == true) { page = ServiceFactory.PageManager.PageProvider.GetDraft(page); } if (version.HasValue) { page = Kooboo.CMS.Sites.Versioning.VersionManager.GetVersion(page, version.Value); } // new context var requestContext = new PageRequestContext(this.ControllerContext, Site, page, CMS.Sites.Web.FrontRequestChannel.Design, string.Empty); // init context Page_Context.Current.InitContext(requestContext, ControllerContext); // ret return(ViewPage()); }
public ProxyRenderContext(ControllerContext controllerContext, PageRequestContext pageRequestContext, ProxyPosition proxyPosition, string requestPath) { this.ControllerContext = controllerContext; this.PageRequestContext = pageRequestContext; this.ProxyPosition = proxyPosition; if (string.IsNullOrEmpty(requestPath) && PageRequestContext != null) { requestPath = pageRequestContext.ModuleUrlContext.GetModuleUrl(proxyPosition.PagePositionId); } if (string.IsNullOrEmpty(requestPath)) { requestPath = proxyPosition.RequestPath; } requestPath = requestPath.Trim('~').Trim(); RequestUri = new Uri(proxyPosition.HostUri, requestPath); var httpMethod = controllerContext.HttpContext.Request.HttpMethod; if (httpMethod.ToUpper() == "POST" && pageRequestContext != null) { var postModule = pageRequestContext.AllQueryString[Kooboo.CMS.Sites.View.ModuleUrlContext.PostModuleParameter]; if (postModule != proxyPosition.PagePositionId) { httpMethod = "GET"; } } HttpMethod = httpMethod; }
public override void OnActionExecuting(ActionExecutingContext filterContext) { base.OnActionExecuting(filterContext); var controllerContext = filterContext.Controller.ControllerContext; // var siteName = controllerContext.RequestContext.GetRequestValue("siteName"); var site = new Kooboo.CMS.Sites.Models.Site(siteName); Kooboo.CMS.Sites.Models.Site.Current = site; // var pageName = controllerContext.RequestContext.GetRequestValue("pageName"); Kooboo.CMS.Sites.Models.Page page = null; if (string.IsNullOrEmpty(pageName)) { page = Kooboo.CMS.Sites.Services.ServiceFactory.PageManager.All(site, string.Empty).First(); } else { page = new Kooboo.CMS.Sites.Models.Page(site, pageName).LastVersion(); } // var channel = Kooboo.CMS.Sites.Web.FrontRequestChannel.Unknown; var pageRequestContext = new PageRequestContext(controllerContext, site, page, channel, ""); Page_Context.Current.InitContext(pageRequestContext, controllerContext); }
public static Page TempPage(this PageRequestContext pageRequestContext) { var tempPage = pageRequestContext.ControllerContext.Controller.ViewData["TempPage"] as Page; if (tempPage == null) { tempPage = pageRequestContext.Page.Copy(); pageRequestContext.ControllerContext.Controller.ViewData["TempPage"] = tempPage; } return(tempPage); }
public static void InitPageContext(ControllerContext controllerContext) { if (Page_Context.Current.PageRequestContext == null) { var site = Site.Current; var page = ServiceFactory.PageManager.GetDefaultPage(site); var pageRequestContext = new PageRequestContext( controllerContext, site, page, site.FrontRequestChannel(), "/"); Page_Context.Current.InitContext(pageRequestContext, controllerContext); Page_Context.Current.DisableInlineEditing = true; } }
public virtual ActionResult ViewEntry(string viewName) { viewName = Server.UrlDecode(viewName); var viewPosition = new ViewPosition() { LayoutPositionId = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(5), ViewName = viewName, PagePositionId = Kooboo.UniqueIdGenerator.GetInstance().GetBase32UniqueId(5) }; //pageUrl: product/detail/product1 var rawPage = new Page(Site, "____VisitViewPage_____") { IsDummy = false }; rawPage.PagePositions.Add(viewPosition); var requestUrl = "/"; var pageRequestContext = new PageRequestContext(this.ControllerContext, FrontHttpRequest.RawSite, FrontHttpRequest.Site, rawPage, rawPage, FrontHttpRequest.RequestChannel, requestUrl); Page_Context.Current.InitContext(pageRequestContext, ControllerContext); var actionResult = Page_Context.Current.ExecutePlugins(); if (actionResult != null) { return(actionResult); } Page_Context.Current.ExecuteDataRules(); var viewMock = new ViewMock() { ViewData = new ViewDataDictionary(ViewData) }; ViewContext viewContext = new ViewContext(this.ControllerContext, viewMock, ViewData, this.TempData, Response.Output); HtmlHelper html = new HtmlHelper(viewContext, viewMock); return(Content(html.FrontHtml().RenderView(viewPosition).ToString())); }
public Task PageRequestAsync(PageRequestContext context) { return(Task.CompletedTask); }
public Page_Context CreatePageContext(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { var pageRequestContext = new PageRequestContext(controllerContext, siteMappedContext, pageMappedContext); return new Page_Context(controllerContext, pageRequestContext); }
public RouteValueProvider(PageRequestContext pageRequestContext) : base(pageRequestContext.RouteValues) { }
public Page_Context CreatePageContext(System.Web.Mvc.ControllerContext controllerContext, SiteMappedContext siteMappedContext, PageMappedContext pageMappedContext) { var pageRequestContext = new PageRequestContext(controllerContext, siteMappedContext, pageMappedContext); return(new Page_Context(controllerContext, pageRequestContext)); }
protected override async Task OnPageRequestAsync(PageRequestContext context) { PageService = HttpContext.RequestServices.GetRequiredService <IPageService>(); if (Request.Query.TryGetValue("editId", out string editIdValue)) { if (!Guid.TryParse(editIdValue, out Guid editId)) { context.Result = BadRequest(); return; } var pageEditingService = HttpContext.RequestServices.GetRequiredService <IPageContentService>(); editSession = await pageEditingService.FindEditByIdAsync(editId); if (editSession == null) { context.Result = NotFound(); return; } page = await PageService.FindPageByIdAsync(editSession.PageId); if (page == null) { context.Result = NotFound(); return; } var accessProvider = HttpContext.RequestServices.GetRequiredService <Identity.IAccessProvider>(); if (!await accessProvider.CheckAccessAsync() || await accessProvider.GetUserIdAsync() != editSession.UserId) { var pageLinkGenerator = HttpContext.RequestServices.GetRequiredService <IPageLinkGenerator>(); context.Result = RedirectPermanent(await pageLinkGenerator.GetPathAsync(page)); return; } } else { var routeData = RouteData; var pagePath = string.Empty; if (routeData.Values.TryGetValue("url", out object urlValue) && urlValue != null) { pagePath = (string)urlValue; } var url = await PageService.FindPageUrlAsync(pagePath); if (url == null) { context.Result = NotFound(); return; } if (url.PageId.HasValue) { page = await PageService.FindPageByIdAsync(url.PageId.Value); if (page == null) { context.Result = NotFound(); return; } if (!page.IsPublished) { var accessProvider = HttpContext.RequestServices.GetRequiredService <Identity.IAccessProvider>(); if (!await accessProvider.CheckAccessAsync()) { context.Result = NotFound(); return; } } } else { var pageLinkGenerator = HttpContext.RequestServices.GetRequiredService <IPageLinkGenerator>(); var redirectUrl = await pageLinkGenerator.GetPathAsync(url.Redirect.Path); if (url.Redirect.IsPermament) { context.Result = RedirectPermanent(redirectUrl); } else { context.Result = Redirect(redirectUrl); } return; } } PageMetadata = await PageService.GetPageTypeAsync(page, HttpContext.RequestAborted); pageSeo = await PageService.GetPageSeoOptionsAsync(page, HttpContext.RequestAborted); if (editSession != null) { var pageEditingService = HttpContext.RequestServices.GetRequiredService <IPageContentService>(); PageContent = await pageEditingService.GetContentAsync(editSession, HttpContext.RequestAborted); } else { PageContent = await PageService.GetPageContentAsync(page, HttpContext.RequestAborted); } if (PageContent == null) { throw new InvalidOperationException(); } ContentContext = new ContentContext(page, PageContent, HttpContext.RequestServices, editSession != null); Status = page.IsPublished ? Models.PageStatus.Published : Models.PageStatus.Draft; ParentPageId = await PageService.GetParentPageIdAsync(page, HttpContext.RequestAborted); }
public virtual void OnResolvedPage(ControllerContext controllerContext, PageRequestContext pageRequestContext) { }
internal static void OnResolvedPage(ControllerContext controllerContext, PageRequestContext pageRequestContext) { ExecuteModules((module) => module.OnResolvedPage(controllerContext, pageRequestContext)); }
protected override Task OnPageRequestAsync(PageRequestContext context) { SetOpenGraph(Url.ContentLink("~/images/banner.jpg"), Title, Description); return(base.OnPageRequestAsync(context)); }