Exemple #1
0
 public AbstractPage()
 {
     Order                       = 100;
     Layout                      = "_Layout.cshtml";
     Visible                     = true;
     ShowInMenu                  = true;
     ShowInSitemap               = true;
     ShowInAdminMenu             = true;
     CreateTime                  = DateTime.Now;
     ChangeTime                  = DateTime.Now;
     PermissionsUpdateChildPages = true;
     LanguageCode                = SF.GetLangCodeWebconfig();
 }
Exemple #2
0
        public static string GetMenuFormated(int MaxLevel, int CurrentPageID, string UlID, string UlClass)
        {
            List <CustomMenuItem> pages = GetDisplayMenuRepository();

            if (SF.GetLangCodeThreading() == SF.GetLangCodeWebconfig())
            {
                return(WriteChildMenu(pages.Where(r => r.Visible == true && r.LangCode == SF.GetLangCodeThreading() && r.ShowInMenu == true && r.Level <= MaxLevel).ToList(), null, MaxLevel, 1, CurrentPageID, UlID, UlClass));
            }
            else
            {
                MaxLevel = MaxLevel + 1;
                return(WriteChildMenu(pages.Where(r => r.Visible == true && r.LangCode == SF.GetLangCodeThreading() && r.ShowInMenu == true && r.Level <= MaxLevel).ToList(), null, MaxLevel, 2, CurrentPageID, UlID, UlClass));
            }
        }
        public static Uco.Models.Settings GetCurrentSettings()
        {
            if (LS.CurrentEntityContext == null)
            {
                return
                    new Settings()
                    {
                        AdminEmail   = "*****@*****.**",
                        Domain       = "localhost",
                        LanguageCode = "en-US",
                        Roles        = "",
                    }
            }
            ;

            if (SF.UseMultiDomain() == false)
            {
                string Token = "CurrentSettings_" + SF.GetLangCodeThreading();

                if (LS.Cache[Token] == null)
                {
                    lock (s_lock)
                    {
                        Settings s = GetSettingsRepositoryList().FirstOrDefault();
                        if (s == null)
                        {
                            return(null);
                        }

                        string LangCodeThreading = SF.GetLangCodeThreading();
                        if (SF.GetLangCodeWebconfig() != LangCodeThreading)
                        {
                            LanguagePage l = _db.LanguagePages.FirstOrDefault(r => r.DomainID == s.ID && r.LanguageCode == LangCodeThreading);
                            if (l != null)
                            {
                                s.LanguageCode = l.LanguageCode;
                                //s.LanguageRTL = l.ShowOnMainPage;
                                s.HeaderHtml = l.Text2;
                                s.FotterHtml = l.Text3;
                            }
                        }

                        LS.Cache[Token] = s;
                    }
                }
                return((Uco.Models.Settings)LS.Cache[Token]);
            }
            else
            {
                string Domain = SF.GetCurrentDomain();

                if (LS.CurrentHttpContext.Request.IsLocal)
                {
                    string TokenAdmin = "AdminCurrentSettingsRepository";
                    if (LS.CurrentHttpContext.Session[TokenAdmin] != null)
                    {
                        return((Uco.Models.Settings)LS.CurrentHttpContext.Session[TokenAdmin]);
                    }
                    else
                    {
                        string Token = string.Format("CurrentSettingsMultiDomain_{0}_{1}", Domain, SF.GetLangCodeThreading());
                        if (LS.Cache[Token] == null)
                        {
                            lock (s_lock)
                            {
                                Settings s = GetSettingsRepositoryList().FirstOrDefault();
                                if (s == null)
                                {
                                    return(null);
                                }

                                string LangCodeThreading = SF.GetLangCodeThreading();
                                if (SF.GetLangCodeWebconfig() != LangCodeThreading)
                                {
                                    LanguagePage l = _db.LanguagePages.FirstOrDefault(r => r.DomainID == s.ID && r.LanguageCode == LangCodeThreading);
                                    if (l != null)
                                    {
                                        s.LanguageCode = l.LanguageCode;
                                        //s.LanguageRTL = l.ShowOnMainPage;
                                        s.HeaderHtml = l.Text2;
                                        s.FotterHtml = l.Text3;
                                    }
                                }

                                LS.Cache[Token] = s;
                            }
                        }
                        return((Uco.Models.Settings)LS.Cache[Token]);
                    }
                }
                else
                {
                    string Token = string.Format("CurrentSettingsMultiDomain_{0}_{1}", Domain, SF.GetLangCodeThreading());
                    if (LS.Cache[Token] == null)
                    {
                        lock (s_lock)
                        {
                            Settings s = GetSettingsRepositoryList().FirstOrDefault(r => r.Domain == Domain);
                            if (s == null)
                            {
                                return(null);
                            }

                            string LangCodeThreading = SF.GetLangCodeThreading();
                            if (SF.GetLangCodeWebconfig() != LangCodeThreading)
                            {
                                LanguagePage l = _db.LanguagePages.FirstOrDefault(r => r.DomainID == s.ID && r.LanguageCode == LangCodeThreading);
                                if (l != null)
                                {
                                    s.LanguageCode = l.LanguageCode;
                                    //s.LanguageRTL = l.ShowOnMainPage;
                                    s.HeaderHtml = l.Text2;
                                    s.FotterHtml = l.Text3;
                                }
                            }

                            LS.Cache[Token] = s;
                        }
                    }
                    return((Uco.Models.Settings)LS.Cache[Token]);
                }
            }
        }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (CurrentSettings == null)
            {
                filterContext.Result = new RedirectResult("~/DomainError.html");
                return;
            }
            if (filterContext.RouteData.Values["lang"] != null && !string.IsNullOrWhiteSpace(filterContext.RouteData.Values["lang"].ToString()))
            {
                CultureInfo culture = new CultureInfo(filterContext.RouteData.Values["lang"].ToString());
                System.Threading.Thread.CurrentThread.CurrentCulture   = culture;
                System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
            }
            else
            {
                CultureInfo culture = new CultureInfo(SF.GetLangCodeWebconfig());
                System.Threading.Thread.CurrentThread.CurrentCulture   = culture;
                System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
            }

            filterContext.RouteData.Values.Add("theme", CurrentSettings.Themes);

            string Plugin = string.Empty;

            if (filterContext.RouteData.DataTokens["Namespaces"] != null)
            {
                string[] Namespaces = filterContext.RouteData.DataTokens["Namespaces"] as string[];
                string   Namespace  = Namespaces[0];
                if (!string.IsNullOrEmpty(Namespace) && Namespace.StartsWith("Uco.") && Namespace.EndsWith(".Controllers") && Namespace != "Uco.Controllers")
                {
                    Namespace = Namespace.Replace(".Controllers", "");
                    filterContext.RouteData.Values.Add("plugin", Namespace);
                    Plugin = Namespace;
                }
            }

            if (CurrentPage != null)
            {
                ViewBag.Title       = CurrentPage.SeoTitle != null && CurrentPage.SeoTitle != "" ? CurrentPage.SeoTitle : CurrentPage.Title;
                ViewBag.H1          = CurrentPage.SeoH1 != null && CurrentPage.SeoH1 != "" ? CurrentPage.SeoH1 : CurrentPage.Title;
                ViewBag.Keywords    = CurrentPage.SeoKywords;
                ViewBag.Description = CurrentPage.SeoDescription;
                ViewBag.ID          = CurrentPage.ID;
                ViewBag.Url         = CurrentPage.Url;
                ViewBag.LanguageRTL = CurrentSettings.LanguageRTL;
                string theme = CurrentSettings.Themes;
                if (string.IsNullOrEmpty(theme))
                {
                    ViewBag.Layout = "~/Views/Shared/" + CurrentPage.Layout;
                }
                else
                {
                    ViewBag.Layout = "~/Themes/" + theme + "/Views/Shared/" + CurrentPage.Layout;
                }
            }
            else
            {
                filterContext.Result = RedirectToAction("Error404", "Error");// RedirectResult("~/Error/Error404");
                return;
            }

            if (SF.UsePermissions() && !SF.UserCanView(CurrentUser, CurrentPage))
            {
                TempData["Error"]    = "You don't have permissions to see this page";
                filterContext.Result = new RedirectResult("~/Account/LogOn?returnUrl=" + CurrentPage.Url);
                return;
            }

            base.OnActionExecuting(filterContext);
        }