protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(this.GetType()); _settings = ForumManager.GetSettings(SettingsID); _forumManager = _settings.ForumManager; _postCSSClass = IsEven ? "tintMedium" : ""; _messageCSSClass = "forum_mesBox"; if (!Post.IsApproved && _forumManager.ValidateAccessSecurityAction(ForumAction.ApprovePost, Post)) _messageCSSClass = "tintDangerous forum_mesBox"; }
protected void Page_Load(object sender, EventArgs e) { Utility.RegisterTypeForAjax(GetType()); _settings = ForumManager.GetSettings(SettingsID); _forumManager = _settings.ForumManager; TopicCSSClass = IsEven ? "tintMedium" : ""; if (!Topic.IsApproved && _forumManager.ValidateAccessSecurityAction(ForumAction.ApprovePost, Topic)) TopicCSSClass = "tintDangerous"; _imageURL = _forumManager.GetTopicImage(Topic); _tagsPanel.Visible = (Topic.Tags != null && Topic.Tags.Count > 0); tagRepeater.DataSource = Topic.Tags; tagRepeater.DataBind(); }
public AjaxResponse DoDeleteTopic(int idTopic, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); var resp = new AjaxResponse { rs2 = idTopic.ToString() }; var topic = ForumDataProvider.GetTopicByID(TenantProvider.CurrentTenantID, idTopic); if (topic == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.TopicDelete, topic)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } try { List<int> removedPostIDs; var attachmantOffsetPhysicalPaths = ForumDataProvider.RemoveTopic(TenantProvider.CurrentTenantID, topic.ID, out removedPostIDs); resp.rs1 = "1"; resp.rs3 = Resources.ForumUCResource.SuccessfullyDeleteTopicMessage; resp.rs4 = topic.ThreadID.ToString(); _forumManager.RemoveAttachments(attachmantOffsetPhysicalPaths.ToArray()); removedPostIDs.ForEach(idPost => CommonControlsConfigurer.FCKUploadsRemoveForItem(_forumManager.Settings.FileStoreModuleID, idPost.ToString())); } catch (Exception ex) { resp.rs1 = "0"; resp.rs3 = ex.Message.HtmlEncode(); } return resp; }
public AjaxResponse DoStickyTopic(int idTopic, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); var resp = new AjaxResponse { rs2 = idTopic.ToString() }; var topic = ForumDataProvider.GetTopicByID(TenantProvider.CurrentTenantID, idTopic); if (topic == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.TopicSticky, topic)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } topic.Sticky = !topic.Sticky; try { ForumDataProvider.UpdateTopic(TenantProvider.CurrentTenantID, topic.ID, topic.Title, topic.Sticky, topic.Closed); resp.rs1 = "1"; if (topic.Sticky) { resp.rs3 = Resources.ForumUCResource.SuccessfullyStickyTopicMessage; resp.rs4 = Resources.ForumUCResource.ClearStickyTopicButton; } else { resp.rs3 = Resources.ForumUCResource.SuccessfullyClearStickyTopicMessage; resp.rs4 = Resources.ForumUCResource.StickyTopicButton; } } catch (Exception e) { resp.rs1 = "0"; resp.rs3 = HttpUtility.HtmlEncode(e.Message); } return resp; }
public AjaxResponse DoApprovedTopic(int idTopic, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); var resp = new AjaxResponse { rs2 = idTopic.ToString() }; var topic = ForumDataProvider.GetTopicByID(TenantProvider.CurrentTenantID, idTopic); if (topic == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.ApprovePost, topic)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } try { ForumDataProvider.ApproveTopic(TenantProvider.CurrentTenantID, topic.ID); resp.rs1 = "1"; } catch (Exception e) { resp.rs1 = "0"; resp.rs3 = HttpUtility.HtmlEncode(e.Message); } return resp; }
protected void Page_Load(object sender, EventArgs e) { _settings = ForumManager.GetSettings(SettingsID); _forumManager = _settings.ForumManager; Utility.RegisterTypeForAjax(typeof(TagSuggest)); _subject = ""; int idTopic = 0; if (!String.IsNullOrEmpty(Request[_settings.TopicParamName])) { try { idTopic = Convert.ToInt32(Request[_settings.TopicParamName]); } catch { idTopic = 0; } } if (idTopic == 0) { Response.Redirect(_forumManager.PreviousPage.Url); return; } topicId = idTopic; EditableTopic = ForumDataProvider.GetTopicByID(TenantProvider.CurrentTenantID, idTopic); if (EditableTopic == null) { Response.Redirect(_forumManager.PreviousPage.Url); return; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.TopicEdit, EditableTopic)) { Response.Redirect(_forumManager.PreviousPage.Url); return; } _subject = EditableTopic.Title; foreach (Tag tag in EditableTopic.Tags) { _tagString += tag.Name + ","; _tagValues += tag.Name + "@" + tag.ID.ToString() + "$"; } _tagString = _tagString.TrimEnd(','); _tagValues = _tagValues.TrimEnd('$'); if (EditableTopic.Type == TopicType.Informational) _pollMaster.Visible = false; else { _pollMaster.QuestionFieldID = "forum_subject"; if (IsPostBack == false) { var question = ForumDataProvider.GetPollByID(TenantProvider.CurrentTenantID, EditableTopic.QuestionID); _pollMaster.Singleton = (question.Type == QuestionType.OneAnswer); _pollMaster.Name = question.Name; _pollMaster.ID = question.ID.ToString(); foreach (var variant in question.AnswerVariants) { _pollMaster.AnswerVariants.Add(new PollFormMaster.AnswerViarint() { ID = variant.ID.ToString(), Name = variant.Name }); } } } #region IsPostBack if (IsPostBack) { if (EditableTopic.Type == TopicType.Informational) _subject = Request["forum_subject"].Trim(); else _subject = (_pollMaster.Name??"").Trim(); if (String.IsNullOrEmpty(_subject)) { _subject = ""; _errorMessage = "<div class=\"errorBox\">" + Resources.ForumUCResource.ErrorSubjectEmpty + "</div>"; return; } if (EditableTopic.Type == TopicType.Poll && _pollMaster.AnswerVariants.Count < 2) { _errorMessage = "<div class=\"errorBox\">" + Resources.ForumUCResource.ErrorPollVariantCount + "</div>"; return; } if (!String.IsNullOrEmpty(Request["forum_tags"])) _tagString = Request["forum_tags"].Trim(); else _tagString = ""; if (!String.IsNullOrEmpty(Request["forum_search_tags"])) _tagValues = Request["forum_search_tags"].Trim(); EditableTopic.Title = _subject; if (_forumManager.ValidateAccessSecurityAction(ForumAction.TagCreate, new Thread() { ID = EditableTopic.ThreadID })) { var removeTags = EditableTopic.Tags; EditableTopic.Tags = CreateTags(); removeTags.RemoveAll(t => EditableTopic.Tags.Find(nt => nt.ID == t.ID) != null); foreach (var tag in EditableTopic.Tags) { if (tag.ID == 0) ForumDataProvider.CreateTag(TenantProvider.CurrentTenantID, EditableTopic.ID, tag.Name, tag.IsApproved); else ForumDataProvider.AttachTagToTopic(TenantProvider.CurrentTenantID, tag.ID, EditableTopic.ID); } removeTags.ForEach(t => { ForumDataProvider.RemoveTagFromTopic(TenantProvider.CurrentTenantID, t.ID, EditableTopic.ID); }); } try { if (EditableTopic.Type == TopicType.Poll) { List<AnswerVariant> variants = new List<AnswerVariant>(); int i = 1; foreach (var answVariant in _pollMaster.AnswerVariants) { variants.Add(new AnswerVariant() { ID = (String.IsNullOrEmpty(answVariant.ID) ? 0 : Convert.ToInt32(answVariant.ID)), Name = answVariant.Name, SortOrder = i - 1 }); i++; } ForumDataProvider.UpdatePoll(TenantProvider.CurrentTenantID, EditableTopic.QuestionID, _pollMaster.Singleton ? QuestionType.OneAnswer : QuestionType.SeveralAnswer, EditableTopic.Title, variants); } ForumDataProvider.UpdateTopic(TenantProvider.CurrentTenantID, EditableTopic.ID, EditableTopic.Title, EditableTopic.Sticky, EditableTopic.Closed); _errorMessage = "<div class=\"okBox\">" + Resources.ForumUCResource.SuccessfullyEditTopicMessage + "</div>"; Response.Redirect(_forumManager.PreviousPage.Url); } catch(Exception ex) { _errorMessage = "<div class=\"errorBox\">" + ex.Message.HtmlEncode() + "</div>"; return; } } #endregion }
protected void Page_Load(object sender, EventArgs e) { _settings = ForumManager.GetSettings(SettingsID); _forumManager = _settings.ForumManager; PostPageSize = string.IsNullOrEmpty(Request["size"]) ? 20 : Convert.ToInt32(Request["size"]); if (Topic == null) Response.Redirect(_settings.StartPageAbsolutePath); if ((new Thread { ID = Topic.ThreadID }).Visible == false) Response.Redirect(_settings.StartPageAbsolutePath); int currentPageNumber = 0; if (!String.IsNullOrEmpty(Request["p"])) { try { currentPageNumber = Convert.ToInt32(Request["p"]); } catch { currentPageNumber = 0; } } if (currentPageNumber <= 0) currentPageNumber = 1; int postCountInTopic; var posts = ForumDataProvider.GetPosts(TenantProvider.CurrentTenantID, Topic.ID, currentPageNumber, PostPageSize, out postCountInTopic); var postId = 0; if (!string.IsNullOrEmpty(Request["post"])) { try { postId = Convert.ToInt32(Request["post"]); } catch { postId = 0; } } if (postId != 0) { var allposts = ForumDataProvider.GetPostIDs(TenantProvider.CurrentTenantID, Topic.ID); var idx = -1; for (var j = 0; j < allposts.Count; j++) { if (allposts[j] != postId) continue; idx = j; break; } if (idx != -1) { var page = idx / 20 + 1; Response.Redirect("posts.aspx?t=" + Topic.ID + "&size=20&p=" + page + "#" + postId); } } PostPagesCount = postCountInTopic; var pageSize = PostPageSize; var pageNavigator = new PageNavigator { PageUrl = string.Format( CultureInfo.CurrentCulture, "{0}?&t={1}&size={2}", VirtualPathUtility.ToAbsolute("~/products/community/modules/forum/posts.aspx"), Topic.ID, pageSize ), //_settings.LinkProvider.PostList(Topic.ID), CurrentPageNumber = currentPageNumber, EntryCountOnPage = pageSize, VisiblePageCount = 5, EntryCount = postCountInTopic }; bottomPageNavigatorHolder.Controls.Add(pageNavigator); var i = 0; foreach (var post in posts) { var postControl = (PostControl) LoadControl(_settings.UserControlsVirtualPath + "/PostControl.ascx"); postControl.Post = post; postControl.IsEven = (i%2==0); postControl.SettingsID = SettingsID; postControl.CurrentPageNumber = currentPageNumber; postControl.PostsCount = Topic.PostCount; postListHolder.Controls.Add(postControl); i++; } ForumDataProvider.SetTopicVisit(Topic); InitScripts(); if (Topic.Type != TopicType.Poll) return; var q = ForumDataProvider.GetPollByID(TenantProvider.CurrentTenantID, Topic.QuestionID); if (q == null) return; var isVote = ForumDataProvider.IsUserVote(TenantProvider.CurrentTenantID, q.ID, SecurityContext.CurrentAccount.ID); var pollForm = new PollForm { VoteHandlerType = typeof (PollVoteHandler), Answered = isVote || Topic.Closed || !_forumManager.ValidateAccessSecurityAction(ForumAction.PollVote, q), Name = q.Name, PollID = q.ID.ToString(), Singleton = (q.Type == QuestionType.OneAnswer), AdditionalParams = _settings.ID.ToString() + "," + q.ID.ToString() }; foreach (var variant in q.AnswerVariants) { pollForm.AnswerVariants.Add(new PollForm.AnswerViarint { ID = variant.ID.ToString(), Name = variant.Name, VoteCount = variant.AnswerCount }); } pollHolder.Controls.Add(new Literal {Text = "<div style='position:relative; padding-left:20px; margin-bottom:15px;'>"}); pollHolder.Controls.Add(pollForm); pollHolder.Controls.Add(new Literal {Text = "</div>"}); }
public AjaxResponse DoDeleteAttachment(int idAttachment, int idPost, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); var resp = new AjaxResponse {rs2 = idAttachment.ToString()}; var post = ForumDataProvider.GetPostByID(TenantProvider.CurrentTenantID, idPost); if (post == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.AttachmentDelete, post)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } try { var attachment = post.Attachments.Find(a => a.ID == idAttachment); if (attachment != null) { ForumDataProvider.RemoveAttachment(TenantProvider.CurrentTenantID, attachment.ID); _forumManager.RemoveAttachments(attachment.OffsetPhysicalPath); } resp.rs1 = "1"; resp.rs3 = Resources.ForumUCResource.SuccessfullyDeleteAttachmentMessage; } catch (Exception e) { resp.rs1 = "0"; resp.rs3 = HttpUtility.HtmlEncode(e.Message); } return resp; }
public AjaxResponse DoDeletePost(int idPost, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); var resp = new AjaxResponse {rs2 = idPost.ToString()}; var post = ForumDataProvider.GetPostByID(TenantProvider.CurrentTenantID, idPost); if (post == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.PostDelete, post)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } try { var result = ForumDataProvider.RemovePost(TenantProvider.CurrentTenantID, post.ID); if (result == DeletePostResult.Successfully) { resp.rs1 = "1"; resp.rs3 = Resources.ForumUCResource.SuccessfullyDeletePostMessage; _forumManager.RemoveAttachments(post); CommonControlsConfigurer.FCKUploadsRemoveForItem(_forumManager.Settings.FileStoreModuleID, idPost.ToString()); } else if (result == DeletePostResult.ReferencesBlock) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ExistsReferencesChildPosts; } else { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorDeletePost; } } catch (Exception e) { resp.rs1 = "0"; resp.rs3 = HttpUtility.HtmlEncode(e.Message); } return resp; }
public AjaxResponse DoCloseTopic(int idTopic, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); var resp = new AjaxResponse {rs2 = idTopic.ToString()}; var topic = ForumDataProvider.GetTopicByID(TenantProvider.CurrentTenantID, idTopic); if (topic == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.TopicClose, topic)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } topic.Closed = !topic.Closed; try { ForumDataProvider.UpdateTopic(TenantProvider.CurrentTenantID, topic.ID, topic.Title, topic.Sticky, topic.Closed); resp.rs1 = "1"; resp.rs3 = topic.Closed ? Resources.ForumUCResource.SuccessfullyCloseTopicMessage : Resources.ForumUCResource.SuccessfullyOpenTopicMessage; var settings = ForumManager.GetSettings(settingsID); if (settings != null && settings.ActivityPublisher != null) settings.ActivityPublisher.TopicClose(topic); } catch (Exception e) { resp.rs1 = "0"; resp.rs3 = HttpUtility.HtmlEncode(e.Message); } return resp; }
protected void Page_Load(object sender, EventArgs e) { _settings = ForumManager.GetSettings(SettingsID); _forumManager = _settings.ForumManager; if (this.Topic == null) Response.Redirect(_settings.StartPageAbsolutePath); if ((new Thread() { ID = Topic.ThreadID }).Visible == false) Response.Redirect(_settings.StartPageAbsolutePath); int currentPageNumber = 0; if (!String.IsNullOrEmpty(Request["p"])) { try { currentPageNumber = Convert.ToInt32(Request["p"]); } catch { currentPageNumber = 0; } } if (currentPageNumber <= 0) currentPageNumber = 1; int postCountInTopic = 0; var posts = ForumDataProvider.GetPosts(TenantProvider.CurrentTenantID, Topic.ID, currentPageNumber, _settings.PostCountOnPage, out postCountInTopic); PageNavigator pageNavigator = new PageNavigator() { PageUrl = _settings.LinkProvider.PostList(Topic.ID), CurrentPageNumber = currentPageNumber, EntryCountOnPage = _settings.PostCountOnPage, VisiblePageCount = 5, EntryCount = postCountInTopic }; bottomPageNavigatorHolder.Controls.Add(pageNavigator); int i = 0; foreach (Post post in posts) { PostControl postControl = (PostControl)LoadControl(_settings.UserControlsVirtualPath+"/PostControl.ascx"); postControl.Post = post; postControl.IsEven = (i%2==0); postControl.SettingsID = SettingsID; postControl.CurrentPageNumber = currentPageNumber; postControl.PostsCount = Topic.PostCount; this.postListHolder.Controls.Add(postControl); i++; } ForumDataProvider.SetTopicVisit(Topic); if (Topic.Type == TopicType.Poll) { var q = ForumDataProvider.GetPollByID(TenantProvider.CurrentTenantID, Topic.QuestionID); if(q==null) return; var isVote = ForumDataProvider.IsUserVote(TenantProvider.CurrentTenantID, q.ID, SecurityContext.CurrentAccount.ID); var pollForm = new PollForm(); pollForm.VoteHandlerType = typeof(PollVoteHandler); pollForm.Answered =isVote ||Topic.Closed || !_forumManager.ValidateAccessSecurityAction(ForumAction.PollVote, q) || ASC.Core.SecurityContext.DemoMode || (SetupInfo.WorkMode == WorkMode.Promo); pollForm.Name = q.Name; pollForm.PollID = q.ID.ToString(); pollForm.Singleton = (q.Type == QuestionType.OneAnswer); pollForm.AdditionalParams = _settings.ID.ToString() + "," + q.ID.ToString(); foreach (var variant in q.AnswerVariants) { pollForm.AnswerVariants.Add(new PollForm.AnswerViarint() { ID = variant.ID.ToString(), Name = variant.Name, VoteCount = variant.AnswerCount }); } pollHolder.Controls.Add(new Literal() { Text = "<div style='position:relative; padding-left:20px; margin-bottom:15px;'>" }); pollHolder.Controls.Add(pollForm); pollHolder.Controls.Add(new Literal() { Text = "</div>" }); } }
public AjaxResponse DoApprovedPost(int idPost, Guid settingsID) { _forumManager = ForumManager.GetForumManager(settingsID); AjaxResponse resp = new AjaxResponse(); resp.rs2 = idPost.ToString(); var post = ForumDataProvider.GetPostByID(TenantProvider.CurrentTenantID, idPost); if (post == null) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } if (!_forumManager.ValidateAccessSecurityAction(ForumAction.ApprovePost, post)) { resp.rs1 = "0"; resp.rs3 = Resources.ForumUCResource.ErrorAccessDenied; return resp; } try { ForumDataProvider.ApprovePost(TenantProvider.CurrentTenantID, post.ID); resp.rs1 = "1"; } catch (Exception e) { resp.rs1 = "0"; resp.rs3 = HttpUtility.HtmlEncode(e.Message); } return resp; }