コード例 #1
0
ファイル: ForumManage.cs プロジェクト: xbf321/Hite
        private static ForumGroupInfo GetGroup(DataRow dr)
        {
            ForumGroupInfo model = new ForumGroupInfo();

            ReflectionHelper.Fill(dr, model);
            return(model);
        }
コード例 #2
0
ファイル: Groups.ascx.cs プロジェクト: kudutest2/Kentico
    /// <summary>
    /// Edit subscription handler.
    /// </summary>
    protected void subscriptionList_OnAction(object sender, CommandEventArgs e)
    {
        switch (e.CommandName.ToLower())
        {
        case "edit":

            DisplayControl("edit");

            int groupId = ValidationHelper.GetInteger(e.CommandArgument, 0);
            ViewState["GroupID"] = groupId;

            this.groupEdit.GroupID = groupId;
            this.groupEdit.ReloadData();

            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(groupId);
            if (fgi != null)
            {
                this.lblEditBack.Text = " <span class=\"TitleBreadCrumbSeparator\">&nbsp;</span> " + HTMLHelper.HTMLEncode(fgi.GroupDisplayName);
            }

            break;

        default:
            DisplayControl("list");
            break;
        }
    }
コード例 #3
0
    /// <summary>
    /// Gets and bulk updates forum groups. Called when the "Get and bulk update groups" button is pressed.
    /// Expects the CreateForumGroup method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateForumGroups()
    {
        // Prepare the parameters
        string where = "GroupName LIKE N'MyNewGroup%'";
        string orderBy = "";
        string columns = "";
        int    topN    = 10;

        // Get the data
        DataSet groups = ForumGroupInfoProvider.GetGroups(where, orderBy, topN, columns);

        if (!DataHelper.DataSourceIsEmpty(groups))
        {
            // Loop through the individual items
            foreach (DataRow groupDr in groups.Tables[0].Rows)
            {
                // Create object from DataRow
                ForumGroupInfo modifyGroup = new ForumGroupInfo(groupDr);

                // Update the properties
                modifyGroup.GroupDisplayName = modifyGroup.GroupDisplayName.ToUpper();

                // Save the changes
                ForumGroupInfoProvider.SetForumGroupInfo(modifyGroup);
            }

            return(true);
        }

        return(false);
    }
コード例 #4
0
ファイル: ForumManage.cs プロジェクト: xbf321/Hite
        public static void UpdateGroup(ForumGroupInfo model)
        {
            string strSQL = "UPDATE ForumGroups SET Name = @Name,Sort = @Sort,IsDeleted = @IsDeleted WHERE Id = @ID";

            SqlParameter[] parms = ParameterHelper.GetClassSqlParameters(model);
            SQLPlus.ExecuteNonQuery(CommandType.Text, strSQL, parms);
        }
コード例 #5
0
    /// <summary>
    /// Upload click hadler.
    /// </summary>
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (!CheckPermissions("cms.forums", CMSAdminControl.PERMISSION_MODIFY))
        {
            return;
        }

        if ((upload.HasFile) && (this.PostInfo != null))
        {
            // Check attachment extension
            if (!ForumAttachmentInfoProvider.IsExtensionAllowed(upload.FileName, CMSContext.CurrentSiteName))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("ForumAttachment.AttachmentIsNotAllowed");
                return;
            }

            ForumInfo fi = ForumInfoProvider.GetForumInfo(this.PostInfo.PostForumID);
            if (fi != null)
            {
                ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
                if (fgi != null)
                {
                    ForumAttachmentInfo fai = new ForumAttachmentInfo(upload.PostedFile, 0, 0, 0);
                    fai.AttachmentPostID = this.PostInfo.PostId;
                    fai.AttachmentSiteID = fgi.GroupSiteID;
                    ForumAttachmentInfoProvider.SetForumAttachmentInfo(fai);

                    ReloadAttachmentData(this.PostInfo.PostId);
                    UniGrid.ReloadData();
                }
            }
        }
    }
コード例 #6
0
    /// <summary>
    /// Edit subscription handler.
    /// </summary>
    protected void subscriptionList_OnAction(object sender, CommandEventArgs e)
    {
        switch (e.CommandName.ToLowerCSafe())
        {
        case "edit":

            DisplayControl("edit");

            int groupId = ValidationHelper.GetInteger(e.CommandArgument, 0);
            ViewState["GroupID"] = groupId;

            groupEdit.GroupID = groupId;
            groupEdit.ReloadData();

            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(groupId);

            ucBreadcrumbs.Items[1].Text   = (fgi == null) ? GetString("Group_General.NewGroup") : fgi.GroupDisplayName;
            ucBreadcrumbs.HideBreadcrumbs = false;

            break;

        default:
            DisplayControl("list");
            break;
        }
    }
コード例 #7
0
    void forumSecurity_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int       groupId = 0;
        ForumInfo fi      = ForumInfoProvider.GetForumInfo(ValidationHelper.GetInteger(Request.QueryString["forumid"], 0));

        if (fi != null)
        {
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
            if (fgi != null)
            {
                groupId = fgi.GroupGroupID;
            }
        }

        // Check permissions
        if (!CMSContext.CurrentUser.IsGroupAdministrator(groupId))
        {
            // Check permissions
            if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Groups", permissionType))
            {
                this.forumSecurity.StopProcessing = true;

                // Redirect only if permission READ is check
                if (permissionType == CMSAdminControl.PERMISSION_READ)
                {
                    RedirectToCMSDeskAccessDenied("CMS.Groups", permissionType);
                }
            }
        }
    }
