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);
        }
        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 #4
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/");
        }
        public ThemeFileInfo GetThemeFile(PortalSettings portalSettings, string filePath, ThemeType type)
        {
            var themeName = SkinController.FormatSkinPath(filePath)
                            .Substring(filePath.IndexOf("/", StringComparison.InvariantCultureIgnoreCase) + 1)
                            .Replace("/", string.Empty);

            var themeInfo = (type == ThemeType.Skin ? GetLayouts(portalSettings, ThemeLevel.Global | ThemeLevel.Site)
                                                    : GetContainers(portalSettings, ThemeLevel.Global | ThemeLevel.Site))
                            .FirstOrDefault(t => t.PackageName.Equals(themeName, StringComparison.InvariantCultureIgnoreCase));

            if (themeInfo != null)
            {
                return(GetThemeFiles(portalSettings, themeInfo).FirstOrDefault(f => (f.Path + ".ascx").Equals(filePath, StringComparison.InvariantCultureIgnoreCase)));
            }

            return(null);
        }
        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 #7
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 #8
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 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);
            }
        }
        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 #11
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]);
            }
        }