Exemple #1
0
        //
        // GET: /Cms/
        public ActionResult Index(string url)
        {
            // Clean up the url parameter
            if (string.IsNullOrWhiteSpace(url))
            {
                url = "home";
            }
            else
            {
                url = url.ToLower().Trim('/');
                if (url.EndsWith("/index"))
                {
                    url = url.Substring(0, url.LastIndexOf("/"));
                }
            }

            // Check if we cached the page
            SitePage Page = DatabaseCache.GetSitePage(ControllerContext.RequestContext.HttpContext, url);

            if (Page == null)
            {
                string RequestDomain = Globals.GetRequestDomain(ControllerContext.RequestContext.HttpContext);
                using (XenonCMSContext DB = new XenonCMSContext())
                {
                    Page = DB.SitePages.SingleOrDefault(x => (x.Slug == url) && (x.Site.Domain == RequestDomain));
                }
                DatabaseCache.AddSitePage(ControllerContext.RequestContext.HttpContext, Page);
            }

            // Ensure retrieved page is valid
            if (Page == null)
            {
                if (Globals.IsNewSite(ControllerContext.RequestContext.HttpContext))
                {
                    return(RedirectToAction("Install", "Cms"));
                }
                else
                {
                    return(HttpNotFound());
                }
            }
            else
            {
                ViewBag.Layout          = Page.Layout;
                ViewBag.Title           = Page.Title;
                ViewBag.ShowTitleOnPage = Page.ShowTitleOnPage;
                ViewBag.Html            = Page.Html;
                ViewBag.DateLastUpdated = Page.DateLastUpdated;
                return(View());
            }
        }