private void Page_Load(object sender, System.EventArgs e) { // Obtain PortalSettings from Current Context PortalSettings portalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"]; // Dynamically Populate the Portal Site Name siteName.Text = portalSettings.PortalName; // If user logged in, customize welcome message if (Request.IsAuthenticated == true) { WelcomeMessage.Text = "Welcome " + Context.User.Identity.Name + "! <" + "span class=Accent" + ">|<" + "/span" + ">"; // if authentication mode is Cookie, provide a logoff link if (Context.User.Identity.AuthenticationType == "Forms") { LogoffLink = "<" + "span class=\"Accent\">|</span>\n" + "<" + "a href=" + Global.GetApplicationPath(Request) + "/Admin/Logoff.aspx class=SiteLink> Logoff" + "<" + "/a>"; } } // Dynamically render portal tab strip if (ShowTabs == true) { tabIndex = portalSettings.ActiveTab.TabIndex; // Build list of tabs to be shown to user ArrayList authorizedTabs = new ArrayList(); int addedTabs = 0; for (int i = 0; i < portalSettings.DesktopTabs.Count; i++) { TabStripDetails tab = (TabStripDetails)portalSettings.DesktopTabs[i]; if (PortalSecurity.IsInRoles(tab.AuthorizedRoles)) { authorizedTabs.Add(tab); } if (addedTabs == tabIndex) { tabs.SelectedIndex = addedTabs; } addedTabs++; } // Populate Tab List at Top of the Page with authorized tabs tabs.DataSource = authorizedTabs; tabs.DataBind(); } }
//********************************************************************* // // PopulateTabStrip method // // The PopulateTabStrip method is used to dynamically create and add // tabs for each tab view defined in the portal configuration. // //********************************************************************* private void PopulateTabStrip() { // Obtain PortalSettings from Current Context PortalSettings portalSettings = (PortalSettings)HttpContext.Current.Items["PortalSettings"]; for (int i = 0; i < portalSettings.MobileTabs.Count; i++) { // Create a MobilePortalTab control for the tab, // and add it to the tab view. TabStripDetails tab = (TabStripDetails)portalSettings.MobileTabs[i]; if (PortalSecurity.IsInRoles(tab.AuthorizedRoles)) { MobilePortalTab tabPanel = new MobilePortalTab(); tabPanel.Title = tab.TabName; TabView.Panes.Add(tabPanel); } } }
//********************************************************************* // // PortalSettings Constructor // // The PortalSettings Constructor encapsulates all of the logic // necessary to obtain configuration settings necessary to render // a Portal Tab view for a given request. // // These Portal Settings are stored within PortalCFG.xml, and are // fetched below by calling config.GetSiteSettings(). // The method config.GetSiteSettings() fills the SiteConfiguration // class, derived from a DataSet, which PortalSettings accesses. // //********************************************************************* public PortalSettings(int tabIndex, int tabId) { // Get the configuration data SiteConfiguration siteSettings = Configuration.GetSiteSettings(); // Read the Desktop Tab Information, and sort by Tab Order foreach (SiteConfiguration.TabRow tRow in siteSettings.Tab.Select("", "TabOrder")) { TabStripDetails tabDetails = new TabStripDetails(); tabDetails.TabId = tRow.TabId; tabDetails.TabName = tRow.TabName; tabDetails.TabOrder = tRow.TabOrder; tabDetails.AuthorizedRoles = tRow.AccessRoles; this.DesktopTabs.Add(tabDetails); } // If the PortalSettings.ActiveTab property is set to 0, change it to // the TabID of the first tab in the DesktopTabs collection if (this.ActiveTab.TabId == 0) { this.ActiveTab.TabId = ((TabStripDetails)this.DesktopTabs[0]).TabId; } // Read the Mobile Tab Information, and sort by Tab Order foreach (SiteConfiguration.TabRow mRow in siteSettings.Tab.Select("ShowMobile='true'", "TabOrder")) { TabStripDetails tabDetails = new TabStripDetails(); tabDetails.TabId = mRow.TabId; tabDetails.TabName = mRow.MobileTabName; tabDetails.AuthorizedRoles = mRow.AccessRoles; this.MobileTabs.Add(tabDetails); } // Read the Module Information for the current (Active) tab SiteConfiguration.TabRow activeTab = siteSettings.Tab.FindByTabId(tabId); // Get Modules for this Tab based on the Data Relation foreach (SiteConfiguration.ModuleRow moduleRow in activeTab.GetModuleRows()) { ModuleSettings moduleSettings = new ModuleSettings(); moduleSettings.ModuleTitle = moduleRow.ModuleTitle; moduleSettings.ModuleId = moduleRow.ModuleId; moduleSettings.ModuleDefId = moduleRow.ModuleDefId; moduleSettings.ModuleOrder = moduleRow.ModuleOrder; moduleSettings.TabId = tabId; moduleSettings.PaneName = moduleRow.PaneName; moduleSettings.AuthorizedEditRoles = moduleRow.EditRoles; moduleSettings.CacheTime = moduleRow.CacheTimeout; moduleSettings.ShowMobile = moduleRow.ShowMobile; // ModuleDefinition data SiteConfiguration.ModuleDefinitionRow modDefRow = siteSettings.ModuleDefinition.FindByModuleDefId(moduleSettings.ModuleDefId); moduleSettings.DesktopSrc = modDefRow.DesktopSourceFile; moduleSettings.MobileSrc = modDefRow.MobileSourceFile; this.ActiveTab.Modules.Add(moduleSettings); } // Sort the modules in order of ModuleOrder this.ActiveTab.Modules.Sort(); // Get the first row in the Global table SiteConfiguration.GlobalRow globalSettings = (SiteConfiguration.GlobalRow)siteSettings.Global.Rows[0]; // Read Portal global settings this.PortalId = globalSettings.PortalId; this.PortalName = globalSettings.PortalName; this.AlwaysShowEditButton = globalSettings.AlwaysShowEditButton; this.ActiveTab.TabIndex = tabIndex; this.ActiveTab.TabId = tabId; this.ActiveTab.TabOrder = activeTab.TabOrder; this.ActiveTab.MobileTabName = activeTab.MobileTabName; this.ActiveTab.AuthorizedRoles = activeTab.AccessRoles; this.ActiveTab.TabName = activeTab.TabName; this.ActiveTab.ShowMobile = activeTab.ShowMobile; }