示例#1
0
    /// <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();
    }
示例#2
0
    /// <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);
                    }
                }
            }
        }
    }
示例#4
0
    /// <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);
                    }
                }
            }
        }
    }