/// <summary> /// Reloads the data of the forum control. /// </summary> public override void ReloadData() { base.ReloadData(); ForumContext.GroupID = GroupID; // Create where condition reflecting permissions string where = ""; if (HideForumForUnauthorized) { where = ForumInfoProvider.CombineSecurityWhereCondition("(ForumOpen = 1) AND (ForumGroupID = " + GroupID + ")", CommunityGroupID); } else { where = "(ForumOpen = 1) AND (ForumGroupID = " + GroupID + ")"; } listForums.OuterData = ForumContext.CurrentGroup; listForums.DataSource = ForumInfoProvider.GetForums().Where(where).OrderBy("ForumOrder ASC, ForumName ASC"); listForums.DataBind(); }
/// <summary> /// Reloads the data of the forum control. /// </summary> public override void ReloadData() { base.ReloadData(); ForumContext.GroupID = GroupID; // Create where condition reflecting permissions string where = ""; // Show all forums for group admin if (HideForumForUnauthorized) { where = ForumInfoProvider.CombineSecurityWhereCondition("(ForumOpen = 1) AND (ForumGroupID = " + GroupID + ")", CommunityGroupID); } else { where = "(ForumOpen = 1) AND (ForumGroupID = " + GroupID + ")"; } if (ForumContext.CurrentGroup != null) { listForums.OuterData = ForumContext.CurrentGroup; listForums.DataSource = ForumInfoProvider.GetForums(where, "ForumOrder ASC, ForumName ASC", 0, null); // Hide control for no forums found if (DataHelper.DataSourceIsEmpty(listForums.DataSource)) { Visible = false; } listForums.DataBind(); } else { Visible = false; } }
/// <summary> /// Initializes the control properties. /// </summary> protected void SetupControl() { imgTextHint.ImageUrl = GetImageUrl("Design/Forums/hint.gif"); imgTextHint.AlternateText = "Hint"; ScriptHelper.AppendTooltip(imgTextHint, GetString("ForumSearch.SearchTextHint"), "help"); btnSearch.Text = GetString("general.search"); if (EnableForumSelection) { plcForums.Visible = true; string selected = ";" + QueryHelper.GetString("searchforums", "") + ";"; bool allForums = QueryHelper.GetBoolean("allforums", false); ForumPostsDataSource fpd = new ForumPostsDataSource(); fpd.CacheMinutes = 0; fpd.SelectedColumns = "GroupID, GroupDisplayName, ForumID, ForumDisplayName,GroupOrder, ForumOrder, ForumName "; fpd.Distinct = true; fpd.SelectOnlyApproved = false; fpd.SiteName = SiteContext.CurrentSiteName; string where = "(GroupGroupID IS NULL) AND (GroupName != 'adhocforumgroup') AND (ForumOpen=1)"; // Get only selected forum groups if (!String.IsNullOrEmpty(ForumGroups)) { string groups = ""; foreach (string group in ForumGroups.Split(';')) { groups += " '" + SqlHelper.GetSafeQueryString(group) + "',"; } // Add new part to where condition where += " AND (GroupName IN (" + groups.TrimEnd(',') + "))"; } if (HideForumForUnauthorized) { where = ForumInfoProvider.CombineSecurityWhereCondition(where, 0); } fpd.WhereCondition = where; fpd.OrderBy = "GroupOrder, ForumOrder ASC, ForumName ASC"; DataSet ds = fpd.DataSource as DataSet; if (!DataHelper.DataSourceIsEmpty(ds)) { int oldGroup = -1; foreach (DataRow dr in ds.Tables[0].Rows) { if (oldGroup != ValidationHelper.GetInteger(dr["GroupID"], 0)) { ListItem li = new ListItem(ResHelper.LocalizeString(Convert.ToString(dr["GroupDisplayName"])), ""); li.Attributes.Add("disabled", "disabled"); if (!listForums.Items.Contains(li)) { listForums.Items.Add(li); } oldGroup = ValidationHelper.GetInteger(dr["GroupID"], 0); } string forumId = Convert.ToString(dr["ForumID"]); ListItem lif = new ListItem(" \xA0\xA0\xA0\xA0 " + ResHelper.LocalizeString(Convert.ToString(dr["ForumDisplayName"])), forumId); if ((selected.Contains(";" + forumId + ";")) && (!allForums)) { lif.Selected = true; } // On postback on ASPX if (!listForums.Items.Contains(lif)) { listForums.Items.Add(lif); } } } } }
/// <summary> /// Initializes the control properties. /// </summary> protected void SetupControl() { // Register tooltips script file ScriptHelper.RegisterTooltip(this.Page); imgTextHint.ImageUrl = GetImageUrl("Design/Forums/hint.gif"); imgTextHint.AlternateText = "Hint"; ScriptHelper.AppendTooltip(imgTextHint, GetString("ForumSearch.SearchTextHint"), "help"); btnSearch.Text = GetString("general.search"); if (EnableForumSelection) { plcForums.Visible = true; string selected = ";" + QueryHelper.GetString("searchforums", "") + ";"; ForumPostsDataSource fpd = new ForumPostsDataSource(); fpd.CacheMinutes = 0; fpd.SelectedColumns = "DISTINCT GroupID, GroupDisplayName, ForumID, ForumDisplayName,GroupOrder, ForumOrder, ForumName "; fpd.SelectOnlyApproved = false; fpd.SiteName = CMSContext.CurrentSiteName; string where = "GroupGroupID IS NULL AND GroupName != 'adhocforumgroup' AND ForumOpen=1"; if (HideForumForUnauthorized) { where = ForumInfoProvider.CombineSecurityWhereCondition(where, 0); } fpd.WhereCondition = where; fpd.OrderBy = "GroupOrder, ForumOrder ASC, ForumName ASC"; DataSet ds = fpd.DataSource as DataSet; if (!DataHelper.DataSourceIsEmpty(ds)) { int oldGroup = -1; foreach (DataRow dr in ds.Tables[0].Rows) { if (oldGroup != ValidationHelper.GetInteger(dr["GroupID"], 0)) { ListItem li = new ListItem(dr["GroupDisplayName"].ToString(), ""); li.Attributes.Add("disabled", "disabled"); if (!listForums.Items.Contains(li)) { listForums.Items.Add(li); } oldGroup = ValidationHelper.GetInteger(dr["GroupID"], 0); } string forumId = Convert.ToString(dr["ForumID"]); ListItem lif = new ListItem(" \xA0\xA0\xA0\xA0 " + dr["ForumDisplayName"], forumId); if (selected.Contains(";" + forumId + ";")) { lif.Selected = true; } // On postback on ASPX if (!listForums.Items.Contains(lif)) { listForums.Items.Add(lif); } } } } }