/// <summary> /// Includes page urls on the sitemap /// </summary> /// <remarks> /// Pages that are included: /// - are not deleted /// - are not disabled /// - are normal pages (not links,...) /// - are visible (based on date and permissions) /// </remarks> public override List<SitemapUrl> GetUrls(int portalId, PortalSettings ps, string version) { TabController objTabs = new TabController(); SitemapUrl pageUrl = null; List<SitemapUrl> urls = new List<SitemapUrl>(); useLevelBasedPagePriority = bool.Parse(PortalController.GetPortalSetting("SitemapLevelMode", portalId, "False")); minPagePriority = float.Parse(PortalController.GetPortalSetting("SitemapMinPriority", portalId, "0.1")); includeHiddenPages = bool.Parse(PortalController.GetPortalSetting("SitemapIncludeHidden", portalId, "True")); this.ps = ps; foreach (TabInfo objTab in objTabs.GetTabsByPortal(portalId).Values) { if (!objTab.IsDeleted && !objTab.DisableLink && objTab.TabType == TabType.Normal && (Null.IsNull(objTab.StartDate) || objTab.StartDate < DateTime.Now) && (Null.IsNull(objTab.EndDate) || objTab.EndDate > DateTime.Now) && IsTabPublic(objTab.TabPermissions)) { if (includeHiddenPages | objTab.IsVisible) { foreach (string languageCode in CommonLibrary.Services.Localization.Localization.GetLocales(portalId).Keys) { pageUrl = GetPageUrl(objTab, languageCode); urls.Add(pageUrl); } } } } return urls; }
private void ClearPortalCacheInternal(int portalId, bool cascade, bool clearRuntime) { RemoveFormattedCacheKey(DataCache.PortalSettingsCacheKey, clearRuntime, portalId); Dictionary<string, Locale> locales = CommonLibrary.Services.Localization.Localization.GetLocales(portalId); if (locales.Count == 0) { //At least attempt to remove default locale string defaultLocale = PortalController.GetPortalDefaultLanguage(portalId); RemoveCacheKey(String.Format(DataCache.PortalCacheKey, portalId.ToString() + "-" + defaultLocale), clearRuntime); } else { foreach (Locale portalLocale in Localization.Localization.GetLocales(portalId).Values) { RemoveCacheKey(String.Format(DataCache.PortalCacheKey, portalId.ToString() + "-" + portalLocale.Code), clearRuntime); } } if (cascade) { TabController objTabs = new TabController(); foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(portalId)) { ClearModuleCacheInternal(tabPair.Value.TabID, clearRuntime); } ModuleController moduleController = new ModuleController(); foreach (ModuleInfo moduleInfo in moduleController.GetModules(portalId)) { RemoveCacheKey("GetModuleSettings" + moduleInfo.ModuleID.ToString(), clearRuntime); } } ClearFolderCacheInternal(portalId, clearRuntime); ClearCacheKeysByPortalInternal(portalId, clearRuntime); ClearDesktopModuleCacheInternal(portalId, clearRuntime); ClearTabCacheInternal(portalId, clearRuntime); }
private void ClearModulePermissionsCachesByPortalInternal(int portalId, bool clearRuntime) { TabController objTabs = new TabController(); foreach (KeyValuePair<int, CommonLibrary.Entities.Tabs.TabInfo> tabPair in objTabs.GetTabsByPortal(portalId)) { RemoveFormattedCacheKey(DataCache.ModulePermissionCacheKey, clearRuntime, tabPair.Value.TabID); } }
public void UpdateModuleOrder(int TabId, int ModuleId, int ModuleOrder, string PaneName) { ModuleInfo objModule = GetModule(ModuleId, TabId, false); if (objModule != null) { if (ModuleOrder == -1) { IDataReader dr = null; try { dr = dataProvider.GetTabModuleOrder(TabId, PaneName); while (dr.Read()) { ModuleOrder = Convert.ToInt32(dr["ModuleOrder"]); } } catch (Exception ex) { Exceptions.LogException(ex); } finally { CBO.CloseDataReader(dr, true); } ModuleOrder += 2; } dataProvider.UpdateModuleOrder(TabId, ModuleId, ModuleOrder, PaneName); if (objModule.AllTabs == false) { ClearCache(TabId); } else { TabController objTabs = new TabController(); foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(objModule.PortalID)) { TabInfo objTab = tabPair.Value; ClearCache(objTab.TabID); } } } }
public void UpdateModule(ModuleInfo objModule) { //Update ContentItem If neccessary if (objModule.ContentItemId == Null.NullInteger && objModule.ModuleID != Null.NullInteger) { CreateContentItem(objModule); } dataProvider.UpdateModule(objModule.ModuleID, objModule.ContentItemId, objModule.ModuleTitle, objModule.AllTabs, objModule.Header, objModule.Footer, objModule.StartDate, objModule.EndDate, objModule.InheritViewPermissions, objModule.IsDeleted, UserController.GetCurrentUserInfo().UserID); //Update Tags ITermController termController = CommonLibrary.Entities.Content.Common.Util.GetTermController(); termController.RemoveTermsFromContent(objModule); foreach (Term _Term in objModule.Terms) { termController.AddTermToContent(_Term, objModule); } Services.Log.EventLog.EventLogController objEventLog = new Services.Log.EventLog.EventLogController(); objEventLog.AddLog(objModule, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", Services.Log.EventLog.EventLogController.EventLogType.MODULE_UPDATED); ModulePermissionController.SaveModulePermissions(objModule); UpdateModuleSettings(objModule); if (!Null.IsNull(objModule.TabID)) { dataProvider.UpdateTabModule(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName, objModule.CacheTime, objModule.CacheMethod, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate, objModule.IsWebSlice, objModule.WebSliceTitle, objModule.WebSliceExpiryDate, objModule.WebSliceTTL, UserController.GetCurrentUserInfo().UserID); objEventLog.AddLog(objModule, PortalController.GetCurrentPortalSettings(), UserController.GetCurrentUserInfo().UserID, "", CommonLibrary.Services.Log.EventLog.EventLogController.EventLogType.TABMODULE_UPDATED); UpdateModuleOrder(objModule.TabID, objModule.ModuleID, objModule.ModuleOrder, objModule.PaneName); if (PortalSettings.Current != null) { if (objModule.IsDefaultModule) { if (objModule.ModuleID != PortalSettings.Current.DefaultModuleId) { PortalController.UpdatePortalSetting(objModule.PortalID, "defaultmoduleid", objModule.ModuleID.ToString()); } if (objModule.TabID != PortalSettings.Current.DefaultTabId) { PortalController.UpdatePortalSetting(objModule.PortalID, "defaulttabid", objModule.TabID.ToString()); } } else { if (objModule.ModuleID == PortalSettings.Current.DefaultModuleId && objModule.TabID == PortalSettings.Current.DefaultTabId) { PortalController.DeletePortalSetting(objModule.PortalID, "defaultmoduleid"); PortalController.DeletePortalSetting(objModule.PortalID, "defaulttabid"); } } } if (objModule.AllModules) { TabController objTabs = new TabController(); foreach (KeyValuePair<int, TabInfo> tabPair in objTabs.GetTabsByPortal(objModule.PortalID)) { TabInfo objTab = tabPair.Value; foreach (KeyValuePair<int, ModuleInfo> modulePair in GetTabModules(objTab.TabID)) { ModuleInfo objTargetModule = modulePair.Value; dataProvider.UpdateTabModule(objTargetModule.TabID, objTargetModule.ModuleID, objTargetModule.ModuleOrder, objTargetModule.PaneName, objTargetModule.CacheTime, objModule.CacheMethod, objModule.Alignment, objModule.Color, objModule.Border, objModule.IconFile, (int)objModule.Visibility, objModule.ContainerSrc, objModule.DisplayTitle, objModule.DisplayPrint, objModule.DisplaySyndicate, objModule.IsWebSlice, objModule.WebSliceTitle, objModule.WebSliceExpiryDate, objModule.WebSliceTTL, UserController.GetCurrentUserInfo().UserID); } } } } foreach (ModuleInfo tabModule in GetModuleTabs(objModule.ModuleID)) { ClearCache(tabModule.TabID); } }
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 bool DeleteTab(int tabId, PortalSettings PortalSettings, int UserId) { bool bDeleted = true; TabController objController = new TabController(); TabInfo objTab = objController.GetTab(tabId, PortalSettings.PortalId, false); if (objTab != null) { List<TabInfo> siblingTabs = objController.GetTabsByPortal(objTab.PortalID).WithParentId(objTab.ParentId); int siblingCount = siblingTabs.Count; objController.UpdateTabOrder(siblingTabs, 2); int tabIndex = objController.GetIndexOfTab(objTab, siblingTabs); bDeleted = DeleteTab(objTab, PortalSettings, UserId); objTab.TabOrder = 0; objController.UpdateTabOrder(objTab, false); objController.UpdateTabOrder(siblingTabs, tabIndex + 1, siblingCount - 1, -2); } else { bDeleted = false; } return bDeleted; }
public void PopulateBreadCrumbs(int portalID, ref ArrayList breadCrumbs, int tabID) { TabInfo objTab = null; TabController objTabController = new TabController(); TabCollection portalTabs = objTabController.GetTabsByPortal(portalID); TabCollection hostTabs = objTabController.GetTabsByPortal(Null.NullInteger); bool blnFound = portalTabs.TryGetValue(tabID, out objTab); if (!blnFound) { blnFound = hostTabs.TryGetValue(tabID, out objTab); } if (blnFound) { breadCrumbs.Insert(0, objTab.Clone()); if (!Null.IsNull(objTab.ParentId)) { PopulateBreadCrumbs(portalID, ref breadCrumbs, objTab.ParentId); } } }
private bool VerifyPortalTab(int PortalId, int TabId) { TabInfo objTab = null; TabInfo objSplashTab = null; TabInfo objHomeTab = null; bool isVerified = false; TabController objTabController = new TabController(); TabCollection portalTabs = objTabController.GetTabsByPortal(PortalId); TabCollection hostTabs = objTabController.GetTabsByPortal(Null.NullInteger); if (TabId != Null.NullInteger) { if (portalTabs.TryGetValue(TabId, out objTab)) { if (!objTab.IsDeleted) { this.ActiveTab = objTab.Clone(); isVerified = true; } } } if (!isVerified && TabId != Null.NullInteger) { if (hostTabs.TryGetValue(TabId, out objTab)) { if (!objTab.IsDeleted) { this.ActiveTab = objTab.Clone(); isVerified = true; } } } if (!isVerified && this.SplashTabId > 0) { objSplashTab = objTabController.GetTab(this.SplashTabId, PortalId, false); this.ActiveTab = objSplashTab.Clone(); isVerified = true; } if (!isVerified && this.HomeTabId > 0) { objHomeTab = objTabController.GetTab(this.HomeTabId, PortalId, false); this.ActiveTab = objHomeTab.Clone(); isVerified = true; } if (!isVerified) { foreach (TabInfo tab in portalTabs.AsList()) { if (!tab.IsDeleted && tab.IsVisible) { this.ActiveTab = tab.Clone(); isVerified = true; break; } } } if (Null.IsNull(this.ActiveTab.StartDate)) { this.ActiveTab.StartDate = System.DateTime.MinValue; } if (Null.IsNull(this.ActiveTab.EndDate)) { this.ActiveTab.EndDate = System.DateTime.MaxValue; } return isVerified; }
private void GetBreadCrumbsRecursively(ref ArrayList objBreadCrumbs, int intTabId) { TabInfo objTab = null; TabController objTabController = new TabController(); TabCollection portalTabs = objTabController.GetTabsByPortal(PortalId); TabCollection hostTabs = objTabController.GetTabsByPortal(Null.NullInteger); bool blnFound = portalTabs.TryGetValue(intTabId, out objTab); if (!blnFound) { blnFound = hostTabs.TryGetValue(intTabId, out objTab); } if (blnFound) { objBreadCrumbs.Insert(0, objTab.Clone()); if (!Null.IsNull(objTab.ParentId)) { GetBreadCrumbsRecursively(ref objBreadCrumbs, objTab.ParentId); } } }
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); } } }
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); } }