Exemple #1
0
        private string GetSkin()
        {
            //attempt to find and load a  skin from the assigned skinned source
            var tabController = new TabController();
            var skinSource    = PortalSettings.DefaultPortalSkin;

            var tab = tabController.GetTab(TabId, PortalId, false);

            if (!string.IsNullOrEmpty(tab.SkinSrc))
            {
                skinSource = tab.SkinSrc;
            }
            else
            {
                skinSource = SkinController.FormatSkinPath(skinSource) + "groups.ascx";
                var physicalSkinFile = SkinController.FormatSkinSrc(skinSource, PortalSettings);

                if (!File.Exists(HttpContext.Current.Server.MapPath(physicalSkinFile)))
                {
                    skinSource = ""; //this will load the default skin
                }
            }

            return(skinSource);
        }
Exemple #2
0
        public void ConfigureTab_Formats_Tab_ContainerSrc_If_Neccessary()
        {
            //Arrange
            var controller = new PortalSettingsController();
            var settings   = new PortalSettings {
                PortalId = ValidPortalId, DefaultPortalContainer = DefaultContainer, CultureCode = Null.NullString
            };
            var validTab = new TabInfo {
                TabID = ValidTabId, PortalID = ValidPortalId, ContainerSrc = GlobalTabContainer
            };

            settings.ActiveTab         = validTab;
            settings.ActiveTab.SkinSrc = TabSkin;

            var mockLocaleController = new Mock <ILocaleController>();

            mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>());
            LocaleController.RegisterInstance(mockLocaleController.Object);

            var mockTabController = new Mock <ITabController>();

            mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> {
                validTab
            }));
            mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection());
            TabController.SetTestableInstance(mockTabController.Object);

            //Act
            controller.ConfigureActiveTab(settings);

            //Assert
            Assert.AreEqual(SkinController.FormatSkinSrc(GlobalTabContainer, settings), settings.ActiveTab.ContainerSrc);
        }
        protected virtual void UpdateSkinSettings(TabInfo activeTab, PortalSettings portalSettings)
        {
            if (Globals.IsAdminSkin())
            {
                //DNN-6170 ensure skin value is culture specific
                activeTab.SkinSrc = String.IsNullOrEmpty(PortalController.GetPortalSetting("DefaultAdminSkin", portalSettings.PortalId,
                                                                                           Host.Host.DefaultAdminSkin, portalSettings.CultureCode)) ? portalSettings.DefaultAdminSkin : PortalController.GetPortalSetting("DefaultAdminSkin", portalSettings.PortalId,
                                                                                                                                                                                                                          Host.Host.DefaultAdminSkin, portalSettings.CultureCode);
            }
            else if (String.IsNullOrEmpty(activeTab.SkinSrc))
            {
                //DNN-6170 ensure skin value is culture specific
                activeTab.SkinSrc = String.IsNullOrEmpty(PortalController.GetPortalSetting("DefaultPortalSkin", portalSettings.PortalId,
                                                                                           Host.Host.DefaultPortalSkin, portalSettings.CultureCode)) ? portalSettings.DefaultPortalSkin : PortalController.GetPortalSetting("DefaultPortalSkin", portalSettings.PortalId,
                                                                                                                                                                                                                            Host.Host.DefaultPortalSkin, portalSettings.CultureCode);
            }
            activeTab.SkinSrc  = SkinController.FormatSkinSrc(activeTab.SkinSrc, portalSettings);
            activeTab.SkinPath = SkinController.FormatSkinPath(activeTab.SkinSrc);

            if (Globals.IsAdminSkin())
            {
                activeTab.ContainerSrc = String.IsNullOrEmpty(PortalController.GetPortalSetting("DefaultAdminContainer", portalSettings.PortalId,
                                                                                                Host.Host.DefaultAdminContainer, portalSettings.CultureCode)) ? portalSettings.DefaultAdminContainer : PortalController.GetPortalSetting("DefaultAdminContainer", portalSettings.PortalId,
                                                                                                                                                                                                                                         Host.Host.DefaultAdminContainer, portalSettings.CultureCode);
            }
            else if (String.IsNullOrEmpty(activeTab.ContainerSrc))
            {
                activeTab.ContainerSrc = String.IsNullOrEmpty(PortalController.GetPortalSetting("DefaultPortalContainer", portalSettings.PortalId,
                                                                                                Host.Host.DefaultPortalContainer, portalSettings.CultureCode)) ? portalSettings.DefaultPortalContainer : PortalController.GetPortalSetting("DefaultPortalContainer", portalSettings.PortalId,
                                                                                                                                                                                                                                           Host.Host.DefaultPortalContainer, portalSettings.CultureCode);
            }

            activeTab.ContainerSrc  = SkinController.FormatSkinSrc(activeTab.ContainerSrc, portalSettings);
            activeTab.ContainerPath = SkinController.FormatSkinPath(activeTab.ContainerSrc);
        }
        protected virtual void UpdateSkinSettings(TabInfo activeTab, PortalSettings portalSettings)
        {
            if (Globals.IsAdminSkin())
            {
                activeTab.SkinSrc = portalSettings.DefaultAdminSkin;
            }
            else if (String.IsNullOrEmpty(activeTab.SkinSrc))
            {
                activeTab.SkinSrc = portalSettings.DefaultPortalSkin;
            }
            activeTab.SkinSrc  = SkinController.FormatSkinSrc(activeTab.SkinSrc, portalSettings);
            activeTab.SkinPath = SkinController.FormatSkinPath(activeTab.SkinSrc);

            if (Globals.IsAdminSkin())
            {
                activeTab.ContainerSrc = portalSettings.DefaultAdminContainer;
            }
            else if (String.IsNullOrEmpty(activeTab.ContainerSrc))
            {
                activeTab.ContainerSrc = portalSettings.DefaultPortalContainer;
            }

            activeTab.ContainerSrc  = SkinController.FormatSkinSrc(activeTab.ContainerSrc, portalSettings);
            activeTab.ContainerPath = SkinController.FormatSkinPath(activeTab.ContainerSrc);
        }
