Beispiel #1
0
        private static void UpgradeToVersion530()
        {
            //update languages module
            int moduleDefId = GetModuleDefinition("Languages", "Languages");
            RemoveModuleControl(moduleDefId, "");
            AddModuleControl(moduleDefId, "", "", "DesktopModules/Admin/Languages/languageEnabler.ascx", "~/images/icon_language_32px.gif", SecurityAccessLevel.View, 0, "", true);
            AddModuleControl(moduleDefId, "Editor", "", "DesktopModules/Admin/Languages/languageeditor.ascx", "~/images/icon_language_32px.gif", SecurityAccessLevel.View, 0);

            //Add new View Profile module
            moduleDefId = AddModuleDefinition("ViewProfile", "", "ViewProfile", false, false);
            AddModuleControl(moduleDefId, "", "", "DesktopModules/Admin/ViewProfile/ViewProfile.ascx", "~/images/icon_profile_32px.gif", SecurityAccessLevel.View, 0);
            AddModuleControl(moduleDefId, "Settings", "Settings", "DesktopModules/Admin/ViewProfile/Settings.ascx", "~/images/icon_profile_32px.gif", SecurityAccessLevel.Edit, 0);

            //Add new Sitemap settings module
            moduleDefId = AddModuleDefinition("Sitemap", "", "Sitemap", false, false);
            AddModuleControl(moduleDefId, "", "", "DesktopModules/Admin/Sitemap/SitemapSettings.ascx", "~/images/icon_analytics_32px.gif", SecurityAccessLevel.View, 0);
            AddAdminPages("Search Engine Sitemap", "Configure the sitemap for submission to common search engines.", "~/images/icon_analytics_16px.gif", "~/images/icon_analytics_32px.gif", true, moduleDefId, "Search Engine Sitemap", "~/images/icon_analytics_32px.gif"); 


            //Add new Photo Profile field to Host
            var listController = new ListController();
            Dictionary<string, ListEntryInfo> dataTypes = listController.GetListEntryInfoDictionary("DataType");

            var properties = ProfileController.GetPropertyDefinitionsByPortal(Null.NullInteger);
            ProfileController.AddDefaultDefinition(Null.NullInteger, "Preferences", "Photo", "Image", 0, properties.Count*2 + 2, UserVisibilityMode.AllUsers, dataTypes);

            string installTemplateFile = string.Format("{0}Template\\UserProfile.page.template", Globals.InstallMapPath);
            string hostTemplateFile = string.Format("{0}Templates\\UserProfile.page.template", Globals.HostMapPath);
            if (File.Exists(installTemplateFile))
            {
                if (!File.Exists(hostTemplateFile))
                {
                    File.Copy(installTemplateFile, hostTemplateFile);
                }
            }
            if (File.Exists(hostTemplateFile))
            {
                var tabController = new TabController();
                var portalController = new PortalController();
                ArrayList portals = portalController.GetPortals();
                foreach (PortalInfo portal in portals)
                {
                    properties = ProfileController.GetPropertyDefinitionsByPortal(portal.PortalID);

                    //Add new Photo Profile field to Portal
                    ProfileController.AddDefaultDefinition(portal.PortalID, "Preferences", "Photo", "Image", 0, properties.Count*2 + 2, UserVisibilityMode.AllUsers, dataTypes);

                    //Rename old Default Page template
                    string defaultPageTemplatePath = string.Format("{0}Templates\\Default.page.template", portal.HomeDirectoryMapPath);
                    if (File.Exists(defaultPageTemplatePath))
                    {
                        File.Move(defaultPageTemplatePath, String.Format("{0}Templates\\Default_old.page.template", portal.HomeDirectoryMapPath));
                    }

                    //Update Default profile template in every portal
                    portalController.CopyPageTemplate("Default.page.template", portal.HomeDirectoryMapPath);

                    //Add User profile template to every portal
                    portalController.CopyPageTemplate("UserProfile.page.template", portal.HomeDirectoryMapPath);

                    //Synchronize the Templates folder to ensure the templates are accessible
                    FolderManager.Instance.Synchronize(portal.PortalID, "Templates/", false, true);

                    var xmlDoc = new XmlDocument();
                    try
                    {
                        // open the XML file
                        xmlDoc.Load(hostTemplateFile);
                    }
                    catch (Exception ex)
                    {
                        Exceptions.Exceptions.LogException(ex);
                    }

                    XmlNode userTabNode = xmlDoc.SelectSingleNode("//portal/tabs/tab");
                    if (userTabNode != null)
                    {
                        string tabName = XmlUtils.GetNodeValue(userTabNode.CreateNavigator(), "name");

                        var userTab = tabController.GetTabByName(tabName, portal.PortalID) ?? TabController.DeserializeTab(userTabNode, null, portal.PortalID, PortalTemplateModuleAction.Merge);

                        //Update SiteSettings to point to the new page
                        if (portal.UserTabId > Null.NullInteger)
                        {
                            portal.RegisterTabId = portal.UserTabId;
                        }
                        else
                        {
                            portal.UserTabId = userTab.TabID;
                        }
                    }
                    portalController.UpdatePortalInfo(portal);

                    //Add Users folder to every portal
                    string usersFolder = string.Format("{0}Users\\", portal.HomeDirectoryMapPath);

                    if (!Directory.Exists(usersFolder))
                    {
                        //Create Users folder
                        Directory.CreateDirectory(usersFolder);

                        //Synchronize the Users folder to ensure the user folder is accessible
                        FolderManager.Instance.Synchronize(portal.PortalID, "Users/", false, true);
                    }
                }
            }
            AddEventQueueApplicationStartFirstRequest();

            //Change Key for Module Defintions;
            moduleDefId = GetModuleDefinition("Extensions", "Extensions");
            RemoveModuleControl(moduleDefId, "ImportModuleDefinition");
            AddModuleControl(moduleDefId, "EditModuleDefinition", "Edit Module Definition", "DesktopModules/Admin/Extensions/Editors/EditModuleDefinition.ascx", "~/images/icon_extensions_32px.png", SecurityAccessLevel.Host, 0);

            //Module was incorrectly assigned as "IsPremium=False"
            RemoveModuleFromPortals("Users And Roles");
        }