/// <summary> /// Reloads data. /// </summary> public void ReloadData() { // Get data DataSet ds = SettingsCategoryInfoProvider.GetChildSettingsCategories(CategoryName, "CategoryIsGroup = 1"); Controls.Clear(); if (!DataHelper.DataSourceIsEmpty(ds)) { DataRowCollection rows = ds.Tables[0].Rows; foreach (DataRow row in rows) { // Create new panel with info about subcategory var sci = new SettingsCategoryInfo(row); CMSUserControl catPanel = CreatePanelForCategory(sci); catPanel.ID = ControlsHelper.GetUniqueID(this, "CategoryPanel_" + ValidationHelper.GetIdentifier(sci.CategoryName)); Controls.Add(catPanel); } } }
/// <summary> /// Page_Load - Set properties for current control. /// </summary> protected void Page_Load(object sender, EventArgs e) { try { // Check stop processing if (this.StopProcessing) { return; } EnsureUnsubscription(); if (!this.SearchResult) { ForumContext.GroupID = this.GroupID; ForumContext.ForumID = this.ForumID; ForumContext.CommunityGroupID = this.CommunityGroupID; } // If search result control, check whether search is performed if (this.SearchResult && (ForumContext.CurrentState != ForumStateEnum.Search)) { return; } // Get current state currentState = CheckPermissions(ForumContext.CurrentState); if (currentState != ForumStateEnum.Search) { // Group if (startingMode == 0) { // Check whether forum is defined if ((ForumContext.CurrentForum != null) && (currentState != ForumStateEnum.Forums)) { // For nested level call request to single display if ((ForumContext.CurrentGroup != null) && (ForumContext.CurrentForum.ForumGroupID == ForumContext.CurrentGroup.GroupID)) { ForumContext.DisplayOnlyMe(this); } else { // Hide current forum because ids not match return; } } } // Forum else if (startingMode == 1) { // Hide all others forums ForumContext.DisplayOnlyMe(this); } else { // Hide forum because none of mandatory property was set return; } } // Display correspondent control with dependence on current mode switch (currentState) { // Threads case ForumStateEnum.Threads: ctrl = LoadControl(defaultPath + ForumLayout + "/Threads.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "threadsElem", ctrl); break; // Thread case ForumStateEnum.Thread: // Log thread views if ((ForumContext.CurrentThread != null) && (!QueryHelper.Contains("tpage"))) { ThreadViewCounter.LogThreadView(ForumContext.CurrentThread.PostId); } ctrl = LoadControl(defaultPath + ForumLayout + "/Thread.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "threadElem", ctrl); break; // New post, reply or edit post case ForumStateEnum.NewThread: case ForumStateEnum.ReplyToPost: case ForumStateEnum.EditPost: ctrl = LoadControl(defaultPath + ForumLayout + "/ThreadEdit.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "editElem", ctrl); break; // Subscription to forum or subscription to post case ForumStateEnum.NewSubscription: case ForumStateEnum.SubscribeToPost: ctrl = LoadControl(defaultPath + ForumLayout + "/SubscriptionEdit.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "subscriptionElem", ctrl); break; // Forums case ForumStateEnum.Forums: ctrl = LoadControl(defaultPath + ForumLayout + "/Forums.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "forumsElem", ctrl); break; case ForumStateEnum.Attachments: ctrl = LoadControl(defaultPath + ForumLayout + "/Attachments.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "attachmentElem", ctrl); break; case ForumStateEnum.Search: if (this.SearchResult) { ctrl = LoadControl(defaultPath + ForumLayout + "/SearchResults.ascx"); ctrl.ID = ControlsHelper.GetUniqueID(this.plcForum, "searchElem", ctrl); } else { return; } break; case ForumStateEnum.AccessDenied: this.Visible = false; return; // Unknown case ForumStateEnum.Unknown: if (!this.SearchResult) { throw new Exception("[Forum divider]: Unknown forum state."); } return; } // Clear controls collection plcForum.Controls.Clear(); // Add loaded control to the control collection plcForum.Controls.Add(ctrl); // Get forum viewer control ForumViewer frmv = ctrl as ForumViewer; // If control exists set forum properties if (frmv != null) { CopyValues(frmv); } } catch (Exception ex) { lblError.Visible = true; lblError.Text = ex.Message; } }