Exemple #5
0
        public static string GetSkinTemplateFolder(PortalSettings portalSettings, string moduleSubDir)
        {
            var SkinPath = portalSettings.ActiveTab.SkinPath;

            if (string.IsNullOrEmpty(SkinPath))
            {
                var SkinSrc = SkinController.FormatSkinSrc(!string.IsNullOrEmpty(portalSettings.ActiveTab.SkinSrc) ? portalSettings.ActiveTab.SkinSrc : portalSettings.DefaultPortalSkin, portalSettings);
                SkinPath = SkinController.FormatSkinPath(SkinSrc);
                //SkinPath = DotNetNuke.Entities.Tabs.TabController.Instance.GetTab(portalSettings.ActiveTab.TabID, portalSettings.PortalId).SkinPath;
            }
            return(SkinPath + moduleSubDir + "/Templates/");
        }
        protected void OnCommand(Object sender, CommandEventArgs e)
        {
            try
            {
                var strSrc      = e.CommandArgument.ToString();
                var redirectUrl = Globals.NavigateURL(TabId);
                switch (e.CommandName)
                {
                case "ApplyContainer":
                    if (chkPortal.Checked)
                    {
                        SkinController.SetSkin(SkinController.RootContainer, PortalId, SkinType.Portal, strSrc);
                    }
                    if (chkAdmin.Checked)
                    {
                        SkinController.SetSkin(SkinController.RootContainer, PortalId, SkinType.Admin, strSrc);
                    }
                    break;

                case "ApplySkin":
                    if (chkPortal.Checked)
                    {
                        SkinController.SetSkin(SkinController.RootSkin, PortalId, SkinType.Portal, strSrc);
                    }
                    if (chkAdmin.Checked)
                    {
                        SkinController.SetSkin(SkinController.RootSkin, PortalId, SkinType.Admin, strSrc);
                    }
                    DataCache.ClearPortalCache(PortalId, true);
                    break;

                case "Delete":
                    File.Delete(Request.MapPath(SkinController.FormatSkinSrc(strSrc, PortalSettings)));
                    DataCache.ClearPortalCache(PortalId, true);
                    var strType = "G";
                    if (strSrc.StartsWith("[L]"))
                    {
                        strType = "L";
                    }
                    var strRoot = strSrc.Substring(3, strSrc.IndexOf("/") - 3);

                    var strFolder = strSrc.Substring(strSrc.IndexOf("/") + 1, strSrc.LastIndexOf("/") - strSrc.IndexOf("/") - 2);
                    redirectUrl = Globals.NavigateURL(TabId, "", "Type=" + strType, "Root=" + strRoot, "Name=" + strFolder);
                    break;
                }
                Response.Redirect(redirectUrl, true);
            }
            catch (Exception exc)             //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
Exemple #7
0
        /// <summary>
        /// delete a skin or container.
        /// </summary>
        /// <param name="portalSettings"></param>
        /// <param name="themeFile"></param>
        public void DeleteTheme(PortalSettings portalSettings, ThemeFileInfo themeFile)
        {
            var themePath = SkinController.FormatSkinSrc(themeFile.Path, portalSettings);
            var user      = UserController.Instance.GetCurrentUserInfo();

            if (!user.IsSuperUser && themePath.IndexOf("\\portals\\_default\\", StringComparison.InvariantCultureIgnoreCase) != Null.NullInteger)
            {
                throw new SecurityException("NoPermission");
            }

            File.Delete(Path.Combine(Globals.ApplicationMapPath, themePath));
            DataCache.ClearPortalCache(portalSettings.PortalId, true);
        }
        private string GetSkinPath()
        {
            var skin = HttpContext.Current?.Request.QueryString [SkinSrcParameter]
                       ?? PortalSettings.Current.ActiveTab.SkinSrc;

            if (string.IsNullOrEmpty(skin))
            {
                skin = PortalController.GetPortalSetting(DnnSettingDefaultPortalSkin, PortalSettings.Current.PortalId,
                                                         Host.DefaultPortalSkin);
            }

            skin = SkinController.FormatSkinSrc(skin, PortalSettings.Current);
            return(skin.Substring(0, skin.LastIndexOf("/") + 1));
        }
        private static void ConfigureModule(ModuleInfo cloneModule, TabInfo tab)
        {
            if (Null.IsNull(cloneModule.StartDate))
            {
                cloneModule.StartDate = DateTime.MinValue;
            }
            if (Null.IsNull(cloneModule.EndDate))
            {
                cloneModule.EndDate = DateTime.MaxValue;
            }
            if (String.IsNullOrEmpty(cloneModule.ContainerSrc))
            {
                cloneModule.ContainerSrc = tab.ContainerSrc;
            }

            cloneModule.ContainerSrc  = SkinController.FormatSkinSrc(cloneModule.ContainerSrc, PortalSettings.Current);
            cloneModule.ContainerPath = SkinController.FormatSkinPath(cloneModule.ContainerSrc);
        }
Exemple #10
0
        /// <summary>
        /// Update Theme Attributes.
        /// </summary>
        /// <param name="portalSettings"></param>
        /// <param name="updateTheme"></param>
        public void UpdateTheme(PortalSettings portalSettings, UpdateThemeInfo updateTheme)
        {
            var themePath = SkinController.FormatSkinSrc(updateTheme.Path + ".ascx", portalSettings);

            themePath = Path.Combine(Globals.ApplicationMapPath, themePath.TrimStart('/'));

            var objStreamReader = File.OpenText(themePath);
            var strSkin         = objStreamReader.ReadToEnd();

            objStreamReader.Close();
            var strTag     = "<dnn:" + updateTheme.Token + " runat=\"server\" id=\"dnn" + updateTheme.Token + "\"";
            var intOpenTag = strSkin.IndexOf(strTag);

            if (intOpenTag != -1)
            {
                var    intCloseTag       = strSkin.IndexOf(" />", intOpenTag);
                var    strAttribute      = updateTheme.Setting;
                var    intStartAttribute = strSkin.IndexOf(strAttribute, intOpenTag);
                string strValue          = updateTheme.Value;
                if (intStartAttribute != -1 && intStartAttribute < intCloseTag)
                {
                    //remove attribute
                    var intEndAttribute = strSkin.IndexOf("\" ", intStartAttribute);
                    strSkin = strSkin.Substring(0, intStartAttribute) + strSkin.Substring(intEndAttribute + 2);
                }
                //add attribute
                strSkin = strSkin.Insert(intOpenTag + strTag.Length, " " + strAttribute + "=\"" + strValue + "\"");

                File.SetAttributes(themePath, FileAttributes.Normal);
                var objStream = File.CreateText(themePath);
                objStream.WriteLine(strSkin);
                objStream.Close();

                UpdateManifest(portalSettings, updateTheme);
            }
        }
Exemple #11
0
        private void GetPortalSettings(int tabID, PortalInfo portal)
        {
            ModuleController objModules = new ModuleController();
            ModuleInfo       objModule;

            this.PortalId              = portal.PortalID;
            this.PortalName            = portal.PortalName;
            this.LogoFile              = portal.LogoFile;
            this.FooterText            = portal.FooterText;
            this.ExpiryDate            = portal.ExpiryDate;
            this.UserRegistration      = portal.UserRegistration;
            this.BannerAdvertising     = portal.BannerAdvertising;
            this.Currency              = portal.Currency;
            this.AdministratorId       = portal.AdministratorId;
            this.Email                 = portal.Email;
            this.HostFee               = portal.HostFee;
            this.HostSpace             = portal.HostSpace;
            this.PageQuota             = portal.PageQuota;
            this.UserQuota             = portal.UserQuota;
            this.AdministratorRoleId   = portal.AdministratorRoleId;
            this.AdministratorRoleName = portal.AdministratorRoleName;
            this.RegisteredRoleId      = portal.RegisteredRoleId;
            this.RegisteredRoleName    = portal.RegisteredRoleName;
            this.Description           = portal.Description;
            this.KeyWords              = portal.KeyWords;
            this.BackgroundFile        = portal.BackgroundFile;
            this.GUID            = portal.GUID;
            this.SiteLogHistory  = portal.SiteLogHistory;
            this.AdminTabId      = portal.AdminTabId;
            this.SuperTabId      = portal.SuperTabId;
            this.SplashTabId     = portal.SplashTabId;
            this.HomeTabId       = portal.HomeTabId;
            this.LoginTabId      = portal.LoginTabId;
            this.RegisterTabId   = portal.RegisterTabId;
            this.UserTabId       = portal.UserTabId;
            this.DefaultLanguage = portal.DefaultLanguage;
            this.TimeZoneOffset  = portal.TimeZoneOffset;
            this.HomeDirectory   = portal.HomeDirectory;
            this.Pages           = portal.Pages;
            this.Users           = portal.Users;
            if (Null.IsNull(this.HostSpace))
            {
                this.HostSpace = 0;
            }
            if (Null.IsNull(this.DefaultLanguage))
            {
                this.DefaultLanguage = Localization.SystemLocale;
            }
            if (Null.IsNull(this.TimeZoneOffset))
            {
                this.TimeZoneOffset = Localization.SystemTimeZoneOffset;
            }
            this.HomeDirectory = Common.Globals.ApplicationPath + "/" + portal.HomeDirectory + "/";
            if (VerifyPortalTab(PortalId, tabID))
            {
                if (this.ActiveTab != null)
                {
                    if (Globals.IsAdminSkin())
                    {
                        this.ActiveTab.SkinSrc = this.DefaultAdminSkin;
                    }
                    else
                    {
                        if (String.IsNullOrEmpty(this.ActiveTab.SkinSrc))
                        {
                            this.ActiveTab.SkinSrc = this.DefaultPortalSkin;
                        }
                    }
                    this.ActiveTab.SkinSrc  = SkinController.FormatSkinSrc(this.ActiveTab.SkinSrc, this);
                    this.ActiveTab.SkinPath = SkinController.FormatSkinPath(this.ActiveTab.SkinSrc);
                    if (Globals.IsAdminSkin())
                    {
                        this.ActiveTab.ContainerSrc = this.DefaultAdminContainer;
                    }
                    else
                    {
                        if (String.IsNullOrEmpty(this.ActiveTab.ContainerSrc))
                        {
                            this.ActiveTab.ContainerSrc = this.DefaultPortalContainer;
                        }
                    }
                    this.ActiveTab.ContainerSrc  = SkinController.FormatSkinSrc(this.ActiveTab.ContainerSrc, this);
                    this.ActiveTab.ContainerPath = SkinController.FormatSkinPath(this.ActiveTab.ContainerSrc);
                    this.ActiveTab.Panes         = new ArrayList();
                    this.ActiveTab.Modules       = new ArrayList();
                    ArrayList crumbs = new ArrayList();
                    GetBreadCrumbsRecursively(ref crumbs, this.ActiveTab.TabID);
                    this.ActiveTab.BreadCrumbs = crumbs;
                }
            }
            if (this.ActiveTab != null)
            {
                Dictionary <string, int> objPaneModules = new Dictionary <string, int>();
                foreach (KeyValuePair <int, ModuleInfo> kvp in objModules.GetTabModules(this.ActiveTab.TabID))
                {
                    ModuleInfo cloneModule = kvp.Value.Clone();
                    if (Null.IsNull(cloneModule.StartDate))
                    {
                        cloneModule.StartDate = System.DateTime.MinValue;
                    }
                    if (Null.IsNull(cloneModule.EndDate))
                    {
                        cloneModule.EndDate = System.DateTime.MaxValue;
                    }
                    if (String.IsNullOrEmpty(cloneModule.ContainerSrc))
                    {
                        cloneModule.ContainerSrc = this.ActiveTab.ContainerSrc;
                    }
                    cloneModule.ContainerSrc  = SkinController.FormatSkinSrc(cloneModule.ContainerSrc, this);
                    cloneModule.ContainerPath = SkinController.FormatSkinPath(cloneModule.ContainerSrc);
                    if (objPaneModules.ContainsKey(cloneModule.PaneName) == false)
                    {
                        objPaneModules.Add(cloneModule.PaneName, 0);
                    }
                    cloneModule.PaneModuleCount = 0;
                    if (!cloneModule.IsDeleted)
                    {
                        objPaneModules[cloneModule.PaneName] = objPaneModules[cloneModule.PaneName] + 1;
                        cloneModule.PaneModuleIndex          = objPaneModules[cloneModule.PaneName] - 1;
                    }
                    this.ActiveTab.Modules.Add(cloneModule);
                }
                foreach (ModuleInfo module in this.ActiveTab.Modules)
                {
                    module.PaneModuleCount = objPaneModules[module.PaneName];
                }
            }
        }
Exemple #12
0
        protected void Page_Init(Object sender, EventArgs e)
        {
            InitializePage();

            UserControl ctlSkin = null;

            if (Request.QueryString["SkinSrc"] != null)
            {
                PortalSettings.ActiveTab.SkinSrc = SkinController.FormatSkinSrc(Globals.QueryStringDecode(Request.QueryString["SkinSrc"]) + ".ascx", PortalSettings);
                ctlSkin = LoadSkin(PortalSettings.ActiveTab.SkinSrc);
            }

            // load user skin ( based on cookie )
            if (ctlSkin == null)
            {
                if (Request.Cookies["_SkinSrc" + PortalSettings.PortalId] != null)
                {
                    if (!String.IsNullOrEmpty(Request.Cookies["_SkinSrc" + PortalSettings.PortalId].Value))
                    {
                        PortalSettings.ActiveTab.SkinSrc = SkinController.FormatSkinSrc(Request.Cookies["_SkinSrc" + PortalSettings.PortalId].Value + ".ascx", PortalSettings);
                        ctlSkin = LoadSkin(PortalSettings.ActiveTab.SkinSrc);
                    }
                }
            }

            // load assigned skin
            if (ctlSkin == null)
            {
                if (Globals.IsAdminSkin(PortalSettings.ActiveTab.IsAdminTab))
                {
                    SkinInfo objSkin = SkinController.GetSkin(SkinInfo.RootSkin, PortalSettings.PortalId, SkinType.Admin);
                    if (objSkin != null)
                    {
                        PortalSettings.ActiveTab.SkinSrc = objSkin.SkinSrc;
                    }
                    else
                    {
                        PortalSettings.ActiveTab.SkinSrc = "";
                    }
                }

                if (!String.IsNullOrEmpty(PortalSettings.ActiveTab.SkinSrc))
                {
                    PortalSettings.ActiveTab.SkinSrc = SkinController.FormatSkinSrc(PortalSettings.ActiveTab.SkinSrc, PortalSettings);
                    ctlSkin = LoadSkin(PortalSettings.ActiveTab.SkinSrc);
                }
            }

            // error loading skin - load default
            if (ctlSkin == null)
            {
                // could not load skin control - load default skin
                if (Globals.IsAdminSkin(PortalSettings.ActiveTab.IsAdminTab))
                {
                    PortalSettings.ActiveTab.SkinSrc = Globals.HostPath + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultAdminSkin;
                }
                else
                {
                    PortalSettings.ActiveTab.SkinSrc = Globals.HostPath + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultSkin;
                }
                ctlSkin = LoadSkin(PortalSettings.ActiveTab.SkinSrc);
            }

            // set skin path
            PortalSettings.ActiveTab.SkinPath = SkinController.FormatSkinPath(PortalSettings.ActiveTab.SkinSrc);

            // set skin id to an explicit short name to reduce page payload and make it standards compliant
            ctlSkin.ID = "dnn";

            // add CSS links
            ManageStyleSheets(false);

            // add skin to page
            SkinPlaceHolder.Controls.Add(ctlSkin);

            // add CSS links
            ManageStyleSheets(true);

            // ClientCallback Logic
            ClientAPI.HandleClientAPICallbackEvent(this);
        }
        protected void Page_Load(Object sender, EventArgs e)
        {
            try
            {
                if (Page.IsPostBack == false)
                {
                    ClientAPI.AddButtonConfirm(cmdDelete, Localization.GetString("DeleteItem"));

                    LoadSkins();
                    LoadContainers();

                    if (Request.QueryString["action"] != null)
                    {
                        string strType = Request.QueryString["Type"];
                        string strRoot = Request.QueryString["Root"];
                        string strName = Request.QueryString["Name"];
                        string strSrc  = "[" + strType + "]" + strRoot + "/" + strName + "/" + Request.QueryString["Src"];

                        switch (Request.QueryString["action"])
                        {
                        case "apply":

                            if (strRoot == SkinInfo.RootSkin)
                            {
                                if (chkPortal.Checked)
                                {
                                    SkinController.SetSkin(SkinInfo.RootSkin, PortalId, SkinType.Portal, strSrc);
                                }
                                if (chkAdmin.Checked)
                                {
                                    SkinController.SetSkin(SkinInfo.RootSkin, PortalId, SkinType.Admin, strSrc);
                                }
                            }
                            if (strRoot == SkinInfo.RootContainer)
                            {
                                if (chkPortal.Checked)
                                {
                                    SkinController.SetSkin(SkinInfo.RootContainer, PortalId, SkinType.Portal, strSrc);
                                }
                                if (chkAdmin.Checked)
                                {
                                    SkinController.SetSkin(SkinInfo.RootContainer, PortalId, SkinType.Admin, strSrc);
                                }
                            }
                            DataCache.ClearPortalCache(PortalId, true);
                            Response.Redirect(Request.RawUrl.Replace("&action=apply", ""));
                            break;

                        case "delete":

                            File.Delete(Request.MapPath(SkinController.FormatSkinSrc(strSrc, PortalSettings)));
                            LoadSkins();
                            LoadContainers();
                            break;
                        }
                    }
                }

                if (PortalSettings.ActiveTab.IsSuperTab)
                {
                    typeRow.Visible = false;
                }
                else
                {
                    typeRow.Visible = true;
                }
            }
            catch (Exception exc)  //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }
        private void LoadSkins()
        {
            string strRoot;
            string strFolder;

            string[] arrFolders;
            string   strName;
            string   strSkin;

            cboSkins.Items.Clear();
            cboSkins.Items.Add("<" + Localization.GetString("Not_Specified") + ">");

            // load host skins
            if (chkHost.Checked)
            {
                strRoot = Request.MapPath(Globals.HostPath + SkinInfo.RootSkin);
                if (Directory.Exists(strRoot))
                {
                    arrFolders = Directory.GetDirectories(strRoot);
                    foreach (string tempLoopVar_strFolder in arrFolders)
                    {
                        strFolder = tempLoopVar_strFolder;
                        //strName = strFolder.Substring( strFolder.LastIndexOf( "\\" ) + 1 - 1 );
                        strName = strFolder.Substring(strFolder.LastIndexOf("\\") + 1 - 1);
                        strSkin = strFolder.Replace(Globals.ApplicationMapPath, "");
                        if (strName != "_default")
                        {
                            cboSkins.Items.Add(new ListItem(strName, strSkin.ToLower()));
                        }
                    }
                }
            }

            // load portal skins
            if (chkSite.Checked)
            {
                strRoot = PortalSettings.HomeDirectoryMapPath + SkinInfo.RootSkin;
                if (Directory.Exists(strRoot))
                {
                    arrFolders = Directory.GetDirectories(strRoot);
                    foreach (string tempLoopVar_strFolder in arrFolders)
                    {
                        strFolder = tempLoopVar_strFolder;
                        strName   = strFolder.Substring(strFolder.LastIndexOf("\\") + 1 - 1);
                        strSkin   = strFolder.Replace(Globals.ApplicationMapPath, "");
                        cboSkins.Items.Add(new ListItem(strName, strSkin.ToLower()));
                    }
                }
            }

            if (!Page.IsPostBack)
            {
                string strURL;
                if (Request.QueryString["Name"] != null)
                {
                    strURL = Request.MapPath(GetSkinPath(Convert.ToString(Request.QueryString["Type"]), SkinInfo.RootSkin, Convert.ToString(Request.QueryString["Name"])));
                }
                else
                {
                    //Get the current portal skin
                    string   skinSrc;
                    SkinInfo objSkin = SkinController.GetSkin(SkinInfo.RootSkin, PortalSettings.PortalId, SkinType.Portal);
                    if (objSkin != null)
                    {
                        skinSrc = objSkin.SkinSrc;
                    }
                    else
                    {
                        skinSrc = "[G]" + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultSkin;
                    }
                    strURL = Request.MapPath(SkinController.FormatSkinPath(SkinController.FormatSkinSrc(skinSrc, PortalSettings)));
                    strURL = strURL.Substring(0, strURL.LastIndexOf("\\"));
                }
                strSkin = strURL.Replace(Globals.ApplicationMapPath, "");
                if (cboSkins.Items.FindByValue(strSkin.ToLower()) != null)
                {
                    cboSkins.Items.FindByValue(strSkin.ToLower()).Selected = true;
                    ShowSkins();
                }
            }
        }
Exemple #15
0
        public override void ExportData(ExportImportJob exportJob, ExportDto exportDto)
        {
            if (this.CheckCancelled(exportJob))
            {
                return;
            }

            // Skip the export if all the folders have been processed already.
            if (this.CheckPoint.Stage >= 1)
            {
                return;
            }

            this.exportImportJob = exportJob;
            this.portalSettings  = new PortalSettings(exportJob.PortalId);

            // Create Zip File to hold files
            var currentIndex        = 0;
            var totalThemesExported = 0;

            try
            {
                var packagesZipFileFormat = $"{Globals.ApplicationMapPath}{Constants.ExportFolder}{{0}}\\{Constants.ExportZipThemes}";
                var packagesZipFile       = string.Format(packagesZipFileFormat, exportJob.Directory.TrimEnd('\\').TrimEnd('/'));

                if (this.CheckPoint.Stage == 0)
                {
                    // export skin packages.
                    var exportThemes = this.GetExportThemes();
                    var totalThemes  = exportThemes.Count;

                    // Update the total items count in the check points. This should be updated only once.
                    this.CheckPoint.TotalItems = this.CheckPoint.TotalItems <= 0 ? totalThemes : this.CheckPoint.TotalItems;
                    if (this.CheckPointStageCallback(this))
                    {
                        return;
                    }

                    using (var archive = CompressionUtil.OpenCreate(packagesZipFile))
                    {
                        foreach (var theme in exportThemes)
                        {
                            var filePath     = SkinController.FormatSkinSrc(theme, this.portalSettings);
                            var physicalPath = Path.Combine(Globals.ApplicationMapPath, filePath.TrimStart('/'));
                            if (Directory.Exists(physicalPath))
                            {
                                foreach (var file in Directory.GetFiles(physicalPath, "*.*", SearchOption.AllDirectories))
                                {
                                    var folderOffset = Path.Combine(Globals.ApplicationMapPath, "Portals").Length + 1;
                                    CompressionUtil.AddFileToArchive(archive, file, folderOffset);
                                }

                                totalThemesExported += 1;
                            }

                            this.CheckPoint.ProcessedItems++;
                            this.CheckPoint.Progress = this.CheckPoint.ProcessedItems * 100.0 / totalThemes;
                            currentIndex++;

                            // After every 10 items, call the checkpoint stage. This is to avoid too many frequent updates to DB.
                            if (currentIndex % 10 == 0 && this.CheckPointStageCallback(this))
                            {
                                return;
                            }
                        }
                    }

                    this.CheckPoint.Stage++;
                    this.CheckPoint.Completed = true;
                    this.CheckPoint.Progress  = 100;
                }
            }
            finally
            {
                this.CheckPointStageCallback(this);
                this.Result.AddSummary("Exported Themes", totalThemesExported.ToString());
            }
        }
Exemple #16
0
        /// <summary>
        /// The GetPortalSettings method builds the site Settings
        /// </summary>
        /// <remarks>
        /// </remarks>
        ///	<param name="TabId">The current tabs id</param>
        ///	<param name="objPortalAliasInfo">The Portal Alias object</param>
        private void GetPortalSettings(int TabId, PortalAliasInfo objPortalAliasInfo)
        {
            PortalController objPortals = new PortalController();
            PortalInfo       objPortal  = null;
            TabController    objTabs    = new TabController();
            ModuleController objModules = new ModuleController();
            ModuleInfo       objModule  = null;
            SkinInfo         objSkin    = null;

            PortalId = objPortalAliasInfo.PortalID;

            // get portal settings
            objPortal = objPortals.GetPortal(PortalId);
            if (objPortal != null)
            {
                this.PortalAlias           = objPortalAliasInfo;
                this.PortalId              = objPortal.PortalID;
                this.PortalName            = objPortal.PortalName;
                this.LogoFile              = objPortal.LogoFile;
                this.FooterText            = objPortal.FooterText;
                this.ExpiryDate            = objPortal.ExpiryDate;
                this.UserRegistration      = objPortal.UserRegistration;
                this.BannerAdvertising     = objPortal.BannerAdvertising;
                this.Currency              = objPortal.Currency;
                this.AdministratorId       = objPortal.AdministratorId;
                this.Email                 = objPortal.Email;
                this.HostFee               = objPortal.HostFee;
                this.HostSpace             = objPortal.HostSpace;
                this.PageQuota             = objPortal.PageQuota;
                this.UserQuota             = objPortal.UserQuota;
                this.AdministratorRoleId   = objPortal.AdministratorRoleId;
                this.AdministratorRoleName = objPortal.AdministratorRoleName;
                this.RegisteredRoleId      = objPortal.RegisteredRoleId;
                this.RegisteredRoleName    = objPortal.RegisteredRoleName;
                this.Description           = objPortal.Description;
                this.KeyWords              = objPortal.KeyWords;
                this.BackgroundFile        = objPortal.BackgroundFile;
                this.GUID            = objPortal.GUID;
                this.SiteLogHistory  = objPortal.SiteLogHistory;
                this.AdminTabId      = objPortal.AdminTabId;
                this.SuperTabId      = objPortal.SuperTabId;
                this.SplashTabId     = objPortal.SplashTabId;
                this.HomeTabId       = objPortal.HomeTabId;
                this.LoginTabId      = objPortal.LoginTabId;
                this.UserTabId       = objPortal.UserTabId;
                this.DefaultLanguage = objPortal.DefaultLanguage;
                this.TimeZoneOffset  = objPortal.TimeZoneOffset;
                this.HomeDirectory   = objPortal.HomeDirectory;
                this.Version         = objPortal.Version;
                this.AdminSkin       = SkinController.GetSkin(SkinInfo.RootSkin, PortalId, SkinType.Admin);
                this.PortalSkin      = SkinController.GetSkin(SkinInfo.RootSkin, PortalId, SkinType.Portal);
                this.AdminContainer  = SkinController.GetSkin(SkinInfo.RootContainer, PortalId, SkinType.Admin);
                this.PortalContainer = SkinController.GetSkin(SkinInfo.RootContainer, PortalId, SkinType.Portal);
                this.Pages           = objPortal.Pages;
                this.Users           = objPortal.Users;

                // set custom properties
                if (Null.IsNull(this.HostSpace))
                {
                    this.HostSpace = 0;
                }
                if (Null.IsNull(this.DefaultLanguage))
                {
                    this.DefaultLanguage = Localization.SystemLocale;
                }
                if (Null.IsNull(this.TimeZoneOffset))
                {
                    this.TimeZoneOffset = Localization.SystemTimeZoneOffset;
                }
                this.HomeDirectory = Globals.ApplicationPath + "/" + objPortal.HomeDirectory + "/";

                // get application version
                Array arrVersion = Globals.glbAppVersion.Split(Convert.ToChar("."));
                int   intMajor   = Convert.ToInt32(arrVersion.GetValue((0)));
                int   intMinor   = Convert.ToInt32(arrVersion.GetValue((1)));
                int   intBuild   = Convert.ToInt32(arrVersion.GetValue((2)));
                this.Version = string.Format("{0}.{1}.{2}", intMajor, intMinor, intBuild);
            }

            //Add each portal Tab to DekstopTabs
            TabInfo objPortalTab = null;

            foreach (KeyValuePair <int, TabInfo> tabPair in objTabs.GetTabsByPortal(this.PortalId))
            {
                // clone the tab object ( to avoid creating an object reference to the data cache )
                objPortalTab = tabPair.Value.Clone();

                // set custom properties
                if (objPortalTab.TabOrder == 0)
                {
                    objPortalTab.TabOrder = 999;
                }
                if (Null.IsNull(objPortalTab.StartDate))
                {
                    objPortalTab.StartDate = DateTime.MinValue;
                }
                if (Null.IsNull(objPortalTab.EndDate))
                {
                    objPortalTab.EndDate = DateTime.MaxValue;
                }
                objPortalTab.IsSuperTab = false;

                this.DesktopTabs.Add(objPortalTab);
            }

            //Add each host Tab to DesktopTabs
            TabInfo objHostTab = null;

            foreach (KeyValuePair <int, TabInfo> tabPair in objTabs.GetTabsByPortal(Null.NullInteger))
            {
                // clone the tab object ( to avoid creating an object reference to the data cache )
                objHostTab            = tabPair.Value.Clone();
                objHostTab.PortalID   = this.PortalId;
                objHostTab.StartDate  = DateTime.MinValue;
                objHostTab.EndDate    = DateTime.MaxValue;
                objHostTab.IsSuperTab = true;

                this.DesktopTabs.Add(objHostTab);
            }

            //At this point the DesktopTabs Collection contains all the Tabs for the current portal
            //verify tab for portal. This assigns the Active Tab based on the Tab Id/PortalId
            if (VerifyPortalTab(PortalId, TabId))
            {
                if (this.ActiveTab != null)
                {
                    // skin
                    if (this.ActiveTab.SkinSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            objSkin = this.AdminSkin;
                        }
                        else
                        {
                            objSkin = this.PortalSkin;
                        }
                        if (objSkin != null)
                        {
                            this.ActiveTab.SkinSrc = objSkin.SkinSrc;
                        }
                    }
                    if (this.ActiveTab.SkinSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            this.ActiveTab.SkinSrc = "[G]" + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultAdminSkin;
                        }
                        else
                        {
                            this.ActiveTab.SkinSrc = "[G]" + SkinInfo.RootSkin + Globals.glbDefaultSkinFolder + Globals.glbDefaultSkin;
                        }
                    }
                    this.ActiveTab.SkinSrc  = SkinController.FormatSkinSrc(this.ActiveTab.SkinSrc, this);
                    this.ActiveTab.SkinPath = SkinController.FormatSkinPath(this.ActiveTab.SkinSrc);
                    // container
                    if (this.ActiveTab.ContainerSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            objSkin = this.AdminContainer;
                        }
                        else
                        {
                            objSkin = this.PortalContainer;
                        }
                        if (objSkin != null)
                        {
                            this.ActiveTab.ContainerSrc = objSkin.SkinSrc;
                        }
                    }
                    if (this.ActiveTab.ContainerSrc == "")
                    {
                        if (Globals.IsAdminSkin(this.ActiveTab.IsAdminTab))
                        {
                            this.ActiveTab.ContainerSrc = "[G]" + SkinInfo.RootContainer + Globals.glbDefaultContainerFolder + Globals.glbDefaultAdminContainer;
                        }
                        else
                        {
                            this.ActiveTab.ContainerSrc = "[G]" + SkinInfo.RootContainer + Globals.glbDefaultContainerFolder + Globals.glbDefaultContainer;
                        }
                    }
                    this.ActiveTab.ContainerSrc  = SkinController.FormatSkinSrc(this.ActiveTab.ContainerSrc, this);
                    this.ActiveTab.ContainerPath = SkinController.FormatSkinPath(this.ActiveTab.ContainerSrc);

                    // initialize collections
                    this.ActiveTab.BreadCrumbs = new ArrayList();
                    this.ActiveTab.Panes       = new ArrayList();
                    this.ActiveTab.Modules     = new ArrayList();

                    // get breadcrumbs for current tab
                    GetBreadCrumbsRecursively(this.ActiveTab.BreadCrumbs, this.ActiveTab.TabID);
                }
            }

            Hashtable objPaneModules = new Hashtable();

            // get current tab modules
            foreach (KeyValuePair <int, ModuleInfo> kvp in objModules.GetTabModules(this.ActiveTab.TabID))
            {
                objModule = kvp.Value;

                // clone the module object ( to avoid creating an object reference to the data cache )
                ModuleInfo cloneModule = objModule.Clone();

                // set custom properties
                if (Null.IsNull(cloneModule.StartDate))
                {
                    cloneModule.StartDate = DateTime.MinValue;
                }
                if (Null.IsNull(cloneModule.EndDate))
                {
                    cloneModule.EndDate = DateTime.MaxValue;
                }
                // container
                if (cloneModule.ContainerSrc == "")
                {
                    cloneModule.ContainerSrc = this.ActiveTab.ContainerSrc;
                }
                cloneModule.ContainerSrc  = SkinController.FormatSkinSrc(cloneModule.ContainerSrc, this);
                cloneModule.ContainerPath = SkinController.FormatSkinPath(cloneModule.ContainerSrc);

                // process tab panes
                if (objPaneModules.ContainsKey(cloneModule.PaneName) == false)
                {
                    objPaneModules.Add(cloneModule.PaneName, 0);
                }
                cloneModule.PaneModuleCount = 0;
                if (!cloneModule.IsDeleted)
                {
                    objPaneModules[cloneModule.PaneName] = Convert.ToInt32(objPaneModules[cloneModule.PaneName]) + 1;
                    cloneModule.PaneModuleIndex          = Convert.ToInt32(objPaneModules[cloneModule.PaneName]) - 1;
                }

                this.ActiveTab.Modules.Add(cloneModule);
            }

            // set pane module count
            foreach (ModuleInfo objModuleWithinLoop in this.ActiveTab.Modules)
            {
                objModule = objModuleWithinLoop;
                objModuleWithinLoop.PaneModuleCount = Convert.ToInt32(objPaneModules[objModuleWithinLoop.PaneName]);
            }
        }
