public static void RestoreTab(TabInfo objTab, PortalSettings PortalSettings, int UserId) { Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController(); TabController objController = new TabController(); objTab.IsDeleted = false; objController.UpdateTab(objTab); List<TabInfo> siblingTabs = objController.GetTabsByPortal(objTab.PortalID).WithParentId(objTab.ParentId); int siblingCount = siblingTabs.Count; objTab.TabOrder = 2 * siblingTabs.Count + 1; objController.UpdateTabOrder(objTab, false); objEventLog.AddLog(objTab, PortalSettings, UserId, "", Services.Log.EventLog.EventLogController.EventLogType.TAB_RESTORED); ModuleController objmodules = new ModuleController(); ArrayList arrMods = objmodules.GetAllTabsModules(objTab.PortalID, true); foreach (ModuleInfo objModule in arrMods) { objmodules.CopyModule(objModule.ModuleID, objModule.TabID, objTab.TabID, "", true); } objController.ClearCache(objTab.PortalID); }
public static TabInfo DeserializeTab(XmlNode nodeTab, TabInfo objTab, Hashtable hTabs, int PortalId, bool IsAdminTemplate, PortalTemplateModuleAction mergeTabs, Hashtable hModules) { TabController objTabs = new TabController(); string tabName = XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "name"); if (!String.IsNullOrEmpty(tabName)) { if (objTab == null) { objTab = new TabInfo(); objTab.TabID = Null.NullInteger; objTab.ParentId = Null.NullInteger; objTab.TabName = tabName; } objTab.PortalID = PortalId; objTab.Title = XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "title"); objTab.Description = XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "description"); objTab.KeyWords = XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "keywords"); objTab.IsVisible = XmlUtils.GetNodeValueBoolean(nodeTab, "visible", true); objTab.DisableLink = XmlUtils.GetNodeValueBoolean(nodeTab, "disabled"); objTab.IconFile = Globals.ImportFile(PortalId, XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "iconfile")); objTab.IconFileLarge = Globals.ImportFile(PortalId, XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "iconfilelarge")); objTab.Url = XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "url"); objTab.StartDate = XmlUtils.GetNodeValueDate(nodeTab, "startdate", Null.NullDate); objTab.EndDate = XmlUtils.GetNodeValueDate(nodeTab, "enddate", Null.NullDate); objTab.RefreshInterval = XmlUtils.GetNodeValueInt(nodeTab, "refreshinterval", Null.NullInteger); objTab.PageHeadText = XmlUtils.GetNodeValue(nodeTab, "pageheadtext", Null.NullString); objTab.IsSecure = XmlUtils.GetNodeValueBoolean(nodeTab, "issecure", false); objTab.SiteMapPriority = XmlUtils.GetNodeValueSingle(nodeTab, "sitemappriority", (float)0.5); objTab.TabPermissions.Clear(); DeserializeTabPermissions(nodeTab.SelectNodes("tabpermissions/permission"), objTab, IsAdminTemplate); DeserializeTabSettings(nodeTab.SelectNodes("tabsettings/tabsetting"), objTab); if (!String.IsNullOrEmpty(XmlUtils.GetNodeValue(nodeTab, "skinsrc", ""))) { objTab.SkinSrc = XmlUtils.GetNodeValue(nodeTab, "skinsrc", ""); } if (!String.IsNullOrEmpty(XmlUtils.GetNodeValue(nodeTab, "containersrc", ""))) { objTab.ContainerSrc = XmlUtils.GetNodeValue(nodeTab, "containersrc", ""); } tabName = objTab.TabName; if (!String.IsNullOrEmpty(XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "parent"))) { if (hTabs[XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "parent")] != null) { objTab.ParentId = Convert.ToInt32(hTabs[XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "parent")]); tabName = XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "parent") + "/" + objTab.TabName; } else { TabInfo objParent = objTabs.GetTabByName(XmlUtils.GetNodeValue(nodeTab.CreateNavigator(), "parent"), PortalId); if (objParent != null) { objTab.ParentId = objParent.TabID; tabName = objParent.TabName + "/" + objTab.TabName; } else { objTab.ParentId = Null.NullInteger; tabName = objTab.TabName; } } } if (objTab.TabID == Null.NullInteger) { objTab.TabID = objTabs.AddTab(objTab); } else { objTabs.UpdateTab(objTab); } if (hTabs[tabName] == null) { hTabs.Add(tabName, objTab.TabID); } } if (nodeTab.SelectSingleNode("panes") != null) { DeserializePanes(nodeTab.SelectSingleNode("panes"), PortalId, objTab.TabID, mergeTabs, hModules); } nodeTab.AppendChild(XmlUtils.CreateElement(nodeTab.OwnerDocument, "tabid", objTab.TabID.ToString())); return objTab; }
private void ParseTabs(XmlNode nodeTabs, int PortalId, bool IsAdminTemplate, PortalTemplateModuleAction mergeTabs, bool IsNewPortal) { Hashtable hModules = new Hashtable(); Hashtable hTabs = new Hashtable(); string tabname; if (!IsNewPortal) { Hashtable hTabNames = new Hashtable(); TabController objTabs = new TabController(); foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(PortalId)) { TabInfo objTab = tabPair.Value; if (!objTab.IsDeleted) { tabname = objTab.TabName; if (!Null.IsNull(objTab.ParentId)) { tabname = Convert.ToString(hTabNames[objTab.ParentId]) + "/" + objTab.TabName; } hTabNames.Add(objTab.TabID, tabname); } } foreach (int i in hTabNames.Keys) { if (hTabs[hTabNames[i]] == null) { hTabs.Add(hTabNames[i], i); } } hTabNames = null; } foreach (XmlNode nodeTab in nodeTabs.SelectNodes("//tab")) { ParseTab(nodeTab, PortalId, IsAdminTemplate, mergeTabs, ref hModules, ref hTabs, IsNewPortal); } foreach (XmlNode nodeTab in nodeTabs.SelectNodes("//tab[url/@type = 'Tab']")) { int tabId = XmlUtils.GetNodeValueInt(nodeTab, "tabid", Null.NullInteger); string tabPath = XmlUtils.GetNodeValue(nodeTab, "url", Null.NullString); if (tabId > Null.NullInteger) { TabController controller = new TabController(); TabInfo objTab = controller.GetTab(tabId, PortalId, false); objTab.Url = TabController.GetTabByTabPath(PortalId, tabPath).ToString(); controller.UpdateTab(objTab); } } foreach (XmlNode nodeTab in nodeTabs.SelectNodes("//tab[url/@type = 'File']")) { int tabId = XmlUtils.GetNodeValueInt(nodeTab, "tabid", Null.NullInteger); string filePath = XmlUtils.GetNodeValue(nodeTab, "url", Null.NullString); if (tabId > Null.NullInteger) { TabController controller = new TabController(); TabInfo objTab = controller.GetTab(tabId, PortalId, false); objTab.Url = "FileID=" + new FileController().ConvertFilePathToFileId(filePath, PortalId).ToString(); controller.UpdateTab(objTab); } } }
private static bool DeleteTab(TabInfo objtab, PortalSettings PortalSettings, int UserId) { TabController objtabs = new TabController(); bool bDeleted = true; if (!IsSpecialTab(objtab.TabID, PortalSettings)) { if (DeleteChildTabs(objtab.TabID, PortalSettings, UserId)) { objtab.IsDeleted = true; objtabs.UpdateTab(objtab); Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController(); objEventLog.AddLog(objtab, PortalSettings, UserId, "", CommonLibrary.Services.Log.EventLog.EventLogController.EventLogType.TAB_SENT_TO_RECYCLE_BIN); } else { bDeleted = false; } } else { bDeleted = false; } return bDeleted; }
public void ParseTemplate(int PortalId, string TemplatePath, string TemplateFile, int AdministratorId, PortalTemplateModuleAction mergeTabs, bool IsNewPortal) { XmlDocument xmlPortal = new XmlDocument(); XmlNode node; try { xmlPortal.Load(TemplatePath + TemplateFile); } catch { } node = xmlPortal.SelectSingleNode("//portal/settings"); if (node != null && IsNewPortal) { ParsePortalSettings(node, PortalId); } node = xmlPortal.SelectSingleNode("//portal/rolegroups"); if (node != null) { ParseRoleGroups(node.CreateNavigator(), PortalId, AdministratorId); } node = xmlPortal.SelectSingleNode("//portal/roles"); if (node != null) { ParseRoles(node.CreateNavigator(), PortalId, AdministratorId); } node = xmlPortal.SelectSingleNode("//portal/portalDesktopModules"); if (node != null) { ParsePortalDesktopModules(node.CreateNavigator(), PortalId); } node = xmlPortal.SelectSingleNode("//portal/folders"); if (node != null) { ParseFolders(node, PortalId); } var objController = new FolderController(); if (objController.GetFolder(PortalId, "", false) == null) { int folderid = objController.AddFolder(PortalId, "", (int)Services.FileSystem.FolderController.StorageLocationTypes.InsecureFileSystem, true, false); AddFolderPermissions(PortalId, folderid); } if (objController.GetFolder(PortalId, "Templates/", false) == null) { int folderid = objController.AddFolder(PortalId, "Templates/", (int)Services.FileSystem.FolderController.StorageLocationTypes.InsecureFileSystem, true, false); AddFolderPermissions(PortalId, folderid); } // force creation of templates folder if not present on template if (objController.GetFolder(PortalId, "Users/", false) == null) { int folderid = objController.AddFolder(PortalId, "Users/", (int)Services.FileSystem.FolderController.StorageLocationTypes.InsecureFileSystem, true, false); AddFolderPermissions(PortalId, folderid); } if (mergeTabs == PortalTemplateModuleAction.Replace) { var objTabs = new TabController(); TabInfo objTab; foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(PortalId)) { objTab = tabPair.Value; objTab.TabName = objTab.TabName + "_old"; objTab.TabPath = Common.Globals.GenerateTabPath(objTab.ParentId, objTab.TabName); objTab.IsDeleted = true; objTabs.UpdateTab(objTab); var objModules = new ModuleController(); ModuleInfo objModule; foreach (KeyValuePair<int, ModuleInfo> modulePair in objModules.GetTabModules(objTab.TabID)) { objModule = modulePair.Value; objModules.DeleteTabModule(objModule.TabID, objModule.ModuleID, false); } } } node = xmlPortal.SelectSingleNode("//portal/tabs"); if (node != null) { string version = xmlPortal.DocumentElement.GetAttribute("version"); if (version != "5.0") { var xmlAdmin = new XmlDocument(); try { xmlAdmin.Load(TemplatePath + "admin.template"); } catch { } XmlNode adminNode = xmlAdmin.SelectSingleNode("//portal/tabs"); foreach (XmlNode adminTabNode in adminNode.ChildNodes) { node.AppendChild(xmlPortal.ImportNode(adminTabNode, true)); } } ParseTabs(node, PortalId, false, mergeTabs, IsNewPortal); } }