예제 #1
0
 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);
 }
예제 #2
0
 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);
         }
     }
 }
예제 #4
0
 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);
     }
 }