Exemple #17
0
        private void UpdateManifest(PortalSettings portalSettings, UpdateThemeInfo updateTheme)
        {
            var themePath = SkinController.FormatSkinSrc(updateTheme.Path, portalSettings);

            if (File.Exists(themePath.Replace(".ascx", ".htm")))
            {
                var strFile = themePath.Replace(".ascx", ".xml");
                if (File.Exists(strFile) == false)
                {
                    strFile = strFile.Replace(Path.GetFileName(strFile), "skin.xml");
                }
                XmlDocument xmlDoc = null;
                try
                {
                    xmlDoc = new XmlDocument();
                    xmlDoc.Load(strFile);
                }
                catch
                {
                    xmlDoc.InnerXml = "<Objects></Objects>";
                }
                var xmlToken = xmlDoc.DocumentElement.SelectSingleNode("descendant::Object[Token='[" + updateTheme.Token + "]']");
                if (xmlToken == null)
                {
                    //add token
                    string strToken = "<Token>[" + updateTheme.Token + "]</Token><Settings></Settings>";
                    xmlToken          = xmlDoc.CreateElement("Object");
                    xmlToken.InnerXml = strToken;
                    xmlDoc.SelectSingleNode("Objects").AppendChild(xmlToken);
                    xmlToken = xmlDoc.DocumentElement.SelectSingleNode("descendant::Object[Token='[" + updateTheme.Token + "]']");
                }
                var strValue = updateTheme.Value;

                var blnUpdate = false;
                foreach (XmlNode xmlSetting in xmlToken.SelectNodes(".//Settings/Setting"))
                {
                    if (xmlSetting.SelectSingleNode("Name").InnerText == updateTheme.Setting)
                    {
                        xmlSetting.SelectSingleNode("Value").InnerText = strValue;
                        blnUpdate = true;
                    }
                }
                if (blnUpdate == false)
                {
                    var     strSetting = "<Name>" + updateTheme.Setting + "</Name><Value>" + strValue + "</Value>";
                    XmlNode xmlSetting = xmlDoc.CreateElement("Setting");
                    xmlSetting.InnerXml = strSetting;
                    xmlToken.SelectSingleNode("Settings").AppendChild(xmlSetting);
                }
                try
                {
                    if (File.Exists(strFile))
                    {
                        File.SetAttributes(strFile, FileAttributes.Normal);
                    }
                    var objStream = File.CreateText(strFile);
                    var strXML    = xmlDoc.InnerXml;
                    strXML = strXML.Replace("><", ">" + Environment.NewLine + "<");
                    objStream.WriteLine(strXML);
                    objStream.Close();
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                }
            }
        }
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            chkHost.CheckedChanged += OnHostCheckChanged;
            chkSite.CheckedChanged += OnSiteCheckChanged;
            cmdDelete.Click        += OnDeleteClick;
            cmdParse.Click         += OnParseClick;
            cmdRestore.Click       += OnRestoreClick;
            lblLegacy.Visible       = false;

            string strSkin;
            var    strContainer = Null.NullString;

            try
            {
                cmdDelete.Visible = true;

                if (Page.IsPostBack == false)
                {
                    LoadCombos();
                }
                typeRow.Visible = !PortalSettings.ActiveTab.IsSuperTab;

                if (!Page.IsPostBack)
                {
                    string strURL;

                    if (Request.QueryString["Name"] != null)
                    {
                        strURL  = Request.MapPath(GetSkinPath(Convert.ToString(Request.QueryString["Type"]), Convert.ToString(Request.QueryString["Root"]), Convert.ToString(Request.QueryString["Name"])));
                        strSkin = strURL.Replace(Globals.ApplicationMapPath, "").ToLowerInvariant();
                    }
                    else
                    {
                        //Get the current portal skin
                        var skinSrc = !string.IsNullOrEmpty(PortalSettings.DefaultPortalSkin) ? PortalSettings.DefaultPortalSkin : SkinController.GetDefaultPortalSkin();
                        strURL  = Request.MapPath(SkinController.FormatSkinPath(SkinController.FormatSkinSrc(skinSrc, PortalSettings)));
                        strURL  = strURL.Substring(0, strURL.LastIndexOf("\\"));
                        strSkin = strURL.Replace(Globals.ApplicationMapPath, "").ToLowerInvariant();
                    }
                    if (!string.IsNullOrEmpty(strSkin))
                    {
                        strContainer = strSkin.Replace("\\" + SkinController.RootSkin.ToLowerInvariant() + "\\", "\\" + SkinController.RootContainer.ToLowerInvariant() + "\\");
                    }
                    SetSkin(strSkin);
                    SetContainer(strContainer);
                }
                else
                {
                    strSkin      = cboSkins.SelectedValue;
                    strContainer = cboContainers.SelectedValue;
                    if (strSkin != CurrentSkin)
                    {
                        strContainer = strSkin.Replace("\\" + SkinController.RootSkin.ToLowerInvariant() + "\\", "\\" + SkinController.RootContainer.ToLowerInvariant() + "\\");
                        SetSkin(strSkin);
                        SetContainer(strContainer);
                    }
                    else if (strContainer != CurrentContainer)
                    {
                        SetSkin(_notSpecified);
                        SetContainer(strContainer);
                    }
                }
                ShowSkins();
                ShowContainers();
            }
            catch (Exception exc)             //Module failed to load
            {
                Exceptions.ProcessModuleLoadException(this, exc);
            }
        }