コード例 #8
0
    private void forumSecurity_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int       groupId = 0;
        ForumInfo fi      = ForumInfoProvider.GetForumInfo(QueryHelper.GetInteger("forumid", 0));

        if (fi != null)
        {
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
            if (fgi != null)
            {
                groupId = fgi.GroupGroupID;
            }
        }

        // Check permissions
        if (!MembershipContext.AuthenticatedUser.IsGroupAdministrator(groupId))
        {
            // Check permissions
            if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Groups", permissionType))
            {
                forumSecurity.StopProcessing = true;

                // Redirect only if permission READ is check
                if (permissionType == CMSAdminControl.PERMISSION_READ)
                {
                    RedirectToAccessDenied("CMS.Groups", permissionType);
                }
            }
        }
    }
コード例 #9
0
    /// <summary>
    /// Creates forum. Called when the "Create forum" button is pressed.
    /// </summary>
    private bool CreateForum()
    {
        // Get the forum group
        ForumGroupInfo group = ForumGroupInfoProvider.GetForumGroupInfo("MyNewGroup", CMSContext.CurrentSiteID);

        if (group != null)
        {
            // Create new forum object
            ForumInfo newForum = new ForumInfo();

            // Set the properties
            newForum.ForumDisplayName = "My new forum";
            newForum.ForumName        = "MyNewForum";
            newForum.ForumGroupID     = group.GroupID;
            newForum.ForumSiteID      = group.GroupSiteID;
            newForum.AllowAccess      = SecurityAccessEnum.AllUsers;
            newForum.AllowAttachFiles = SecurityAccessEnum.AuthenticatedUsers;
            newForum.AllowPost        = SecurityAccessEnum.AllUsers;
            newForum.AllowReply       = SecurityAccessEnum.AllUsers;
            newForum.AllowSubscribe   = SecurityAccessEnum.AllUsers;
            newForum.ForumOpen        = true;
            newForum.ForumModerated   = false;
            newForum.ForumThreads     = 0;
            newForum.ForumPosts       = 0;


            // Save the forum
            ForumInfoProvider.SetForumInfo(newForum);

            return(true);
        }

        return(false);
    }
コード例 #10
0
    /// <summary>
    /// Upload click handler.
    /// </summary>
    protected void btnUpload_Click(object sender, EventArgs e)
    {
        if (!CheckPermissions("cms.forums", PERMISSION_MODIFY))
        {
            return;
        }

        if ((upload.HasFile) && (PostInfo != null))
        {
            // Check attachment extension
            if (!ForumAttachmentInfoProvider.IsExtensionAllowed(upload.FileName, SiteContext.CurrentSiteName))
            {
                ShowError(GetString("ForumAttachment.AttachmentIsNotAllowed"));
                return;
            }

            ForumInfo fi = ForumInfoProvider.GetForumInfo(PostInfo.PostForumID);
            if (fi != null)
            {
                ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
                if (fgi != null)
                {
                    ForumAttachmentInfo fai = new ForumAttachmentInfo(upload.PostedFile, 0, 0, fi.ForumImageMaxSideSize);
                    fai.AttachmentPostID = PostInfo.PostId;
                    fai.AttachmentSiteID = fgi.GroupSiteID;
                    ForumAttachmentInfoProvider.SetForumAttachmentInfo(fai);

                    ReloadAttachmentData(PostInfo.PostId);
                    UniGrid.ReloadData();
                }
            }
        }
    }
コード例 #11
0
ファイル: ForumManage.cs プロジェクト: xbf321/Hite
        public static int AddGroup(ForumGroupInfo model)
        {
            string strSQL = "INSERT INTO dbo.ForumGroups(Name,Sort,IsDeleted,CreateDateTime) VALUES(@Name,@Sort,@IsDeleted,GETDATE());SELECT @@IDENTITY;";

            SqlParameter[] parms = ParameterHelper.GetClassSqlParameters(model);
            return(Convert.ToInt32(SQLPlus.ExecuteScalar(CommandType.Text, strSQL, parms)));
        }
