public void GetActiveTab_Gets_Correct_Tab_If_Valid_Host_TabId() { //Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, CultureCode = Null.NullString }; var validTab = new TabInfo { TabID = HostTabId, PortalID = HostPortalId }; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab })); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); //Act var tab = controller.GetActiveTab(HostTabId, settings); //Assert Assert.AreEqual(validTab.TabID, tab.TabID); }
public void LoadPortal_Loads_Portal_Property_Values() { //Arrange var controller = new PortalSettingsController(); var portal = new PortalInfo() { Users = 2, Pages = 5, DefaultLanguage = Localization.SystemLocale, HomeDirectory = "Portals/0" }; var settings = new PortalSettings() { PortalId = ValidPortalId, CultureCode = Null.NullString }; //Act controller.LoadPortal(portal, settings); //Assert Assert.AreEqual(portal.AdminTabId, settings.AdminTabId); Assert.AreEqual(portal.AdministratorId, settings.AdministratorId); Assert.AreEqual(portal.AdministratorRoleId, settings.AdministratorRoleId); Assert.AreEqual(portal.AdministratorRoleName, settings.AdministratorRoleName); Assert.AreEqual(portal.BackgroundFile, settings.BackgroundFile); Assert.AreEqual(portal.BannerAdvertising, settings.BannerAdvertising); Assert.AreEqual(portal.CultureCode, settings.CultureCode); Assert.AreEqual(portal.Currency, settings.Currency); Assert.AreEqual(portal.Custom404TabId, settings.ErrorPage404); Assert.AreEqual(portal.Custom500TabId, settings.ErrorPage500); Assert.AreEqual(portal.DefaultLanguage, settings.DefaultLanguage); Assert.AreEqual(portal.Description, settings.Description); Assert.AreEqual(portal.Email, settings.Email); Assert.AreEqual(portal.ExpiryDate, settings.ExpiryDate); Assert.AreEqual(portal.FooterText, settings.FooterText); Assert.AreEqual(portal.GUID, settings.GUID); Assert.AreEqual(Globals.ApplicationPath + "/" + portal.HomeDirectory + "/", settings.HomeDirectory); Assert.AreEqual(portal.HomeDirectoryMapPath, settings.HomeDirectoryMapPath); Assert.AreEqual(Globals.ApplicationPath + "/" + portal.HomeSystemDirectory + "/", settings.HomeSystemDirectory); Assert.AreEqual(portal.HomeSystemDirectoryMapPath, settings.HomeSystemDirectoryMapPath); Assert.AreEqual(portal.HomeTabId, settings.HomeTabId); Assert.AreEqual(portal.HostFee, settings.HostFee); Assert.AreEqual(portal.HostSpace, settings.HostSpace); Assert.AreEqual(portal.KeyWords, settings.KeyWords); Assert.AreEqual(portal.LoginTabId, settings.LoginTabId); Assert.AreEqual(portal.LogoFile, settings.LogoFile); Assert.AreEqual(portal.PageQuota, settings.PageQuota); Assert.AreEqual(portal.Pages, settings.Pages); Assert.AreEqual(portal.PortalName, settings.PortalName); Assert.AreEqual(portal.RegisterTabId, settings.RegisterTabId); Assert.AreEqual(portal.RegisteredRoleId, settings.RegisteredRoleId); Assert.AreEqual(portal.RegisteredRoleName, settings.RegisteredRoleName); Assert.AreEqual(portal.SearchTabId, settings.SearchTabId); Assert.AreEqual(portal.SplashTabId, settings.SplashTabId); Assert.AreEqual(portal.SuperTabId, settings.SuperTabId); Assert.AreEqual(portal.UserQuota, settings.UserQuota); Assert.AreEqual(portal.UserRegistration, settings.UserRegistration); Assert.AreEqual(portal.UserTabId, settings.UserTabId); Assert.AreEqual(portal.Users, settings.Users); }
private string GenerateMarkup(Dictionary <string, string> Attributes) { try { PortalSettings ps = PortalController.Instance.GetCurrentSettings() as PortalSettings; IDictionary <string, object> Objects = new ExpandoObject() as IDictionary <string, object>; if (ps != null && ps.ActiveTab != null && ps.ActiveTab.BreadCrumbs == null) { PortalSettingsController controller = new PortalSettingsController(); controller.ConfigureActiveTab(ps); } if (ps != null && ps.ActiveTab != null && ps.ActiveTab.BreadCrumbs != null && ps.ActiveTab.BreadCrumbs.Count > 0) { Objects.Add("ActiveTab", ps.ActiveTab); Objects.Add("Request", HttpContext.Current.Request); string Template = RazorEngineManager.RenderTemplate(ExtensionInfo.GUID, BlockPath, Attributes["data-block-template"], Objects); Template = new DNNLocalizationEngine(null, ResouceFilePath, false).Parse(Template); return(Template); } return(string.Empty); } catch (Exception ex) { DotNetNuke.Services.Exceptions.Exceptions.LogException(ex); return(ex.Message); } }
public void GetActiveTab_Sets_StartDate_And_EndDate_Of_Tab_If_Not_Set() { // Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, CultureCode = Null.NullString }; var validTab = new TabInfo { TabID = ValidTabId, PortalID = ValidPortalId }; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab })); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); // Act var tab = controller.GetActiveTab(ValidTabId, settings); // Assert Assert.AreEqual(DateTime.MinValue, tab.StartDate); Assert.AreEqual(DateTime.MaxValue, tab.EndDate); }
public void ConfigureTab_Builds_Breadcrumbs_For_Tab() { // Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, CultureCode = Null.NullString }; var validTab = new TabInfo { TabID = ValidTabId, PortalID = ValidPortalId, SkinSrc = GlobalTabSkin }; settings.ActiveTab = validTab; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab })); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); this.mockHostController.Setup(c => c.GetString("DefaultPortalContainer")).Returns("DefaultPortalContainer"); // Act controller.ConfigureActiveTab(settings); // Assert Assert.NotNull(settings.ActiveTab.BreadCrumbs); Assert.AreEqual(1, settings.ActiveTab.BreadCrumbs.Count); }
public void GetActiveTab_Gets_Home_Tab_If_InValid_TabId_And_Home_Set() { //Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, HomeTabId = HomeTabId, CultureCode = Null.NullString }; var homeTabId = new TabInfo { TabID = HomeTabId, PortalID = ValidPortalId }; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(ValidPortalId)).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { homeTabId })); TabController.SetTestableInstance(mockTabController.Object); //Act var tab = controller.GetActiveTab(InValidTabId, settings); //Assert Assert.AreEqual(HomeTabId, tab.TabID); }
public void ConfigureTab_Uses_PortalSettings_DefaultSkin_If_SkinSrc_Not_Set() { // Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, DefaultPortalSkin = DefaultSkin, DefaultPortalContainer = DefaultContainer, CultureCode = Null.NullString }; var validTab = new TabInfo { TabID = ValidTabId, PortalID = ValidPortalId }; settings.ActiveTab = validTab; this.mockHostController.Setup(c => c.GetString("DefaultPortalSkin")).Returns(DefaultSkin); this.mockHostController.Setup(c => c.GetString("DefaultPortalContainer")).Returns("DefaultPortalContainer"); var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab })); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); // Act controller.ConfigureActiveTab(settings); // Assert Assert.AreEqual(DefaultSkin, settings.ActiveTab.SkinSrc); }
public void ConfigureTab_Uses_Tab_SkinSrc_If_SkinSrc_Set() { //Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, DefaultPortalSkin = DefaultSkin }; var validTab = new TabInfo { TabID = ValidTabId, PortalID = ValidPortalId, SkinSrc = TabSkin }; settings.ActiveTab = validTab; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab })); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); //Act controller.ConfigureActiveTab(settings); //Assert Assert.AreEqual(TabSkin, settings.ActiveTab.SkinSrc); }
public void LoadPortalSettings_Sets_TimeZone_Property_To_Local_TimeZone() { //Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings() { PortalId = ValidPortalId, CultureCode = Null.NullString }; var hostSettings = PortalSettingsControllerTestFactory.GetHostSettings(); var mockPortalController = new Mock <IPortalController>(); mockPortalController .Setup(c => c.GetPortalSettings(It.IsAny <int>())) .Returns(new Dictionary <string, string>()); PortalController.SetTestableInstance(mockPortalController.Object); var mockHostController = new Mock <IHostController>(); mockHostController.Setup(c => c.GetString(It.IsAny <string>())) .Returns((string s) => hostSettings[s]); mockHostController.Setup(c => c.GetString(It.IsAny <string>(), It.IsAny <string>())) .Returns((string s1, string s2) => hostSettings[s1]); mockHostController.Setup(c => c.GetBoolean(It.IsAny <string>(), It.IsAny <bool>())) .Returns((string s, bool b) => Boolean.Parse(hostSettings[s])); mockHostController.Setup(c => c.GetInteger(It.IsAny <string>(), It.IsAny <int>())) .Returns((string s, int i) => Int32.Parse(hostSettings[s])); HostController.RegisterInstance(mockHostController.Object); //Act controller.LoadPortalSettings(settings); //Assert Assert.AreEqual(TimeZoneInfo.Local, settings.TimeZone); }
public void ConfigureTab_Formats_Tab_ContainerSrc_If_Neccessary() { // Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, DefaultPortalContainer = DefaultContainer, CultureCode = Null.NullString }; var validTab = new TabInfo { TabID = ValidTabId, PortalID = ValidPortalId, ContainerSrc = GlobalTabContainer }; settings.ActiveTab = validTab; settings.ActiveTab.SkinSrc = TabSkin; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab })); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); // Act controller.ConfigureActiveTab(settings); // Assert Assert.AreEqual(SkinController.FormatSkinSrc(GlobalTabContainer, settings), settings.ActiveTab.ContainerSrc); }
public void LoadPortalSettings_Loads_Default_Value(Dictionary <string, string> testFields) { //Arrange var propertyName = testFields["PropertyName"]; var settingName = testFields["SettingName"]; var isHostDefault = Boolean.Parse(testFields["IsHostDefault"]); var defaultValue = testFields["DefaultValue"]; var controller = new PortalSettingsController(); var settings = new PortalSettings() { PortalId = ValidPortalId, CultureCode = Null.NullString }; var hostSettings = PortalSettingsControllerTestFactory.GetHostSettings(); var mockPortalController = new Mock <IPortalController>(); mockPortalController .Setup(c => c.GetPortalSettings(It.IsAny <int>())) .Returns(new Dictionary <string, string>()); PortalController.SetTestableInstance(mockPortalController.Object); var mockHostController = new Mock <IHostController>(); mockHostController.Setup(c => c.GetString(It.IsAny <string>())) .Returns((string s) => hostSettings[s]); mockHostController.Setup(c => c.GetString(It.IsAny <string>(), It.IsAny <string>())) .Returns((string s1, string s2) => hostSettings[s1]); mockHostController.Setup(c => c.GetBoolean(It.IsAny <string>(), It.IsAny <bool>())) .Returns((string s, bool b) => Boolean.Parse(hostSettings[s])); mockHostController.Setup(c => c.GetInteger(It.IsAny <string>(), It.IsAny <int>())) .Returns((string s, int i) => Int32.Parse(hostSettings[s])); mockHostController.Setup(c => c.GetInteger(It.IsAny <string>())) .Returns((string s) => Int32.Parse(hostSettings[s])); HostController.RegisterInstance(mockHostController.Object); if (isHostDefault) { defaultValue = hostSettings[settingName]; } //Act controller.LoadPortalSettings(settings); //Assert var property = settings.GetType().GetProperty(propertyName); var actualValue = property.GetValue(settings, null); if (actualValue is bool) { Assert.AreEqual(defaultValue, actualValue.ToString().ToLowerInvariant()); } else { Assert.AreEqual(defaultValue, actualValue.ToString()); } }
private bool ProcessMasterModules() { bool success = true; if (TabPermissionController.CanViewPage()) { // Versioning checks. if (!TabController.CurrentPage.HasAVisibleVersion) { Response.Redirect(Globals.NavigateURL(PortalSettings.ErrorPage404, string.Empty, "status=404")); } int urlVersion; if (TabVersionUtils.TryGetUrlVersion(out urlVersion)) { if (!TabVersionUtils.CanSeeVersionedPages()) { AddPageMessage(this, "", Localization.GetString("TabAccess.Error"), ModuleMessage.ModuleMessageType.YellowWarning); return(true); } if (TabVersionController.Instance.GetTabVersions(TabController.CurrentPage.TabID).All(tabVersion => tabVersion.Version != urlVersion)) { Response.Redirect(Globals.NavigateURL(PortalSettings.ErrorPage404, string.Empty, "status=404")); } } //check portal expiry date if (!CheckExpired()) { if ((PortalSettings.ActiveTab.StartDate < DateAndTime.Now && PortalSettings.ActiveTab.EndDate > DateAndTime.Now) || TabPermissionController.CanAdminPage() || Globals.IsLayoutMode()) { foreach (var objModule in PortalSettingsController.Instance().GetTabModules(PortalSettings)) { success = ProcessModule(objModule); } } else { AddPageMessage(this, "", Localization.GetString("TabAccess.Error"), ModuleMessage.ModuleMessageType.YellowWarning); } } else { AddPageMessage(this, "", string.Format(Localization.GetString("ContractExpired.Error"), PortalSettings.PortalName, Globals.GetMediumDate(PortalSettings.ExpiryDate.ToString()), PortalSettings.Email), ModuleMessage.ModuleMessageType.RedError); } } else { Response.Redirect(Globals.AccessDeniedURL(Localization.GetString("TabAccess.Error")), true); } return(success); }
public void LoadPortalSettings_Loads_Setting_Value(Dictionary <string, string> testFields) { //Arrange var propertyName = testFields["PropertyName"]; var settingName = testFields["SettingName"]; var settingValue = testFields["SettingValue"]; var propertyValue = (testFields.ContainsKey("PropertyValue")) ? testFields["PropertyValue"] : settingValue; var controller = new PortalSettingsController(); var settings = new PortalSettings() { PortalId = ValidPortalId }; var hostSettings = PortalSettingsControllerTestFactory.GetHostSettings(); var mockPortalController = new Mock <IPortalController>(); mockPortalController .Setup(c => c.GetPortalSettings(It.IsAny <int>())) .Returns(new Dictionary <string, string> { { settingName, settingValue } }); PortalController.SetTestableInstance(mockPortalController.Object); var mockHostController = new Mock <IHostController>(); mockHostController.Setup(c => c.GetString(It.IsAny <string>())) .Returns((string s) => hostSettings[s]); mockHostController.Setup(c => c.GetString(It.IsAny <string>(), It.IsAny <string>())) .Returns((string s1, string s2) => hostSettings[s1]); mockHostController.Setup(c => c.GetBoolean(It.IsAny <string>(), It.IsAny <bool>())) .Returns((string s, bool b) => Boolean.Parse(hostSettings[s])); mockHostController.Setup(c => c.GetInteger(It.IsAny <string>(), It.IsAny <int>())) .Returns((string s, int i) => Int32.Parse(hostSettings[s])); HostController.RegisterInstance(mockHostController.Object); //Act controller.LoadPortalSettings(settings); //Assert var property = settings.GetType().GetProperty(propertyName); var actualValue = property.GetValue(settings, null); if (actualValue is bool) { Assert.AreEqual(propertyValue, actualValue.ToString().ToLower()); } else { Assert.AreEqual(propertyValue, actualValue.ToString()); } }
public void ConfigureTab_Builds_Breadcrumbs_For_Tab_And_Parent() { //Arrange var controller = new PortalSettingsController(); var settings = new PortalSettings { PortalId = ValidPortalId, CultureCode = Null.NullString }; var validTab = new TabInfo { TabID = ValidTabId, PortalID = ValidPortalId, ParentId = ParentTabId }; var parentTab = new TabInfo { TabID = ParentTabId, PortalID = ValidPortalId }; settings.ActiveTab = validTab; settings.ActiveTab.SkinSrc = TabSkin; var mockLocaleController = new Mock <ILocaleController>(); mockLocaleController.Setup(c => c.GetLocales(It.IsAny <int>())).Returns(new Dictionary <string, Locale>()); LocaleController.RegisterInstance(mockLocaleController.Object); var mockTabController = new Mock <ITabController>(); mockTabController.Setup(c => c.GetTabsByPortal(ValidPortalId)).Returns(new TabCollection(new List <TabInfo> { validTab, parentTab })); mockTabController.Setup(c => c.GetTabsByPortal(HostPortalId)).Returns(new TabCollection()); TabController.SetTestableInstance(mockTabController.Object); var mockHostController = new Mock <IHostController>(); mockHostController.Setup(c => c.GetString("DefaultPortalContainer")).Returns("DefaultPortalContainer"); HostController.RegisterInstance(mockHostController.Object); //Act controller.ConfigureActiveTab(settings); //Assert var actualParent = settings.ActiveTab.BreadCrumbs[0] as TabInfo; var actualTab = settings.ActiveTab.BreadCrumbs[1] as TabInfo; Assert.AreEqual(2, settings.ActiveTab.BreadCrumbs.Count); Assert.AreEqual(ValidTabId, actualTab.TabID); Assert.AreEqual(ParentTabId, actualParent.TabID); }
private bool ProcessMasterModules() { bool success = true; if (TabPermissionController.CanViewPage()) { // Versioning checks. if (!TabController.CurrentPage.HasAVisibleVersion) { Response.Redirect(Globals.NavigateURL(PortalSettings.ErrorPage404, string.Empty, "status=404")); } int urlVersion; if (TabVersionUtils.TryGetUrlVersion(out urlVersion)) { if (!TabVersionUtils.CanSeeVersionedPages()) { AddPageMessage(this, "", Localization.GetString("TabAccess.Error"), ModuleMessage.ModuleMessageType.YellowWarning); return(true); } if (TabVersionController.Instance.GetTabVersions(TabController.CurrentPage.TabID).All(tabVersion => tabVersion.Version != urlVersion)) { Response.Redirect(Globals.NavigateURL(PortalSettings.ErrorPage404, string.Empty, "status=404")); } } //check portal expiry date if (!CheckExpired()) { if ((PortalSettings.ActiveTab.StartDate < DateAndTime.Now && PortalSettings.ActiveTab.EndDate > DateAndTime.Now) || TabPermissionController.CanAdminPage() || Globals.IsLayoutMode()) { // Check for MVC async call if (Request.QueryString.AllKeys.Contains("moduleId") && Request.QueryString.AllKeys.Contains("controller") & Request.QueryString.AllKeys.Contains("action") && Request.QueryString.AllKeys.Contains("async") && Request.QueryString["async"].ToLower() == "true") { // Get module ID var moduleId = 0; success = int.TryParse(Request.QueryString["moduleId"], out moduleId); if (success) { // Get module info foreach (var objModule in PortalSettingsController.Instance().GetTabModules(PortalSettings)) { if (objModule.ModuleID == moduleId) { // process only this module success = ProcessModule(objModule); } } } } else { foreach (var objModule in PortalSettingsController.Instance().GetTabModules(PortalSettings)) { success = ProcessModule(objModule); } } } else { AddPageMessage(this, "", Localization.GetString("TabAccess.Error"), ModuleMessage.ModuleMessageType.YellowWarning); } } else { AddPageMessage(this, "", string.Format(Localization.GetString("ContractExpired.Error"), PortalSettings.PortalName, Globals.GetMediumDate(PortalSettings.ExpiryDate.ToString()), PortalSettings.Email), ModuleMessage.ModuleMessageType.RedError); } } else { //If request localized page which haven't complete translate yet, redirect to default language version. var redirectUrl = Globals.AccessDeniedURL(Localization.GetString("TabAccess.Error")); Locale defaultLocale = LocaleController.Instance.GetDefaultLocale(PortalSettings.PortalId); if (PortalSettings.ContentLocalizationEnabled && TabController.CurrentPage.CultureCode != defaultLocale.Code) { redirectUrl = new LanguageTokenReplace { Language = defaultLocale.Code }.ReplaceEnvironmentTokens("[URL]"); } Response.Redirect(redirectUrl, true); } return(success); }
/// ----------------------------------------------------------------------------- /// <summary> /// /// </summary> /// <remarks> /// - Obtain PortalSettings from Current Context /// - redirect to a specific tab based on name /// - if first time loading this page then reload to avoid caching /// - set page title and stylesheet /// - check to see if we should show the Assembly Version in Page Title /// - set the background image if there is one selected /// - set META tags, copyright, keywords and description /// </remarks> /// <history> /// [sun1] 1/19/2004 Created /// </history> /// ----------------------------------------------------------------------------- private void InitializePage() { //Configure the ActiveTab with Skin/Container information PortalSettingsController.Instance().ConfigureActiveTab(PortalSettings); //redirect to a specific tab based on name if (!String.IsNullOrEmpty(Request.QueryString["tabname"])) { TabInfo tab = TabController.Instance.GetTabByName(Request.QueryString["TabName"], PortalSettings.PortalId); if (tab != null) { var parameters = new List <string>(); //maximum number of elements for (int intParam = 0; intParam <= Request.QueryString.Count - 1; intParam++) { switch (Request.QueryString.Keys[intParam].ToLower()) { case "tabid": case "tabname": break; default: parameters.Add( Request.QueryString.Keys[intParam] + "=" + Request.QueryString[intParam]); break; } } Response.Redirect(Globals.NavigateURL(tab.TabID, Null.NullString, parameters.ToArray()), true); } else { //404 Error - Redirect to ErrorPage Exceptions.ProcessHttpException(Request); } } if (Request.IsAuthenticated) { switch (Host.AuthenticatedCacheability) { case "0": Response.Cache.SetCacheability(HttpCacheability.NoCache); break; case "1": Response.Cache.SetCacheability(HttpCacheability.Private); break; case "2": Response.Cache.SetCacheability(HttpCacheability.Public); break; case "3": Response.Cache.SetCacheability(HttpCacheability.Server); break; case "4": Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache); break; case "5": Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate); break; } } //page comment if (Host.DisplayCopyright) { Comment += string.Concat(Environment.NewLine, "<!--*********************************************-->", Environment.NewLine, "<!-- DNN Platform - http://www.dnnsoftware.com -->", Environment.NewLine, "<!-- Copyright (c) 2002-2015, by DNN Corporation -->", Environment.NewLine, "<!--*********************************************-->", Environment.NewLine); } //Only insert the header control if a comment is needed if (!String.IsNullOrWhiteSpace(Comment)) { Page.Header.Controls.AddAt(0, new LiteralControl(Comment)); } if (PortalSettings.ActiveTab.PageHeadText != Null.NullString && !Globals.IsAdminControl()) { Page.Header.Controls.Add(new LiteralControl(PortalSettings.ActiveTab.PageHeadText)); } if (!string.IsNullOrEmpty(PortalSettings.PageHeadText)) { metaPanel.Controls.Add(new LiteralControl(PortalSettings.PageHeadText)); } //set page title if (UrlUtils.InPopUp()) { var strTitle = new StringBuilder(PortalSettings.PortalName); var slaveModule = UIUtilities.GetSlaveModule(PortalSettings.ActiveTab.TabID); //Skip is popup is just a tab (no slave module) if (slaveModule.DesktopModuleID != Null.NullInteger) { var control = ModuleControlFactory.CreateModuleControl(slaveModule) as IModuleControl; control.LocalResourceFile = string.Concat( slaveModule.ModuleControl.ControlSrc.Replace(Path.GetFileName(slaveModule.ModuleControl.ControlSrc), string.Empty), Localization.LocalResourceDirectory, "/", Path.GetFileName(slaveModule.ModuleControl.ControlSrc)); var title = Localization.LocalizeControlTitle(control); strTitle.Append(string.Concat(" > ", PortalSettings.ActiveTab.LocalizedTabName)); strTitle.Append(string.Concat(" > ", title)); } else { strTitle.Append(string.Concat(" > ", PortalSettings.ActiveTab.LocalizedTabName)); } //Set to page Title = strTitle.ToString(); } else { //If tab is named, use that title, otherwise build it out via breadcrumbs if (!string.IsNullOrEmpty(PortalSettings.ActiveTab.Title)) { Title = PortalSettings.ActiveTab.Title; } else { //Elected for SB over true concatenation here due to potential for long nesting depth var strTitle = new StringBuilder(PortalSettings.PortalName); foreach (TabInfo tab in PortalSettings.ActiveTab.BreadCrumbs) { strTitle.Append(string.Concat(" > ", tab.TabName)); } Title = strTitle.ToString(); } } //set the background image if there is one selected if (!UrlUtils.InPopUp() && FindControl("Body") != null) { if (!string.IsNullOrEmpty(PortalSettings.BackgroundFile)) { var fileInfo = GetBackgroundFileInfo(); var url = FileManager.Instance.GetUrl(fileInfo); ((HtmlGenericControl)FindControl("Body")).Attributes["style"] = string.Concat("background-image: url('", url, "')"); } } //META Refresh // Only autorefresh the page if we are in VIEW-mode and if we aren't displaying some module's subcontrol. if (PortalSettings.ActiveTab.RefreshInterval > 0 && this.PortalSettings.UserMode == PortalSettings.Mode.View && Request.QueryString["ctl"] == null) { MetaRefresh.Content = PortalSettings.ActiveTab.RefreshInterval.ToString(); MetaRefresh.Visible = true; } else { MetaRefresh.Visible = false; } //META description if (!string.IsNullOrEmpty(PortalSettings.ActiveTab.Description)) { Description = PortalSettings.ActiveTab.Description; } else { Description = PortalSettings.Description; } //META keywords if (!string.IsNullOrEmpty(PortalSettings.ActiveTab.KeyWords)) { KeyWords = PortalSettings.ActiveTab.KeyWords; } else { KeyWords = PortalSettings.KeyWords; } if (Host.DisplayCopyright) { KeyWords += ",DotNetNuke,DNN"; } //META copyright if (!string.IsNullOrEmpty(PortalSettings.FooterText)) { Copyright = PortalSettings.FooterText.Replace("[year]", DateTime.Now.Year.ToString()); } else { Copyright = string.Concat("Copyright (c) ", DateTime.Now.Year, " by ", PortalSettings.PortalName); } //META generator if (Host.DisplayCopyright) { Generator = "DotNetNuke "; } else { Generator = ""; } //META Robots - hide it inside popups and if PageHeadText of current tab already contains a robots meta tag if (!UrlUtils.InPopUp() && !Regex.IsMatch(PortalSettings.ActiveTab.PageHeadText, "<meta([^>])+name=('|\")robots('|\")", RegexOptions.IgnoreCase | RegexOptions.Multiline) && !Regex.IsMatch(PortalSettings.PageHeadText, "<meta([^>])+name=('|\")robots('|\")", RegexOptions.IgnoreCase | RegexOptions.Multiline) ) { MetaRobots.Visible = true; var allowIndex = true; if ((PortalSettings.ActiveTab.TabSettings.ContainsKey("AllowIndex") && bool.TryParse(PortalSettings.ActiveTab.TabSettings["AllowIndex"].ToString(), out allowIndex) && !allowIndex) || (Request.QueryString["ctl"] != null && (Request.QueryString["ctl"] == "Login" || Request.QueryString["ctl"] == "Register"))) { MetaRobots.Content = "NOINDEX, NOFOLLOW"; } else { MetaRobots.Content = "INDEX, FOLLOW"; } } //NonProduction Label Injection if (NonProductionVersion() && Host.DisplayBetaNotice && !UrlUtils.InPopUp()) { string versionString = string.Format(" ({0} Version: {1})", DotNetNukeContext.Current.Application.Status, DotNetNukeContext.Current.Application.Version); Title += versionString; } //register DNN SkinWidgets Inititialization scripts if (PortalSettings.EnableSkinWidgets & !UrlUtils.InPopUp()) { jQuery.RequestRegistration(); // don't use the new API to register widgets until we better understand their asynchronous script loading requirements. ClientAPI.RegisterStartUpScript(Page, "initWidgets", string.Format("<script type=\"text/javascript\" src=\"{0}\" ></script>", ResolveUrl("~/Resources/Shared/scripts/initWidgets.js"))); } //register the custom stylesheet of current page if (PortalSettings.ActiveTab.TabSettings.ContainsKey("CustomStylesheet") && !string.IsNullOrEmpty(PortalSettings.ActiveTab.TabSettings["CustomStylesheet"].ToString())) { var customStylesheet = Path.Combine(PortalSettings.HomeDirectory, PortalSettings.ActiveTab.TabSettings["CustomStylesheet"].ToString()); ClientResourceManager.RegisterStyleSheet(this, customStylesheet); } }
/// ----------------------------------------------------------------------------- /// <summary> /// /// </summary> /// <remarks> /// - Obtain PortalSettings from Current Context /// - redirect to a specific tab based on name /// - if first time loading this page then reload to avoid caching /// - set page title and stylesheet /// - check to see if we should show the Assembly Version in Page Title /// - set the background image if there is one selected /// - set META tags, copyright, keywords and description /// </remarks> /// ----------------------------------------------------------------------------- private void InitializePage() { //There could be a pending installation/upgrade process if (InstallBlocker.Instance.IsInstallInProgress()) { Exceptions.ProcessHttpException(new HttpException(503, Localization.GetString("SiteAccessedWhileInstallationWasInProgress.Error", Localization.GlobalResourceFile))); } //Configure the ActiveTab with Skin/Container information PortalSettingsController.Instance().ConfigureActiveTab(PortalSettings); //redirect to a specific tab based on name if (!String.IsNullOrEmpty(Request.QueryString["tabname"])) { TabInfo tab = TabController.Instance.GetTabByName(Request.QueryString["TabName"], PortalSettings.PortalId); if (tab != null) { var parameters = new List <string>(); //maximum number of elements for (int intParam = 0; intParam <= Request.QueryString.Count - 1; intParam++) { switch (Request.QueryString.Keys[intParam].ToLowerInvariant()) { case "tabid": case "tabname": break; default: parameters.Add( Request.QueryString.Keys[intParam] + "=" + Request.QueryString[intParam]); break; } } Response.Redirect(NavigationManager.NavigateURL(tab.TabID, Null.NullString, parameters.ToArray()), true); } else { //404 Error - Redirect to ErrorPage Exceptions.ProcessHttpException(Request); } } string cacheability = Request.IsAuthenticated ? Host.AuthenticatedCacheability : Host.UnauthenticatedCacheability; switch (cacheability) { case "0": Response.Cache.SetCacheability(HttpCacheability.NoCache); break; case "1": Response.Cache.SetCacheability(HttpCacheability.Private); break; case "2": Response.Cache.SetCacheability(HttpCacheability.Public); break; case "3": Response.Cache.SetCacheability(HttpCacheability.Server); break; case "4": Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache); break; case "5": Response.Cache.SetCacheability(HttpCacheability.ServerAndPrivate); break; } //Only insert the header control if a comment is needed if (!String.IsNullOrWhiteSpace(Comment)) { Page.Header.Controls.AddAt(0, new LiteralControl(Comment)); } if (PortalSettings.ActiveTab.PageHeadText != Null.NullString && !Globals.IsAdminControl()) { Page.Header.Controls.Add(new LiteralControl(PortalSettings.ActiveTab.PageHeadText)); } if (!string.IsNullOrEmpty(PortalSettings.PageHeadText)) { metaPanel.Controls.Add(new LiteralControl(PortalSettings.PageHeadText)); } //set page title if (UrlUtils.InPopUp()) { var strTitle = new StringBuilder(PortalSettings.PortalName); var slaveModule = UIUtilities.GetSlaveModule(PortalSettings.ActiveTab.TabID); //Skip is popup is just a tab (no slave module) if (slaveModule.DesktopModuleID != Null.NullInteger) { var control = ModuleControlFactory.CreateModuleControl(slaveModule) as IModuleControl; string extension = Path.GetExtension(slaveModule.ModuleControl.ControlSrc.ToLowerInvariant()); switch (extension) { case ".mvc": var segments = slaveModule.ModuleControl.ControlSrc.Replace(".mvc", "").Split('/'); control.LocalResourceFile = String.Format("~/DesktopModules/MVC/{0}/{1}/{2}.resx", slaveModule.DesktopModule.FolderName, Localization.LocalResourceDirectory, segments[0]); break; default: control.LocalResourceFile = string.Concat( slaveModule.ModuleControl.ControlSrc.Replace( Path.GetFileName(slaveModule.ModuleControl.ControlSrc), string.Empty), Localization.LocalResourceDirectory, "/", Path.GetFileName(slaveModule.ModuleControl.ControlSrc)); break; } var title = Localization.LocalizeControlTitle(control); strTitle.Append(string.Concat(" > ", PortalSettings.ActiveTab.LocalizedTabName)); strTitle.Append(string.Concat(" > ", title)); } else { strTitle.Append(string.Concat(" > ", PortalSettings.ActiveTab.LocalizedTabName)); } //Set to page Title = strTitle.ToString(); } else { //If tab is named, use that title, otherwise build it out via breadcrumbs if (!string.IsNullOrEmpty(PortalSettings.ActiveTab.Title)) { Title = PortalSettings.ActiveTab.Title; } else { //Elected for SB over true concatenation here due to potential for long nesting depth var strTitle = new StringBuilder(PortalSettings.PortalName); foreach (TabInfo tab in PortalSettings.ActiveTab.BreadCrumbs) { strTitle.Append(string.Concat(" > ", tab.TabName)); } Title = strTitle.ToString(); } } //set the background image if there is one selected if (!UrlUtils.InPopUp() && FindControl("Body") != null) { if (!string.IsNullOrEmpty(PortalSettings.BackgroundFile)) { var fileInfo = GetBackgroundFileInfo(); var url = FileManager.Instance.GetUrl(fileInfo); ((HtmlGenericControl)FindControl("Body")).Attributes["style"] = string.Concat("background-image: url('", url, "')"); } } //META Refresh // Only autorefresh the page if we are in VIEW-mode and if we aren't displaying some module's subcontrol. if (PortalSettings.ActiveTab.RefreshInterval > 0 && this.PortalSettings.UserMode == PortalSettings.Mode.View && Request.QueryString["ctl"] == null) { MetaRefresh.Content = PortalSettings.ActiveTab.RefreshInterval.ToString(); MetaRefresh.Visible = true; } else { MetaRefresh.Visible = false; } //META description if (!string.IsNullOrEmpty(PortalSettings.ActiveTab.Description)) { Description = PortalSettings.ActiveTab.Description; } else { Description = PortalSettings.Description; } //META keywords if (!string.IsNullOrEmpty(PortalSettings.ActiveTab.KeyWords)) { KeyWords = PortalSettings.ActiveTab.KeyWords; } else { KeyWords = PortalSettings.KeyWords; } //META copyright if (!string.IsNullOrEmpty(PortalSettings.FooterText)) { Copyright = PortalSettings.FooterText.Replace("[year]", DateTime.Now.Year.ToString()); } else { Copyright = string.Concat("Copyright (c) ", DateTime.Now.Year, " by ", PortalSettings.PortalName); } //META generator Generator = ""; //META Robots - hide it inside popups and if PageHeadText of current tab already contains a robots meta tag if (!UrlUtils.InPopUp() && !(HeaderTextRegex.IsMatch(PortalSettings.ActiveTab.PageHeadText) || HeaderTextRegex.IsMatch(PortalSettings.PageHeadText))) { MetaRobots.Visible = true; var allowIndex = true; if ((PortalSettings.ActiveTab.TabSettings.ContainsKey("AllowIndex") && bool.TryParse(PortalSettings.ActiveTab.TabSettings["AllowIndex"].ToString(), out allowIndex) && !allowIndex) || (Request.QueryString["ctl"] != null && (Request.QueryString["ctl"] == "Login" || Request.QueryString["ctl"] == "Register"))) { MetaRobots.Content = "NOINDEX, NOFOLLOW"; } else { MetaRobots.Content = "INDEX, FOLLOW"; } } //NonProduction Label Injection if (NonProductionVersion() && Host.DisplayBetaNotice && !UrlUtils.InPopUp()) { string versionString = string.Format(" ({0} Version: {1})", DotNetNukeContext.Current.Application.Status, DotNetNukeContext.Current.Application.Version); Title += versionString; } //register the custom stylesheet of current page if (PortalSettings.ActiveTab.TabSettings.ContainsKey("CustomStylesheet") && !string.IsNullOrEmpty(PortalSettings.ActiveTab.TabSettings["CustomStylesheet"].ToString())) { var customStylesheet = Path.Combine(PortalSettings.HomeDirectory, PortalSettings.ActiveTab.TabSettings["CustomStylesheet"].ToString()); ClientResourceManager.RegisterStyleSheet(this, customStylesheet); } // Cookie Consent if (PortalSettings.ShowCookieConsent) { ClientAPI.RegisterClientVariable(this, "cc_morelink", PortalSettings.CookieMoreLink, true); ClientAPI.RegisterClientVariable(this, "cc_message", Localization.GetString("cc_message", Localization.GlobalResourceFile), true); ClientAPI.RegisterClientVariable(this, "cc_dismiss", Localization.GetString("cc_dismiss", Localization.GlobalResourceFile), true); ClientAPI.RegisterClientVariable(this, "cc_link", Localization.GetString("cc_link", Localization.GlobalResourceFile), true); ClientResourceManager.RegisterScript(Page, "~/Resources/Shared/Components/CookieConsent/cookieconsent.min.js", FileOrder.Js.DnnControls); ClientResourceManager.RegisterStyleSheet(Page, "~/Resources/Shared/Components/CookieConsent/cookieconsent.min.css", FileOrder.Css.ResourceCss); ClientResourceManager.RegisterScript(Page, "~/js/dnn.cookieconsent.js", FileOrder.Js.DefaultPriority); } }
private bool ProcessMasterModules() { bool success = true; if (TabPermissionController.CanViewPage()) { // We need to ensure that Content Item exists since in old versions Content Items are not needed for tabs this.EnsureContentItemForTab(this.PortalSettings.ActiveTab); // Versioning checks. if (!TabController.CurrentPage.HasAVisibleVersion) { this.HandleAccesDenied(true); } int urlVersion; if (TabVersionUtils.TryGetUrlVersion(out urlVersion)) { if (!TabVersionUtils.CanSeeVersionedPages()) { this.HandleAccesDenied(false); return(true); } if (TabVersionController.Instance.GetTabVersions(TabController.CurrentPage.TabID).All(tabVersion => tabVersion.Version != urlVersion)) { this.Response.Redirect(this.NavigationManager.NavigateURL(this.PortalSettings.ErrorPage404, string.Empty, "status=404")); } } // check portal expiry date if (!this.CheckExpired()) { if ((this.PortalSettings.ActiveTab.StartDate < DateAndTime.Now && this.PortalSettings.ActiveTab.EndDate > DateAndTime.Now) || TabPermissionController.CanAdminPage() || Globals.IsLayoutMode()) { foreach (var objModule in PortalSettingsController.Instance().GetTabModules(this.PortalSettings)) { success = this.ProcessModule(objModule); } } else { this.HandleAccesDenied(false); } } else { AddPageMessage( this, string.Empty, string.Format(Localization.GetString("ContractExpired.Error"), this.PortalSettings.PortalName, Globals.GetMediumDate(this.PortalSettings.ExpiryDate.ToString(CultureInfo.InvariantCulture)), this.PortalSettings.Email), ModuleMessage.ModuleMessageType.RedError); } } else { // If request localized page which haven't complete translate yet, redirect to default language version. var redirectUrl = Globals.AccessDeniedURL(Localization.GetString("TabAccess.Error")); // Current locale will use default if did'nt find any Locale currentLocale = LocaleController.Instance.GetCurrentLocale(this.PortalSettings.PortalId); if (this.PortalSettings.ContentLocalizationEnabled && TabController.CurrentPage.CultureCode != currentLocale.Code) { redirectUrl = new LanguageTokenReplace { Language = currentLocale.Code }.ReplaceEnvironmentTokens("[URL]"); } this.Response.Redirect(redirectUrl, true); } return(success); }