protected void btnDelete_Click(object sender, EventArgs e) { int forumPostId = 0; int.TryParse(lblForumPostId.Text, out forumPostId); var forumPost = ForumManager.GetPostById(forumPostId); if (forumPost != null) { var forumTopic = forumPost.Topic; if (!ForumManager.IsUserAllowedToDeletePost(NopContext.Current.User, forumPost)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } ForumManager.DeletePost(forumPost.ForumPostId); string url = string.Empty; //get topic one more time because it can be deleted forumTopic = ForumManager.GetTopicById(forumPost.TopicId); if (forumTopic != null) { url = SEOHelper.GetForumTopicUrl(forumTopic.ForumTopicId); } else { url = SEOHelper.GetForumMainUrl(); } Response.Redirect(url); } }
protected void BtnQuote_OnClick(object sender, EventArgs e) { int forumPostId = 0; int.TryParse(lblForumPostId.Text, out forumPostId); var forumPost = ForumManager.GetPostById(forumPostId); if (forumPost != null) { Response.Redirect(SEOHelper.GetNewForumPostUrl(forumPost.TopicId, forumPost.ForumPostId)); } }
protected void btnEdit_Click(object sender, EventArgs e) { int forumPostId = 0; int.TryParse(lblForumPostId.Text, out forumPostId); var forumPost = ForumManager.GetPostById(forumPostId); if (forumPost != null) { if (!ForumManager.IsUserAllowedToEditPost(NopContext.Current.User, forumPost)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } string url = SEOHelper.GetEditForumPostUrl(forumPost.ForumPostId); Response.Redirect(url); } }
private void BindData() { pnlError.Visible = false; txtTopicBodySimple.Visible = false; txtTopicBodyBBCode.Visible = false; txtTopicBodyHtml.Visible = false; switch (ForumManager.ForumEditor) { case EditorTypeEnum.SimpleTextBox: { txtTopicBodySimple.Visible = true; rfvTopicBody.ControlToValidate = "txtTopicBodySimple"; } break; case EditorTypeEnum.BBCodeEditor: { txtTopicBodyBBCode.Visible = true; rfvTopicBody.ControlToValidate = "txtTopicBodyBBCode"; } break; case EditorTypeEnum.HtmlEditor: { txtTopicBodyHtml.Visible = true; rfvTopicBody.Enabled = false; } break; default: break; } if (this.AddTopic) { #region Adding topic var forum = ForumManager.GetForumById(this.ForumId); if (forum == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (NopContext.Current.User == null && ForumManager.AllowGuestsToCreateTopics) { CustomerManager.CreateAnonymousUser(); } if (!ForumManager.IsUserAllowedToCreateTopic(NopContext.Current.User, forum)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } lblTitle.Text = GetLocaleResourceString("Forum.NewTopic"); phForumName.Visible = true; lblForumName.Text = Server.HtmlEncode(forum.Name); txtTopicTitle.Visible = true; txtTopicTitle.Text = string.Empty; lblTopicTitle.Visible = false; lblTopicTitle.Text = string.Empty; ctrlForumBreadcrumb.ForumId = forum.ForumId; ctrlForumBreadcrumb.BindData(); phPriority.Visible = ForumManager.IsUserAllowedToSetTopicPriority(NopContext.Current.User); phSubscribe.Visible = ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User); #endregion } else if (this.EditTopic) { #region Editing topic var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToEditTopic(NopContext.Current.User, forumTopic)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } var forum = forumTopic.Forum; if (forum == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } lblTitle.Text = GetLocaleResourceString("Forum.EditTopic"); phForumName.Visible = true; lblForumName.Text = Server.HtmlEncode(forum.Name); txtTopicTitle.Visible = true; txtTopicTitle.Text = forumTopic.Subject; lblTopicTitle.Visible = false; lblTopicTitle.Text = string.Empty; ctrlForumBreadcrumb.ForumTopicId = forumTopic.ForumTopicId; ctrlForumBreadcrumb.BindData(); CommonHelper.SelectListItem(this.ddlPriority, forumTopic.TopicTypeId); var firstPost = forumTopic.FirstPost; if (firstPost != null) { switch (ForumManager.ForumEditor) { case EditorTypeEnum.SimpleTextBox: { txtTopicBodySimple.Text = firstPost.Text; } break; case EditorTypeEnum.BBCodeEditor: { txtTopicBodyBBCode.Text = firstPost.Text; } break; case EditorTypeEnum.HtmlEditor: { txtTopicBodyHtml.Content = firstPost.Text; } break; default: break; } } phPriority.Visible = ForumManager.IsUserAllowedToSetTopicPriority(NopContext.Current.User); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { phSubscribe.Visible = true; var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, 1, 0).FirstOrDefault(); cbSubscribe.Checked = forumSubscription != null; } else { phSubscribe.Visible = false; } #endregion } else if (this.AddPost) { #region Adding post var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (NopContext.Current.User == null && ForumManager.AllowGuestsToCreatePosts) { CustomerManager.CreateAnonymousUser(); } if (!ForumManager.IsUserAllowedToCreatePost(NopContext.Current.User, forumTopic)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } ctrlForumBreadcrumb.ForumTopicId = forumTopic.ForumTopicId; ctrlForumBreadcrumb.BindData(); lblTitle.Text = GetLocaleResourceString("Forum.NewPost"); phForumName.Visible = false; lblForumName.Text = string.Empty; txtTopicTitle.Visible = false; txtTopicTitle.Text = string.Empty; lblTopicTitle.Visible = true; lblTopicTitle.Text = Server.HtmlEncode(forumTopic.Subject); var quotePost = ForumManager.GetPostById(QuotePostId); if (quotePost != null && quotePost.TopicId == forumTopic.ForumTopicId) { switch (ForumManager.ForumEditor) { case EditorTypeEnum.SimpleTextBox: txtTopicBodySimple.Text = String.Format("{0}:\n{1}\n", CustomerManager.FormatUserName(quotePost.User), quotePost.Text); break; case EditorTypeEnum.BBCodeEditor: txtTopicBodyBBCode.Text = String.Format("[quote={0}]{1}[/quote]", CustomerManager.FormatUserName(quotePost.User), BBCodeHelper.RemoveQuotes(quotePost.Text)); break; case EditorTypeEnum.HtmlEditor: txtTopicBodyHtml.Content = String.Format("<b>{0}:</b><p style=\"padding: 5px 5px 5px 5px; border: dashed 1px black; background-color: #ffffff;\">{1}</p>", CustomerManager.FormatUserName(quotePost.User), quotePost.Text); break; } } phPriority.Visible = false; //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User)) { phSubscribe.Visible = true; var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, 1, 0).FirstOrDefault(); cbSubscribe.Checked = forumSubscription != null; } else { phSubscribe.Visible = false; } #endregion } else if (this.EditPost) { #region Editing post var forumPost = ForumManager.GetPostById(this.ForumPostId); if (forumPost == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToEditPost(NopContext.Current.User, forumPost)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } var forumTopic = forumPost.Topic; if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } lblTitle.Text = GetLocaleResourceString("Forum.EditPost"); phForumName.Visible = false; lblForumName.Text = string.Empty; txtTopicTitle.Visible = false; txtTopicTitle.Text = string.Empty; lblTopicTitle.Visible = true; lblTopicTitle.Text = Server.HtmlEncode(forumTopic.Subject); ctrlForumBreadcrumb.ForumTopicId = forumTopic.ForumTopicId; ctrlForumBreadcrumb.BindData(); switch (ForumManager.ForumEditor) { case EditorTypeEnum.SimpleTextBox: { txtTopicBodySimple.Text = forumPost.Text; } break; case EditorTypeEnum.BBCodeEditor: { txtTopicBodyBBCode.Text = forumPost.Text; } break; case EditorTypeEnum.HtmlEditor: { txtTopicBodyHtml.Content = forumPost.Text; } break; default: break; } phPriority.Visible = false; //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { phSubscribe.Visible = true; var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, 1, 0).FirstOrDefault(); cbSubscribe.Checked = forumSubscription != null; } else { phSubscribe.Visible = false; } #endregion } else { Response.Redirect(SEOHelper.GetForumMainUrl()); } }
protected void btnCancel_Click(object sender, EventArgs e) { try { if (this.AddTopic) { var forum = ForumManager.GetForumById(this.ForumId); if (forum != null) { string forumUrl = SEOHelper.GetForumUrl(forum); Response.Redirect(forumUrl); } else { Response.Redirect(SEOHelper.GetForumMainUrl()); } } else if (this.EditTopic) { var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic != null) { string topicUrl = SEOHelper.GetForumTopicUrl(forumTopic); Response.Redirect(topicUrl); } else { Response.Redirect(SEOHelper.GetForumMainUrl()); } } else if (this.AddPost) { var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic != null) { string topicUrl = SEOHelper.GetForumTopicUrl(forumTopic); Response.Redirect(topicUrl); } else { Response.Redirect(SEOHelper.GetForumMainUrl()); } } else if (this.EditPost) { var forumPost = ForumManager.GetPostById(this.ForumPostId); if (forumPost != null) { string topicUrl = SEOHelper.GetForumTopicUrl(forumPost.TopicId); Response.Redirect(topicUrl); } else { Response.Redirect(SEOHelper.GetForumMainUrl()); } } } catch (Exception exc) { pnlError.Visible = true; lErrorMessage.Text = Server.HtmlEncode(exc.Message); } }
protected void btnSubmit_Click(object sender, EventArgs e) { try { string text = string.Empty; switch (ForumManager.ForumEditor) { case EditorTypeEnum.SimpleTextBox: { text = txtTopicBodySimple.Text.Trim(); } break; case EditorTypeEnum.BBCodeEditor: { text = txtTopicBodyBBCode.Text.Trim(); } break; case EditorTypeEnum.HtmlEditor: { text = txtTopicBodyHtml.Content; } break; default: break; } string subject = txtTopicTitle.Text; var topicType = ForumTopicTypeEnum.Normal; bool subscribe = cbSubscribe.Checked; string IPAddress = NopContext.Current.UserHostAddress; DateTime nowDT = DateTime.UtcNow; if (ForumManager.IsUserAllowedToSetTopicPriority(NopContext.Current.User)) { topicType = (ForumTopicTypeEnum)Enum.ToObject(typeof(ForumTopicTypeEnum), int.Parse(ddlPriority.SelectedItem.Value)); } text = text.Trim(); if (String.IsNullOrEmpty(text)) { throw new NopException(GetLocaleResourceString("Forum.TextCannotBeEmpty")); } if (this.AddTopic) { #region Adding topic var forum = ForumManager.GetForumById(this.ForumId); if (forum == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToCreateTopic(NopContext.Current.User, forum)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } subject = subject.Trim(); if (String.IsNullOrEmpty(subject)) { throw new NopException(GetLocaleResourceString("Forum.TopicSubjectCannotBeEmpty")); } var forumTopic = ForumManager.InsertTopic(forum.ForumId, NopContext.Current.User.CustomerId, topicType, subject, 0, 0, 0, 0, null, nowDT, nowDT, true); var forumPost = ForumManager.InsertPost(forumTopic.ForumTopicId, NopContext.Current.User.CustomerId, text, IPAddress, nowDT, nowDT, false); forumTopic = ForumManager.UpdateTopic(forumTopic.ForumTopicId, forumTopic.ForumId, forumTopic.UserId, forumTopic.TopicType, forumTopic.Subject, 1, 0, forumPost.ForumPostId, forumTopic.UserId, forumPost.CreatedOn, forumTopic.CreatedOn, nowDT); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User)) { if (subscribe) { var forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, nowDT); } } string topicURL = SEOHelper.GetForumTopicUrl(forumTopic); Response.Redirect(topicURL); #endregion } else if (this.EditTopic) { #region Editing topic var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToEditTopic(NopContext.Current.User, forumTopic)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } subject = subject.Trim(); if (String.IsNullOrEmpty(subject)) { throw new NopException(GetLocaleResourceString("Forum.TopicSubjectCannotBeEmpty")); } forumTopic = ForumManager.UpdateTopic(forumTopic.ForumTopicId, forumTopic.ForumId, forumTopic.UserId, topicType, subject, forumTopic.NumPosts, forumTopic.Views, forumTopic.LastPostId, forumTopic.LastPostUserId, forumTopic.LastPostTime, forumTopic.CreatedOn, nowDT); var firstPost = forumTopic.FirstPost; if (firstPost != null) { firstPost = ForumManager.UpdatePost(firstPost.ForumPostId, firstPost.TopicId, firstPost.UserId, text, firstPost.IPAddress, firstPost.CreatedOn, nowDT); } else { //error firstPost = ForumManager.InsertPost(forumTopic.ForumTopicId, forumTopic.UserId, text, IPAddress, forumTopic.CreatedOn, nowDT, false); } //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, 1, 0).FirstOrDefault(); if (subscribe) { if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumTopic.ForumTopicId, nowDT); } } else { if (forumSubscription != null) { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } } } string topicURL = SEOHelper.GetForumTopicUrl(forumTopic); Response.Redirect(topicURL); #endregion } else if (this.AddPost) { #region Adding post var forumTopic = ForumManager.GetTopicById(this.ForumTopicId); if (forumTopic == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToCreatePost(NopContext.Current.User, forumTopic)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } var forumPost = ForumManager.InsertPost(this.ForumTopicId, NopContext.Current.User.CustomerId, text, IPAddress, nowDT, nowDT, true); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumPost.TopicId, 1, 0).FirstOrDefault(); if (subscribe) { if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumPost.TopicId, nowDT); } } else { if (forumSubscription != null) { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } } } int pageSize = 10; if (ForumManager.PostsPageSize > 0) { pageSize = ForumManager.PostsPageSize; } int pageIndex = ForumManager.CalculateTopicPageIndex(forumPost.TopicId, pageSize, forumPost.ForumPostId); string topicURL = SEOHelper.GetForumTopicUrl(forumPost.TopicId, "p", pageIndex + 1, forumPost.ForumPostId); Response.Redirect(topicURL); #endregion } else if (this.EditPost) { #region Editing post var forumPost = ForumManager.GetPostById(this.ForumPostId); if (forumPost == null) { Response.Redirect(SEOHelper.GetForumMainUrl()); } if (!ForumManager.IsUserAllowedToEditPost(NopContext.Current.User, forumPost)) { string loginURL = SEOHelper.GetLoginPageUrl(true); Response.Redirect(loginURL); } forumPost = ForumManager.UpdatePost(forumPost.ForumPostId, forumPost.TopicId, forumPost.UserId, text, forumPost.IPAddress, forumPost.CreatedOn, nowDT); //subscription if (ForumManager.IsUserAllowedToSubscribe(NopContext.Current.User.CustomerId)) { var forumSubscription = ForumManager.GetAllSubscriptions(NopContext.Current.User.CustomerId, 0, forumPost.TopicId, 1, 0).FirstOrDefault(); if (subscribe) { if (forumSubscription == null) { forumSubscription = ForumManager.InsertSubscription(Guid.NewGuid(), NopContext.Current.User.CustomerId, 0, forumPost.TopicId, nowDT); } } else { if (forumSubscription != null) { ForumManager.DeleteSubscription(forumSubscription.ForumSubscriptionId); } } } int pageSize = 10; if (ForumManager.PostsPageSize > 0) { pageSize = ForumManager.PostsPageSize; } int pageIndex = ForumManager.CalculateTopicPageIndex(forumPost.TopicId, pageSize, forumPost.ForumPostId); string topicURL = SEOHelper.GetForumTopicUrl(forumPost.TopicId, "p", pageIndex + 1, forumPost.ForumPostId); Response.Redirect(topicURL); #endregion } } catch (Exception exc) { pnlError.Visible = true; lErrorMessage.Text = Server.HtmlEncode(exc.Message); } }