コード例 #12
0
    /// <summary>
    /// Reloads the data in the form.
    /// </summary>
    public override void ReloadData()
    {
        ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(this.GroupID);

        if (fgi != null)
        {
            this.txtGroupDescription.Text      = fgi.GroupDescription;
            this.txtGroupDisplayName.Text      = fgi.GroupDisplayName;
            this.txtGroupName.Text             = fgi.GroupName;
            this.chkCaptcha.Checked            = fgi.GroupUseCAPTCHA;
            this.chkForumDisplayEmails.Checked = fgi.GroupDisplayEmails;
            this.chkForumRequireEmail.Checked  = fgi.GroupRequireEmail;
            this.chkUseHTML.Checked            = fgi.GroupHTMLEditor;
            this.txtMaxAttachmentSize.Text     = fgi.GroupAttachmentMaxFileSize.ToString();

            // Show/hide URL textboxes
            plcBaseAndUnsubUrl.Visible = (DisplayMode != ControlDisplayModeEnum.Simple);
            if (DisplayMode != ControlDisplayModeEnum.Simple)
            {
                this.txtForumBaseUrl.Text      = fgi.GroupBaseUrl;
                this.txtUnsubscriptionUrl.Text = fgi.GroupUnsubscriptionUrl;


                chkInheritBaseUrl.Checked  = (fgi.GetValue("GroupBaseUrl") == null);
                chkInheritUnsubUrl.Checked = (fgi.GetValue("GroupUnsubscriptionUrl") == null);

                txtForumBaseUrl.Enabled      = !chkInheritBaseUrl.Checked;
                txtUnsubscriptionUrl.Enabled = !chkInheritUnsubUrl.Checked;

                SetUrl();
            }


            // Settings
            this.chkAuthorEdit.Checked     = fgi.GroupAuthorEdit;
            this.chkAuthorDelete.Checked   = fgi.GroupAuthorDelete;
            this.txtImageMaxSideSize.Text  = fgi.GroupImageMaxSideSize.ToString();
            this.txtIsAnswerLimit.Text     = fgi.GroupIsAnswerLimit.ToString();
            this.radTypeChoose.Checked     = fgi.GroupType == 0;
            this.radTypeDiscussion.Checked = fgi.GroupType == 1;
            this.radTypeAnswer.Checked     = fgi.GroupType == 2;

            // Discussion
            this.chkEnableQuote.Checked     = fgi.GroupEnableQuote;
            this.chkEnableBold.Checked      = fgi.GroupEnableFontBold;
            this.chkEnableItalic.Checked    = fgi.GroupEnableFontItalics;
            this.chkEnableUnderline.Checked = fgi.GroupEnableFontUnderline;
            this.chkEnableStrike.Checked    = fgi.GroupEnableFontStrike;
            this.chkEnableCode.Checked      = fgi.GroupEnableCodeSnippet;
            this.chkEnableColor.Checked     = fgi.GroupEnableFontColor;
            this.radImageAdvanced.Checked   = fgi.GroupEnableAdvancedImage;
            this.radImageSimple.Checked     = fgi.GroupEnableImage;
            this.radImageNo.Checked         = !(fgi.GroupEnableImage || fgi.GroupEnableAdvancedImage);
            this.radUrlAdvanced.Checked     = fgi.GroupEnableAdvancedURL;
            this.radUrlSimple.Checked       = fgi.GroupEnableURL;
            this.radUrlNo.Checked           = !(fgi.GroupEnableURL || fgi.GroupEnableAdvancedURL);
            this.chkLogActivity.Checked     = fgi.GroupLogActivity;
        }
    }
コード例 #13
0
    /// <summary>
    /// Deletes forum group. Called when the "Delete group" button is pressed.
    /// Expects the CreateForumGroup method to be run first.
    /// </summary>
    private bool DeleteForumGroup()
    {
        // Get the forum group
        ForumGroupInfo deleteGroup = ForumGroupInfoProvider.GetForumGroupInfo("MyNewGroup", CMSContext.CurrentSiteID);

        // Delete the forum group
        ForumGroupInfoProvider.DeleteForumGroupInfo(deleteGroup);

        return(deleteGroup != null);
    }
コード例 #14
0
    protected void groupNew_OnSaved(object sender, EventArgs e)
    {
        int groupId = groupNew.GroupID;

        ViewState["GroupID"] = groupId;

        ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(groupId);

        groupEdit.GroupID = groupId;
        DisplayControl("edit");
    }
コード例 #15
0
    /// <summary>
    /// Handles file upload.
    /// </summary>
    protected void btnUpload_OnClick(object sender, EventArgs e)
    {
        if (ForumContext.CurrentForum == null)
        {
            return;
        }

        // Check permissions
        if (!this.IsAvailable(ForumContext.CurrentForum, ForumActionType.Attachment))
        {
            lblError.Visible = true;
            lblError.Text    = GetString("ForumNewPost.PermissionDenied");
            return;
        }

        if (fileUpload.HasFile)
        {
            // Check max attachment size
            if ((ForumContext.CurrentForum.ForumAttachmentMaxFileSize > 0) && ((fileUpload.PostedFile.InputStream.Length / 1024) >= ForumContext.CurrentForum.ForumAttachmentMaxFileSize))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("ForumAttachment.AttachmentIsTooLarge");
                return;
            }

            // Check attachment extension
            if (!ForumAttachmentInfoProvider.IsExtensionAllowed(fileUpload.FileName, this.SiteName))
            {
                lblError.Visible = true;
                lblError.Text    = GetString("ForumAttachment.AttachmentIsNotAllowed");
                return;
            }

            ForumAttachmentInfo attachmentInfo = new ForumAttachmentInfo(fileUpload.PostedFile, 0, 0, ForumContext.CurrentForum.ForumImageMaxSideSize);
            attachmentInfo.AttachmentPostID = ForumContext.CurrentPost.PostId;
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(ForumContext.CurrentForum.ForumGroupID);
            if (fgi != null)
            {
                attachmentInfo.AttachmentSiteID = fgi.GroupSiteID;

                //Save to DB
                ForumAttachmentInfoProvider.SetForumAttachmentInfo(attachmentInfo);
                DataSet ds = ForumAttachmentInfoProvider.GetForumAttachments(ForumContext.CurrentPost.PostId, false);
                if (!DataHelper.DataSourceIsEmpty(ds))
                {
                    listAttachment.DataSource = ds;
                    listAttachment.DataBind();
                    plcListHeader.Visible = true;
                }
            }
        }
    }
コード例 #16
0
    private void forumNew_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int lGroupId = 0;

        ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(forumNew.GroupID);

        if (fgi != null)
        {
            lGroupId = fgi.GroupGroupID;
        }

        CheckPermissions(lGroupId, CMSAdminControl.PERMISSION_MANAGE);
    }
コード例 #17
0
 public static ForumGroupInfo UpdateGroupInfo(ForumGroupInfo model)
 {
     if (model.Id == 0)
     {
         //添加
         model.Id = ForumManage.AddGroup(model);
     }
     else
     {
         ForumManage.UpdateGroup(model);
     }
     return(model);
 }
