protected void btnSubmitComment_Click(object sender, EventArgs e) { if (Page.IsValid) { //TODO: we're allowing anonymous comments, we should have a setting for this. var objSecurity = new DotNetNuke.Security.PortalSecurity(); if (UseForumComments) { int?categoryForumId = GetCategoryForumId(); if (categoryForumId.HasValue) { int threadId = ForumProvider.GetInstance(PortalId).AddComment(categoryForumId.Value, VersionInfoObject.AuthorUserId, VersionInfoObject.Name, VersionInfoObject.Description, GetItemLinkUrl(VersionInfoObject.ItemId, PortalId), objSecurity.InputFilter(txtComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), UserId, Request.UserHostAddress); var threadIdSetting = new ItemVersionSetting(Setting.CommentForumThreadId) { PropertyValue = threadId.ToString(CultureInfo.InvariantCulture), ItemVersionId = VersionInfoObject.ItemVersionId }; threadIdSetting.Save(); //VersionInfoObject.VersionSettings.Add(threadIdSetting); //VersionInfoObject.Save(VersionInfoObject.AuthorUserId); Response.Redirect(ForumProvider.GetInstance(PortalId).GetThreadUrl(threadId), true); } } else { if (txtHumanTest.Text.Trim().ToLower() == "human") { string urlText = txtUrlComment.Text; if (urlText.Trim().Length > 0 && !urlText.StartsWith("http://", StringComparison.OrdinalIgnoreCase) && !urlText.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) { urlText = "http://" + urlText; } int approvalStatusId = ApprovalStatus.Waiting.GetId(); if (IsAdmin) {//automatically approve admin comments approvalStatusId = ApprovalStatus.Approved.GetId(); } //TODO: format the comment text UserFeedback.Comment.AddComment(VersionInfoObject.ItemVersionId, (UserId == -1 ? null : (int?)UserId), objSecurity.InputFilter(txtComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), approvalStatusId, null, objSecurity.InputFilter(txtFirstNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), objSecurity.InputFilter(txtLastNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), objSecurity.InputFilter(txtEmailAddressComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), objSecurity.InputFilter(urlText, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), DataProvider.ModuleQualifier); //see if comment notification is turned on. Notify the ItemVersion.Author if (IsCommentAuthorNotificationEnabled) { var uc = new UserController(); UserInfo ui = uc.GetUser(PortalId, VersionInfoObject.AuthorUserId); if (ui != null) { string emailBody = Localization.GetString("CommentNotificationEmail.Text", LocalResourceFile); emailBody = String.Format(emailBody , VersionInfoObject.Name , GetItemLinkUrlExternal(VersionInfoObject.ItemId) , objSecurity.InputFilter(txtFirstNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) , objSecurity.InputFilter(txtLastNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) , objSecurity.InputFilter(txtEmailAddressComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) , objSecurity.InputFilter(txtComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) ); string emailSubject = Localization.GetString("CommentNotificationEmailSubject.Text", LocalResourceFile); emailSubject = String.Format(emailSubject, VersionInfoObject.Name); Mail.SendMail(PortalSettings.Email, ui.Email, string.Empty, emailSubject, emailBody, string.Empty, "HTML", string.Empty, string.Empty, string.Empty, string.Empty); } } ConfigureComments(); pnlCommentEntry.Visible = false; pnlCommentConfirmation.Visible = true; } } } }
protected void btnSubmitComment_Click(object sender, EventArgs e) { if (Page.IsValid) { //TODO: we're allowing anonymous comments, we should have a setting for this. var objSecurity = new DotNetNuke.Security.PortalSecurity(); if (UseForumComments) { int? categoryForumId = GetCategoryForumId(); if (categoryForumId.HasValue) { int threadId = ForumProvider.GetInstance(PortalId).AddComment(categoryForumId.Value, VersionInfoObject.AuthorUserId, VersionInfoObject.Name, VersionInfoObject.Description, GetItemLinkUrl(VersionInfoObject.ItemId, PortalId), objSecurity.InputFilter(txtComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), UserId, Request.UserHostAddress); var threadIdSetting = new ItemVersionSetting(Setting.CommentForumThreadId) { PropertyValue = threadId.ToString(CultureInfo.InvariantCulture), ItemVersionId = VersionInfoObject.ItemVersionId }; threadIdSetting.Save(); //VersionInfoObject.VersionSettings.Add(threadIdSetting); //VersionInfoObject.Save(VersionInfoObject.AuthorUserId); Response.Redirect(ForumProvider.GetInstance(PortalId).GetThreadUrl(threadId), true); } } else { if (txtHumanTest.Text.Trim().ToLower() == "human") { string urlText = txtUrlComment.Text; if (urlText.Trim().Length > 0 && !urlText.StartsWith("http://", StringComparison.OrdinalIgnoreCase) && !urlText.StartsWith("https://", StringComparison.OrdinalIgnoreCase)) { urlText = "http://" + urlText; } int approvalStatusId = ApprovalStatus.Waiting.GetId(); if (IsAdmin) {//automatically approve admin comments approvalStatusId = ApprovalStatus.Approved.GetId(); } //TODO: format the comment text UserFeedback.Comment.AddComment(VersionInfoObject.ItemVersionId, (UserId == -1 ? null : (int?)UserId), objSecurity.InputFilter(txtComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), approvalStatusId, null, objSecurity.InputFilter(txtFirstNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), objSecurity.InputFilter(txtLastNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), objSecurity.InputFilter(txtEmailAddressComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), objSecurity.InputFilter(urlText, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting), DataProvider.ModuleQualifier); //see if comment notification is turned on. Notify the ItemVersion.Author if (IsCommentAuthorNotificationEnabled) { var uc = new UserController(); UserInfo ui = uc.GetUser(PortalId, VersionInfoObject.AuthorUserId); if (ui != null) { string emailBody = Localization.GetString("CommentNotificationEmail.Text", LocalResourceFile); emailBody = String.Format(emailBody , VersionInfoObject.Name , GetItemLinkUrlExternal(VersionInfoObject.ItemId) , objSecurity.InputFilter(txtFirstNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) , objSecurity.InputFilter(txtLastNameComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) , objSecurity.InputFilter(txtEmailAddressComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) , objSecurity.InputFilter(txtComment.Text, DotNetNuke.Security.PortalSecurity.FilterFlag.NoScripting) ); string emailSubject = Localization.GetString("CommentNotificationEmailSubject.Text", LocalResourceFile); emailSubject = String.Format(emailSubject, VersionInfoObject.Name); Mail.SendMail(PortalSettings.Email, ui.Email, string.Empty, emailSubject, emailBody, string.Empty, "HTML", string.Empty, string.Empty, string.Empty, string.Empty); } } ConfigureComments(); pnlCommentEntry.Visible = false; pnlCommentConfirmation.Visible = true; } } } }