コード例 #18
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Title = "Forum - Group view";

        groupId = QueryHelper.GetInteger("objectid", 0);
        ForumContext.CheckSite(groupId, 0, 0);

        ForumGroupInfo group = ForumGroupInfoProvider.GetForumGroupInfo(groupId);

        if (group != null)
        {
            Forum1.GroupName = group.GroupName;
        }
    }
コード例 #19
0
    private void groupEdit_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int groupId = 0;

        ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(groupEdit.GroupID);

        if (fgi != null)
        {
            groupId = fgi.GroupGroupID;
        }

        // Check permissions
        CheckPermissions(groupId, CMSAdminControl.PERMISSION_MANAGE);
    }
コード例 #20
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Title = "Forum - Group view";

        groupId = ValidationHelper.GetInteger(Request.QueryString["groupid"], 0);
        ForumGroupInfo group = ForumGroupInfoProvider.GetForumGroupInfo(groupId);

        if (group != null)
        {
            Forum1.CommunityGroupID = group.GroupGroupID;
            Forum1.GroupName        = group.GroupName;
        }

        Forum1.IsLiveSite = false;
    }
コード例 #21
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Title = "Forum - Group view";

        forumGroupId = QueryHelper.GetInteger("forumgroupid", 0);
        ForumGroupInfo group = ForumGroupInfoProvider.GetForumGroupInfo(forumGroupId);

        if (group != null)
        {
            Forum1.CommunityGroupID = group.GroupGroupID;
            Forum1.GroupName        = group.GroupName;
        }

        Forum1.IsLiveSite = false;
    }
コード例 #22
0
ファイル: Groups.ascx.cs プロジェクト: kudutest2/Kentico
    protected void groupNew_OnSaved(object sender, EventArgs e)
    {
        int groupId = this.groupNew.GroupID;

        ViewState["GroupID"] = groupId;

        ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(groupId);

        if (fgi != null)
        {
            this.lblEditBack.Text = " <span class=\"TitleBreadCrumbSeparator\">&nbsp;</span> " + HTMLHelper.HTMLEncode(fgi.GroupDisplayName);
        }

        this.groupEdit.GroupID = groupId;
        DisplayControl("edit");
    }
コード例 #23
0
    private void subscriptionList_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int       groupId = 0;
        ForumInfo fi      = ForumInfoProvider.GetForumInfo(subscriptionList.ForumID);

        if (fi != null)
        {
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
            if (fgi != null)
            {
                groupId = fgi.GroupGroupID;
            }
        }
        // Check permissions
        CheckPermissions(groupId, CMSAdminControl.PERMISSION_MANAGE);
    }
コード例 #24
0
ファイル: ForumManage.cs プロジェクト: xbf321/Hite
        public static List <ForumGroupInfo> GroupList()
        {
            string                strSQL = "SELECT * FROM ForumGroups WITH(NOLOCK) ORDER BY Sort";
            DataTable             dt     = SQLPlus.ExecuteDataTable(CommandType.Text, strSQL);
            List <ForumGroupInfo> list   = new List <ForumGroupInfo>();
            ForumGroupInfo        model  = null;

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow item in dt.Rows)
                {
                    model = GetGroup(item);
                    list.Add(model);
                }
            }
            return(list);
        }
コード例 #25
0
    private void forumModerators_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int       groupId = 0;
        ForumInfo fi      = ForumInfoProvider.GetForumInfo(QueryHelper.GetInteger("forumid", 0));

        if (fi != null)
        {
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
            if (fgi != null)
            {
                groupId = fgi.GroupGroupID;
            }
        }

        // Check permissions
        CheckGroupPermissions(groupId, CMSAdminControl.PERMISSION_MANAGE);
    }
コード例 #26
0
    void subscriptionEdit_OnCheckPermissions(string permissionType, CMSAdminControl sender)
    {
        int       groupId = 0;
        ForumInfo fi      = ForumInfoProvider.GetForumInfo(ValidationHelper.GetInteger(Request.QueryString["forumid"], 0));

        if (fi != null)
        {
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(fi.ForumGroupID);
            if (fgi != null)
            {
                groupId = fgi.GroupGroupID;
            }
        }

        // Check permissions
        CheckPermissions(groupId, CMSAdminControl.PERMISSION_MANAGE);
    }
コード例 #27
0
    protected void Page_Load(object sender, EventArgs e)
    {
        bool process = true;

        if (!this.Visible || this.StopProcessing)
        {
            this.EnableViewState = true;
            process = false;
        }

        this.lblModerators.Text     = GetString("Forum_Edit.Moderators");
        this.chkForumModerated.Text = GetString("Forum_Edit.ForumModerated");

        // Get community group id
        int communityGroupID = 0;

        forum = ForumInfoProvider.GetForumInfo(this.mForumId);

        if (forum == null)
        {
            return;
        }

        if (forum.ForumGroupID > 0)
        {
            ForumGroupInfo fgi = ForumGroupInfoProvider.GetForumGroupInfo(forum.ForumGroupID);
            if (fgi != null)
            {
                communityGroupID = fgi.GroupGroupID;
            }
        }

        userSelector.ForumID = this.ForumID;
        userSelector.GroupID = communityGroupID;
        userSelector.CurrentSelector.SelectionMode = SelectionModeEnum.Multiple;
        userSelector.ShowSiteFilter = false;
        userSelector.SiteID         = CMSContext.CurrentSiteID;
        userSelector.IsLiveSite     = this.IsLiveSite;
        userSelector.Changed       += userSelector_Changed;

        if (!this.IsLiveSite && process)
        {
            ReloadData(false);
        }
    }
コード例 #28
0
    protected void Page_Load(object sender, EventArgs e)
    {
        string currentForumGroup = GetString("");

        groupId = QueryHelper.GetInteger("groupid", 0);
        if (groupId > 0)
        {
            ForumGroupInfo group = ForumGroupInfoProvider.GetForumGroupInfo(groupId);
            if (group != null)
            {
                currentForumGroup = HTMLHelper.HTMLEncode(group.GroupDisplayName);

                InitalizeMasterPage(currentForumGroup);

                InitalizeMenu();
            }
        }
    }
コード例 #29
0
    /// <summary>
    /// Gets and updates forum group. Called when the "Get and update group" button is pressed.
    /// Expects the CreateForumGroup method to be run first.
    /// </summary>
    private bool GetAndUpdateForumGroup()
    {
        // Get the forum group
        ForumGroupInfo updateGroup = ForumGroupInfoProvider.GetForumGroupInfo("MyNewGroup", CMSContext.CurrentSiteID);

        if (updateGroup != null)
        {
            // Update the properties
            updateGroup.GroupDisplayName = updateGroup.GroupDisplayName.ToLower();

            // Save the changes
            ForumGroupInfoProvider.SetForumGroupInfo(updateGroup);

            return(true);
        }

        return(false);
    }
コード例 #30
0
    /// <summary>
    /// Creates forum group. Called when the "Create group" button is pressed.
    /// </summary>
    private bool CreateForumGroup()
    {
        // Create new forum group object
        ForumGroupInfo newGroup = new ForumGroupInfo();

        // Set the properties
        newGroup.GroupDisplayName   = "My new group";
        newGroup.GroupName          = "MyNewGroup";
        newGroup.GroupSiteID        = CMSContext.CurrentSiteID;
        newGroup.GroupAuthorDelete  = true;
        newGroup.GroupAuthorEdit    = true;
        newGroup.GroupDisplayEmails = true;

        // Save the forum group
        ForumGroupInfoProvider.SetForumGroupInfo(newGroup);

        return(true);
    }
コード例 #31
0
    /// <summary>
    /// Creates group forum.
    /// </summary>
    /// <param name="group">Particular group info object</param>
    private void CreateGroupForum(GroupInfo group)
    {
        #region "Create forum group"

        // Get forum group code name
        string forumGroupCodeName = "Forums_group_" + group.GroupGUID;

        // Check if forum group with given name already exists
        if (ForumGroupInfoProvider.GetForumGroupInfo(forumGroupCodeName, SiteContext.CurrentSiteID) != null)
        {
            return;
        }

        // Create forum base URL
        string baseUrl = null;
        TreeNode groupDocument = TreeProvider.SelectSingleNode(group.GroupNodeGUID, DocumentContext.CurrentDocumentCulture.CultureCode, SiteContext.CurrentSiteName);
        if (groupDocument != null)
        {
            baseUrl = DocumentURLProvider.GetUrl(groupDocument.NodeAliasPath + "/" + FORUM_DOCUMENT_ALIAS);
        }

        ForumGroupInfo forumGroupObj = new ForumGroupInfo();
        const string suffix = " forums";
        forumGroupObj.GroupDisplayName = TextHelper.LimitLength(group.GroupDisplayName, 200 - suffix.Length, string.Empty) + suffix;
        forumGroupObj.GroupName = forumGroupCodeName;
        forumGroupObj.GroupOrder = 0;
        forumGroupObj.GroupEnableQuote = true;
        forumGroupObj.GroupGroupID = group.GroupID;
        forumGroupObj.GroupSiteID = SiteContext.CurrentSiteID;
        forumGroupObj.GroupBaseUrl = baseUrl;

        // Additional settings
        forumGroupObj.GroupEnableCodeSnippet = true;
        forumGroupObj.GroupEnableFontBold = true;
        forumGroupObj.GroupEnableFontColor = true;
        forumGroupObj.GroupEnableFontItalics = true;
        forumGroupObj.GroupEnableFontStrike = true;
        forumGroupObj.GroupEnableFontUnderline = true;
        forumGroupObj.GroupEnableQuote = true;
        forumGroupObj.GroupEnableURL = true;
        forumGroupObj.GroupEnableImage = true;

        // Set forum group info
        ForumGroupInfoProvider.SetForumGroupInfo(forumGroupObj);

        #endregion

        #region "Create forum"

        string codeName = "General_discussion_group_" + group.GroupGUID;

        // Check if forum with given name already exists
        if (ForumInfoProvider.GetForumInfo(codeName, SiteContext.CurrentSiteID, group.GroupID) != null)
        {
            return;
        }

        // Create new forum object
        ForumInfo forumObj = new ForumInfo();
        forumObj.ForumSiteID = SiteContext.CurrentSiteID;
        forumObj.ForumIsLocked = false;
        forumObj.ForumOpen = true;
        forumObj.ForumDisplayEmails = false;
        forumObj.ForumRequireEmail = false;
        forumObj.ForumDisplayName = "General discussion";
        forumObj.ForumName = codeName;
        forumObj.ForumGroupID = forumGroupObj.GroupID;
        forumObj.ForumModerated = false;
        forumObj.ForumAccess = 40000;
        forumObj.ForumPosts = 0;
        forumObj.ForumThreads = 0;
        forumObj.ForumPostsAbsolute = 0;
        forumObj.ForumThreadsAbsolute = 0;
        forumObj.ForumOrder = 0;
        forumObj.ForumUseCAPTCHA = false;
        forumObj.SetValue("ForumHTMLEditor", null);

        // Set security
        forumObj.AllowAccess = SecurityAccessEnum.GroupMembers;
        forumObj.AllowAttachFiles = SecurityAccessEnum.GroupMembers;
        forumObj.AllowMarkAsAnswer = SecurityAccessEnum.GroupMembers;
        forumObj.AllowPost = SecurityAccessEnum.GroupMembers;
        forumObj.AllowReply = SecurityAccessEnum.GroupMembers;
        forumObj.AllowSubscribe = SecurityAccessEnum.GroupMembers;

        if (ForumInfoProvider.LicenseVersionCheck(RequestContext.CurrentDomain, FeatureEnum.Forums, ObjectActionEnum.Insert))
        {
            ForumInfoProvider.SetForumInfo(forumObj);
        }

        #endregion
    }
    /// <summary>
    /// Creates forum group. Called when the "Create group" button is pressed.
    /// </summary>
    private bool CreateForumGroup()
    {
        // Create new forum group object
        ForumGroupInfo newGroup = new ForumGroupInfo();

        // Set the properties
        newGroup.GroupDisplayName = "My new group";
        newGroup.GroupName = "MyNewGroup";
        newGroup.GroupSiteID = SiteContext.CurrentSiteID;
        newGroup.GroupAuthorDelete = true;
        newGroup.GroupAuthorEdit = true;
        newGroup.GroupDisplayEmails = true;

        // Save the forum group
        ForumGroupInfoProvider.SetForumGroupInfo(newGroup);

        return true;
    }
コード例 #33
0
ファイル: ForumsDB.cs プロジェクト: rodrigoratan/ActiveForums
        public ForumCollection Forums_List(int PortalId, int ModuleId)
        {
            ForumCollection f = new ForumCollection();
            object obj = DataCache.CacheRetrieve(string.Format(CacheKeys.ForumList, ModuleId));
            if (obj != null)
            {
                f = (ForumCollection)obj;
            }
            else
            {
                using (IDataReader dr = SqlHelper.ExecuteReader(_connectionString, dbPrefix + "ForumsList", PortalId, ModuleId))
                {

                    Forum fi = null;
                    ForumGroupInfo gi = null;
                    while (dr.Read())
                    {
                        fi = new Forum();
                        gi = new ForumGroupInfo();
                        fi.ModuleId = int.Parse(dr["ModuleId"].ToString());
                        fi.ForumID = Convert.ToInt32(dr["ForumId"].ToString());
                        fi.Active = bool.Parse(dr["Active"].ToString());
                        fi.ForumDesc = dr["ForumDesc"].ToString();
                        fi.ForumGroupId = int.Parse(dr["ForumGroupId"].ToString());
                        fi.ForumID = int.Parse(dr["ForumId"].ToString());
                        fi.ForumName = dr["ForumName"].ToString();
                        fi.GroupName = dr["GroupName"].ToString();
                        fi.Hidden = bool.Parse(dr["Hidden"].ToString());
                        fi.ParentForumId = Convert.ToInt32(dr["ParentForumId"].ToString());
                        DateTime postTime;
                        if (! (DateTime.TryParse(dr["LastPostDate"].ToString(), out postTime)))
                        {
                            fi.LastPostDateTime = new DateTime();
                        }
                        else
                        {
                            fi.LastPostDateTime = postTime;
                        }

                        fi.LastTopicId = int.Parse(dr["LastTopicId"].ToString());
                        fi.LastReplyId = int.Parse(dr["LastReplyId"].ToString());
                        fi.LastPostSubject = dr["LastPostSubject"].ToString();
                        fi.LastPostDisplayName = dr["LastPostAuthorName"].ToString();
                        fi.LastPostUserID = int.Parse(dr["LastPostAuthorId"].ToString());
                        fi.LastPostUserName = fi.LastPostDisplayName;
                        fi.LastRead = DateTime.Parse(dr["LastRead"].ToString());
                        gi.Active = bool.Parse(dr["GroupActive"].ToString());
                        gi.Hidden = bool.Parse(dr["GroupHidden"].ToString());
                        gi.GroupName = fi.GroupName;
                        gi.ForumGroupId = fi.ForumGroupId;
                        gi.PrefixURL = dr["GroupPrefixURL"].ToString();
                            //gi.SEO = dr("GroupSEO").ToString
                        fi.ForumGroup = gi;
                        fi.Security.Announce = dr["CanAnnounce"].ToString();
                        fi.Security.Attach = dr["CanAttach"].ToString();
                        fi.Security.Create = dr["CanCreate"].ToString();
                        fi.Security.Delete = dr["CanDelete"].ToString();
                        fi.Security.Edit = dr["CanEdit"].ToString();
                        fi.Security.Lock = dr["CanLock"].ToString();
                        fi.Security.ModApprove = dr["CanModApprove"].ToString();
                        fi.Security.ModDelete = dr["CanModDelete"].ToString();
                        fi.Security.ModEdit = dr["CanModEdit"].ToString();
                        fi.Security.ModLock = dr["CanModLock"].ToString();
                        fi.Security.ModMove = dr["CanModMove"].ToString();
                        fi.Security.ModPin = dr["CanModPin"].ToString();
                        fi.Security.ModSplit = dr["CanModSplit"].ToString();
                        fi.Security.ModUser = dr["CanModUser"].ToString();
                        fi.Security.Pin = dr["CanPin"].ToString();
                        fi.Security.Poll = dr["CanPoll"].ToString();
                        fi.Security.Block = dr["CanBlock"].ToString();
                        fi.Security.Read = dr["CanRead"].ToString();
                        fi.Security.Reply = dr["CanReply"].ToString();
                        fi.Security.Subscribe = dr["CanSubscribe"].ToString();
                        fi.Security.Trust = dr["CanTrust"].ToString();
                        fi.Security.View = dr["CanView"].ToString();
                        fi.ForumSettings = LoadSettings(dr);
                        fi.PrefixURL = dr["PrefixURL"].ToString();
                            //.SEO = dr("ForumSEO").ToString
                        fi.TotalTopics = int.Parse(dr["TotalTopics"].ToString());
                        fi.TotalReplies = int.Parse(dr["TotalReplies"].ToString());
                        f.Add(fi);
                    }
                    dr.Close();
                }

                DataCache.CacheStore(string.Format(CacheKeys.ForumList, ModuleId), f);
            }
            return f;
        }
コード例 #34
0
    /// <summary>
    /// Creates department forum group.
    /// </summary>
    /// <param name="departmentNode">Department node</param>
    private void CreateDepartmentForumGroup(TreeNode departmentNode)
    {
        // Set general values
        string departmentName = departmentNode.DocumentName;
        string suffix = "";

        #region "Create forum group"

        // Get forum group code name
        string groupCodeName = "Department_" + departmentNode.NodeGUID;

        // Check if forum group with given name already exists
        if (ForumGroupInfoProvider.GetForumGroupInfo(groupCodeName, CMSContext.CurrentSiteID) != null)
        {
            return;
        }

        // Create base URL for forums
        string baseUrl = CMSContext.GetUrl(departmentNode.NodeAliasPath + "/" + FORUM_DOCUMENT_ALIAS);

        ForumGroupInfo forumGroupObj = new ForumGroupInfo();
        forumGroupObj.GroupDescription = "Forum group for " + departmentName + " department.";
        suffix = " forum group";
        forumGroupObj.GroupDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix;
        forumGroupObj.GroupName = groupCodeName;
        forumGroupObj.GroupOrder = 0;
        forumGroupObj.GroupEnableQuote = true;
        forumGroupObj.GroupSiteID = CMSContext.CurrentSiteID;
        forumGroupObj.GroupBaseUrl = baseUrl;

        // Additional settings
        forumGroupObj.GroupEnableCodeSnippet = true;
        forumGroupObj.GroupEnableFontBold = true;
        forumGroupObj.GroupEnableFontColor = true;
        forumGroupObj.GroupEnableFontItalics = true;
        forumGroupObj.GroupEnableFontStrike = true;
        forumGroupObj.GroupEnableFontUnderline = true;
        forumGroupObj.GroupEnableQuote = true;
        forumGroupObj.GroupEnableURL = true;
        forumGroupObj.GroupEnableImage = true;

        ForumGroupInfoProvider.SetForumGroupInfo(forumGroupObj);

        #endregion

        #region "Create forum"

        string codeName = "Default_department_" + departmentNode.NodeGUID;

        // Check if forum with given name already exists
        if (ForumInfoProvider.GetForumInfo(codeName, CMSContext.CurrentSite.SiteID) != null)
        {
            return;
        }

        ForumInfo forumObj = new ForumInfo();
        forumObj.ForumSiteID = CMSContext.CurrentSiteID;
        forumObj.ForumIsLocked = false;
        forumObj.ForumOpen = true;
        forumObj.ForumDisplayEmails = false;
        forumObj.ForumDescription = "Forum for " + departmentName + " department.";
        forumObj.ForumRequireEmail = false;
        suffix = " forum";
        forumObj.ForumDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix;
        forumObj.ForumName = codeName;
        forumObj.ForumGroupID = forumGroupObj.GroupID;
        forumObj.ForumModerated = false;
        forumObj.ForumAccess = 40000;
        forumObj.ForumPosts = 0;
        forumObj.ForumThreads = 0;
        forumObj.ForumPostsAbsolute = 0;
        forumObj.ForumThreadsAbsolute = 0;
        forumObj.ForumOrder = 0;
        forumObj.ForumUseCAPTCHA = false;
        forumObj.SetValue("ForumHTMLEditor", null);

        // Set security
        forumObj.AllowAccess = SecurityAccessEnum.AuthorizedRoles;
        forumObj.AllowAttachFiles = SecurityAccessEnum.AuthorizedRoles;
        forumObj.AllowMarkAsAnswer = SecurityAccessEnum.AuthorizedRoles;
        forumObj.AllowPost = SecurityAccessEnum.AuthorizedRoles;
        forumObj.AllowReply = SecurityAccessEnum.AuthorizedRoles;
        forumObj.AllowSubscribe = SecurityAccessEnum.AuthorizedRoles;

        if (ForumInfoProvider.LicenseVersionCheck(URLHelper.GetCurrentDomain(), FeatureEnum.Forums, VersionActionEnum.Insert))
        {
            ForumInfoProvider.SetForumInfo(forumObj);
        }

        #endregion
    }
コード例 #35
0
ファイル: GroupNew.ascx.cs プロジェクト: v-jli/jean0407large
    /// <summary>
    /// Sets data to database.
    /// </summary>
    protected void btnOK_Click(object sender, EventArgs e)
    {
        if (!CheckPermissions("cms.forums", CMSAdminControl.PERMISSION_MODIFY))
        {
            return;
        }

        // Generate code name in simple mode
        string codeName = txtGroupName.Text.Trim();
        if (this.DisplayMode == ControlDisplayModeEnum.Simple)
        {
            codeName = ValidationHelper.GetCodeName(txtGroupDisplayName.Text, 50) + "_group_" + this.CommunityGroupGUID;
        }

        string errorMessage = new Validator().NotEmpty(txtGroupDisplayName.Text, GetString("general.requiresdisplayname"))
                                             .NotEmpty(codeName, GetString("general.requirescodename"))
                                             .IsCodeName(codeName, GetString("general.errorcodenameinidentificatorformat")).Result;

        if (errorMessage != "")
        {
            lblError.Visible = true;
            lblError.Text = errorMessage;
            return;
        }

        // If forum group with given name already exists show error message
        if (ForumGroupInfoProvider.GetForumGroupInfo(codeName, CMSContext.CurrentSiteID, this.CommunityGroupID) != null)
        {
            lblError.Visible = true;
            lblError.Text = GetString("Group_General.GroupAlreadyExists");
            return;
        }

        ForumGroupInfo forumGroupObj = new ForumGroupInfo();
        forumGroupObj.GroupDescription = txtGroupDescription.Text.Trim();
        forumGroupObj.GroupDisplayName = txtGroupDisplayName.Text.Trim();
        forumGroupObj.GroupName = codeName;
        forumGroupObj.GroupOrder = 0;
        forumGroupObj.GroupEnableQuote = true;
        forumGroupObj.GroupLogActivity = true;
        if (DisplayMode != ControlDisplayModeEnum.Simple)
        {
            forumGroupObj.GroupBaseUrl = chkInheritBaseUrl.Checked ? null : txtForumBaseUrl.Text.Trim();
            forumGroupObj.GroupUnsubscriptionUrl = chkInheritUnsubUrl.Checked ? null : txtUnsubscriptionUrl.Text.Trim();
        }
        // Leave base url and unsubscription url empty for community forum group
        else if (this.CommunityGroupID > 0)
        {
            string baseUrl = String.Empty;
            // Get base url from automatically created forum group
            string forumGroupName = "Forums_group_" + this.CommunityGroupGUID;
            ForumGroupInfo autoGroup = ForumGroupInfoProvider.GetForumGroupInfo(forumGroupName, CMSContext.CurrentSite.SiteID, this.CommunityGroupID);
            if (autoGroup != null)
            {
                baseUrl = autoGroup.GroupBaseUrl;
            }

            forumGroupObj.GroupBaseUrl = baseUrl;
            forumGroupObj.GroupUnsubscriptionUrl = String.Empty;
        }

        if (CMSContext.CurrentSite != null)
        {
            forumGroupObj.GroupSiteID = CMSContext.CurrentSite.SiteID;
        }

        // Set the information on community group ID if available
        if (this.CommunityGroupID > 0)
        {
            forumGroupObj.GroupGroupID = this.CommunityGroupID;
        }

        ForumGroupInfoProvider.SetForumGroupInfo(forumGroupObj);

        this.mGroupId = forumGroupObj.GroupID;

        this.RaiseOnSaved();
    }
コード例 #36
0
		private string ParseForumGroup(ForumGroupInfo f, string template)
		{
			template = template.Replace("[AF:DIR:FORUMGROUPID]", f.ForumGroupId.ToString());
			template = template.Replace("[AF:DIR:FORUMGROUPNAME]", f.GroupName);
			return template;
		}
    protected void Page_Load(object sender, EventArgs e)
    {
        if (StopProcessing || !Visible)
        {
            EnableViewState = false;
        }

        // Do not edit code name in simple mode
        if (DisplayMode == ControlDisplayModeEnum.Simple)
        {
            plcCodeName.Visible = false;
        }

        // Control initializations
        rfvGroupDisplayName.ErrorMessage = GetString("general.requiresdisplayname");
        rfvGroupName.ErrorMessage = GetString("general.requirescodename");

        if (!IsLiveSite && !RequestHelper.IsPostBack())
        {
            if (CommunityGroupID > 0)
            {
                chkInheritBaseUrl.Checked = false;
                chkInheritUnsubUrl.Checked = false;
            }

            ReloadData();
        }

        // Show/hide URL textboxes
        plcBaseAndUnsubUrl.Visible = (DisplayMode != ControlDisplayModeEnum.Simple);

        if (plcBaseAndUnsubUrl.Visible)
        {
            SetUrls();
        }

        forumGroupObj = new ForumGroupInfo();

        // Set edited object
        EditedObject = forumGroupObj;
    }
    /// <summary>
    /// Gets and bulk updates forum groups. Called when the "Get and bulk update groups" button is pressed.
    /// Expects the CreateForumGroup method to be run first.
    /// </summary>
    private bool GetAndBulkUpdateForumGroups()
    {
        // Prepare the parameters
        string where = "GroupName LIKE N'MyNewGroup%'";
        string orderBy = "";
        string columns = "";
        int topN = 10;

        // Get the data
        DataSet groups = ForumGroupInfoProvider.GetGroups(where, orderBy, topN, columns);
        if (!DataHelper.DataSourceIsEmpty(groups))
        {
            // Loop through the individual items
            foreach (DataRow groupDr in groups.Tables[0].Rows)
            {
                // Create object from DataRow
                ForumGroupInfo modifyGroup = new ForumGroupInfo(groupDr);

                // Update the properties
                modifyGroup.GroupDisplayName = modifyGroup.GroupDisplayName.ToUpper();

                // Save the changes
                ForumGroupInfoProvider.SetForumGroupInfo(modifyGroup);
            }

            return true;
        }

        return false;
    }