public void FormatDisableHtml() { // From Code Project forums... _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<script", "<script"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</script", "</script"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<input", "<input"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</input", "</input"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<object", "<object"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</object", "</object"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<applet", "<applet"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</applet", "</applet"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<form", "<form"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</form", "</form"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<table", "<table"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</table", "</table"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<tr", "<tr"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</tr", "</tr"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<td", "<td"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</td", "</td"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<select", "<select"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</select", "</select"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<option", "<option"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</option", "</option"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "<iframe", "<iframe"); _text = WebSolutionUtils.ReplaceCaseInsensitive(_text, "</iframe", "</iframe"); }
private void SubmitButton_Click(object sender, EventArgs e) { // Only allow an action to be completed if the subject and body validators // are valid - i.e. we will not allow empty strings in either text box. if (_bodyValidator.IsValid && _subjectValidator.IsValid) { // Create forum post object ForumPost forumPost = new ForumPost(); // Post specific fields forumPost.Notify = _notifyCheckBox.Checked; forumPost.Body = _bodyTextBox.Text; forumPost.Subject = _subjectTextBox.Text; forumPost.RemoteAddr = Page.Request.ServerVariables["REMOTE_ADDR"]; // User specific fields forumPost.User = new User(); forumPost.User.UserID = _userID; // Perform action depending on button command name int postID = 0; string action = _submitButton.CommandName; // Perform new post, reply, quote or edit action switch (action) { case "new": postID = AddNew(forumPost); break; case "reply": case "quote": forumPost.ParentPostID = _postID; postID = AddReply(forumPost); break; case "edit": forumPost.PostID = _postID; postID = _postID; EditPost(forumPost); break; } // Redirect user to page displaying new information string redirectURL = null; if (postID > 0) { redirectURL = WebSolutionUtils.GetURL(GetDocument(), Page, "postid=" + postID, "forumaction=&threadspage=&searchpage="); } else { redirectURL = WebSolutionUtils.GetURL(GetDocument(), Page, "", "postid=&forumaction=&threadspage=&searchpage="); } if (DocumentID > 0) { redirectURL = "../" + redirectURL; } Page.Response.Redirect(redirectURL); } }
private void RenderThreadsPaging(HtmlTextWriter writer) { // Start the new column writer.AddAttribute(HtmlTextWriterAttribute.Align, "right"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // First, previous, next, last thread hyperlinks int pageCount = ((_threadCount - 1) / _threadsPerPage) + 1; bool backwards = _threadsPage != 0; bool forwards = _threadsPage != pageCount - 1; // << First and < Previous links if (backwards) { // << First writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, "", "postid=&forumaction=&searchpage=&threadspage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("<<"); writer.RenderEndTag(); // A writer.Write(" "); // < Previous writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("threadspage={0}", _threadsPage), "postid=&forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("< Previous"); writer.RenderEndTag(); // A } // Divider if (backwards && forwards) { writer.Write(" | "); } // Next > and Last >> links if (forwards) { // Next > writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("threadspage={0}", _threadsPage + 2), "postid=&forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Next >"); writer.RenderEndTag(); // A writer.Write(" "); // Last >> writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("threadspage={0}", pageCount), "postid=&forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(">>"); writer.RenderEndTag(); // A } // Close column writer.RenderEndTag(); // Td }
private void RenderHeader(HtmlTextWriter writer) { // Start a new row, 25 pixels high that spans two columns writer.AddAttribute(HtmlTextWriterAttribute.Height, "25"); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "6"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // We will put the header within a table writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); writer.RenderBeginTag(HtmlTextWriterTag.Table); // Left hand side link: All Threads | New Thread writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Align, "left"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // All Threads hyper link writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, "forumaction=showall", "searchterms=&threadspage=&searchpage=&postid=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("All Threads"); writer.RenderEndTag(); // A writer.Write(" | "); // New Thread link writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, "forumaction=new", "postid=&threadspage=&searchpage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("New Thread"); writer.RenderEndTag(); // A writer.RenderEndTag(); // Td // Right hand side: Search text box writer.AddAttribute(HtmlTextWriterAttribute.Align, "right"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // Search list box writer.Write("Search: "); _searchTextBox.RenderControl(writer); writer.RenderEndTag(); // Td // End table and row writer.RenderEndTag(); // Tr writer.RenderEndTag(); // Table writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr }
protected void CheckStartSearch(string searchTerms) { // Redirect user to search page if (searchTerms.Length > 0) { string redirectURL = null; searchTerms = searchTerms.Replace("&", ":amp:"); redirectURL = WebSolutionUtils.GetURL(GetDocument(), Page, "forumaction=search&searchterms=" + searchTerms, "postid=&threadspage=&searchpage="); if (DocumentID > 0) { redirectURL = "../" + redirectURL; } Page.Response.Redirect(redirectURL); } }
private void RenderHeader(HtmlTextWriter writer) { // Start a new row, 25 pixels high that spans two columns writer.AddAttribute(HtmlTextWriterAttribute.Height, "25"); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Colspan, "2"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // We will put the header within a table writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); writer.RenderBeginTag(HtmlTextWriterTag.Table); // Left hand side link: All Threads | Back to Referring Post writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Align, "left"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // All Threads link always displayed writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, "forumaction=showall", "postid=&threadspage=&searchpage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("All Threads"); writer.RenderEndTag(); // A // Back to Referring Post not displayed when creating a new thread if (_action == "edit" || _action == "reply" || _action == "quote") { writer.Write(" | "); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, "postid=" + _postID + "#" + _postID, "forumaction=&threadspage=&searchpage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Back to Referring Post"); writer.RenderEndTag(); // A } writer.RenderEndTag(); // Td // End table and row writer.RenderEndTag(); // Tr writer.RenderEndTag(); // Table writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr }
public void Render(HtmlTextWriter writer, int threadsPerPage, DateTime lastVisited, Page page, string images, string document, int postsPerPage, ForumUtils.ForumView forumView) { // Start row writer.RenderBeginTag(HtmlTextWriterTag.Tr); // Render thread image. If the total number of posts in this thread is great than the // number of posts that can be displayed on one page, then we display a special image that // indicates this thread is "on fire". int totalPosts = (int)Replies + 1; writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRow"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "25"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "middle"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.RenderBeginTag(HtmlTextWriterTag.Td); if (totalPosts > threadsPerPage) { writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "board_thread_fire.gif"); } else { writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "board_thread.gif"); } writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); // Img writer.RenderEndTag(); // Td // Thread subject with link (and indicate whether or not this thread is pinned) writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRow"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "middle"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "left"); writer.AddAttribute(HtmlTextWriterAttribute.Height, "25"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); if (PinnedDate > DateTime.Now) { writer.RenderBeginTag(HtmlTextWriterTag.B); writer.Write("Sticky: "); writer.RenderEndTag(); // B } writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", ThreadID), "forumaction=&searchpage=&threadspage=") + string.Format("#{0}", ThreadID)); writer.RenderBeginTag(HtmlTextWriterTag.A); ForumText subjectForumText = new ForumText(Subject); writer.Write(subjectForumText.ProcessSingleLine(images)); writer.RenderEndTag(); // A // If thread spans several pages, then we need to indicate this in the thread list // by displaying text like (Page 1, 2, 3, ..., 5) if (totalPosts > threadsPerPage) { writer.Write(" (Page: "); int pageCount = ((totalPosts - 1) / threadsPerPage) + 1; int pageCountCapped = Math.Min(pageCount, 4); bool showFinalPage = (pageCountCapped < pageCount); for (int threadPage = 0; threadPage < pageCountCapped; threadPage++) { int postID = ForumDB.GetPostFromThreadAndPage(ThreadID, threadPage, postsPerPage, forumView); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", postID), "forumaction=&searchpage=&threadspage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(string.Format("{0}", threadPage + 1)); writer.RenderEndTag(); // A if ((threadPage < pageCountCapped - 1) || showFinalPage) { writer.Write(", "); } } if (showFinalPage) { if (pageCount > 5) { writer.Write("..., "); } int postID = ForumDB.GetPostFromThreadAndPage(ThreadID, pageCount - 1, postsPerPage, forumView); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", postID), "forumaction=&searchpage=&threadspage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(pageCount.ToString()); writer.RenderEndTag(); // A } writer.Write(")"); } // Display new image if this thread is new since last time user visited if (lastVisited < _dateLastPost) { writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "new.gif"); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); } writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // Started by writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); ForumText startedByAliasForumText = new ForumText(StartedByAlias); writer.Write(startedByAliasForumText.ProcessSingleLine(images)); writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // Replies writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "50"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(Replies); writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // Views writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "50"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(Views); writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // Last Post writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "140"); writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, "nowrap"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionSmallerFont"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(DateLastPost.ToString("dd MMM yy")); writer.Write(" "); writer.Write(DateLastPost.ToString("t")); writer.Write("<BR>"); ForumText lastPostAliasForumText = new ForumText(LastPostAlias); writer.Write(lastPostAliasForumText.ProcessSingleLine(images)); writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", LastPostID), "forumaction=&searchpage=&threadspage=") + string.Format("#{0}", LastPostID)); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "last_post.gif"); writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); // Img writer.RenderEndTag(); // A writer.RenderEndTag(); // Span writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // End row writer.RenderEndTag(); // Tr }
public void Render(HtmlTextWriter writer, bool displayActions, ForumUtils.ForumView forumView, bool selected, DateTime lastVisited, Page page, int loggedOnUserID, string avatar, string images, string document) { // New row writer.RenderBeginTag(HtmlTextWriterTag.Tr); // Left hand side contains user information (user alias, avatar, number of posts etc) writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRow"); writer.AddAttribute(HtmlTextWriterAttribute.Nowrap, "nowrap"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "top"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "160"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // We will put this user information in its own table in the first column writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "3"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "160"); writer.RenderBeginTag(HtmlTextWriterTag.Table); // User alias and number of posts writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.B); ForumText userAliasForumText = new ForumText(User.Alias); writer.Write(userAliasForumText.ProcessSingleLine(images)); writer.RenderEndTag(); // B writer.RenderBeginTag(HtmlTextWriterTag.Br); writer.Write(string.Format("Posts: {0}", User.PostCount)); writer.RenderEndTag(); // Br writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr // Avatar if (forumView == ForumUtils.ForumView.TreeViewDynamic) { writer.AddAttribute(HtmlTextWriterAttribute.Id, PostID.ToString() + "_avatarrow"); if (!selected) { writer.AddStyleAttribute("display", "none"); } } if ((selected && forumView == ForumUtils.ForumView.TreeView) || forumView != ForumUtils.ForumView.TreeView) { writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); if (avatar != string.Empty) { writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Src, avatar); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); // Img } writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr } // End user information table writer.RenderEndTag(); // Table writer.RenderEndTag(); // Td // Start row which will display subject, body and actions (reply, edit, etc) writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRow"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "top"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); if (forumView != ForumUtils.ForumView.FlatView && !selected) { writer.AddAttribute(HtmlTextWriterAttribute.Height, "100%"); } if (forumView == ForumUtils.ForumView.TreeViewDynamic) { writer.AddAttribute(HtmlTextWriterAttribute.Id, PostID.ToString() + "_headercell"); } writer.RenderBeginTag(HtmlTextWriterTag.Td); // Start a new table for this information writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "3"); writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); if (forumView != ForumUtils.ForumView.FlatView && !selected) { writer.AddAttribute(HtmlTextWriterAttribute.Height, "100%"); } writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); if (forumView == ForumUtils.ForumView.TreeViewDynamic) { writer.AddAttribute(HtmlTextWriterAttribute.Id, PostID.ToString() + "_messagetable"); } writer.RenderBeginTag(HtmlTextWriterTag.Table); // Highlighted row (subject and when posted information) writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Tr); if (forumView != ForumUtils.ForumView.FlatView) { RenderLevelIndentCell(writer); } writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.RenderBeginTag(HtmlTextWriterTag.B); writer.AddAttribute(HtmlTextWriterAttribute.Name, PostID.ToString()); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.RenderEndTag(); // Provide link to select a different post writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", PostID), "forumaction=&searchpage=&threadspage=") + "#" + PostID); if (forumView == ForumUtils.ForumView.TreeViewDynamic) { writer.AddAttribute(HtmlTextWriterAttribute.Id, "DynMessLink"); writer.AddAttribute(HtmlTextWriterAttribute.Name, PostID.ToString()); } writer.RenderBeginTag(HtmlTextWriterTag.A); ForumText subjectForumText = new ForumText(Subject); writer.Write(subjectForumText.ProcessSingleLine(images)); writer.RenderEndTag(); // A writer.RenderEndTag(); // B // Display new image if this post is new since last time user visited if (lastVisited < PostDate) { writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "new.gif"); writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); } writer.RenderBeginTag(HtmlTextWriterTag.Br); writer.Write(string.Format("Posted: {0} {1}", PostDate.ToString("dd MMM yy"), PostDate.ToString("t"))); writer.RenderEndTag(); // Br writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr // Message row if ((selected && forumView == ForumUtils.ForumView.TreeView) || forumView != ForumUtils.ForumView.TreeView) { writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); if (forumView == ForumUtils.ForumView.TreeViewDynamic) { writer.AddAttribute(HtmlTextWriterAttribute.Id, PostID.ToString() + "_messagerow"); if (!selected) { writer.AddStyleAttribute("display", "none"); } } writer.RenderBeginTag(HtmlTextWriterTag.Tr); if (forumView != ForumUtils.ForumView.FlatView) { RenderLevelIndentCell(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); ForumText bodyForumText = new ForumText(Body); writer.Write(bodyForumText.Process(images)); writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr } // Reply, Quote, Edit, Get Link row if (displayActions && ((selected && forumView == ForumUtils.ForumView.TreeView) || forumView != ForumUtils.ForumView.TreeView)) { if (forumView == ForumUtils.ForumView.TreeViewDynamic) { writer.AddAttribute(HtmlTextWriterAttribute.Id, PostID.ToString() + "_actionsrow"); if (!selected) { writer.AddStyleAttribute("display", "none"); } } writer.RenderBeginTag(HtmlTextWriterTag.Tr); if (forumView != ForumUtils.ForumView.FlatView) { RenderLevelIndentCell(writer); } writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Border, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Table); writer.RenderBeginTag(HtmlTextWriterTag.Tr); writer.AddAttribute(HtmlTextWriterAttribute.Align, "Left"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // Reply link writer.Write("["); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}&forumaction=reply", PostID), "searchpage=&threadspage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Reply"); writer.RenderEndTag(); // A writer.Write("]"); // Quote link writer.Write("["); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}&forumaction=quote", PostID), "searchpage=&threadspage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Quote"); writer.RenderEndTag(); // A writer.Write("]"); if (forumView == ForumUtils.ForumView.TreeViewDynamic) { // Get Link writer.Write("["); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", PostID), "forumaction=&searchpage=&threadspage=") + "#" + PostID); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Get Link"); writer.RenderEndTag(); // A writer.Write("]"); } writer.RenderEndTag(); // Td writer.AddAttribute(HtmlTextWriterAttribute.Align, "Right"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // Edit link (only allowed if this post by currently logged on user or an administrator) if (User.UserID == loggedOnUserID || page.User.IsInRole("ForumAdmin")) { writer.Write("["); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}&forumaction=edit", PostID), "searchpage=&threadspage=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Edit"); writer.RenderEndTag(); // A writer.Write("]"); } writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr writer.RenderEndTag(); // Table writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr } // Close out table and this row writer.RenderEndTag(); // Table writer.RenderEndTag(); // Td writer.RenderEndTag(); // Tr }
public void Render(HtmlTextWriter writer, DateTime lastVisited, Page page, string images, string document) { // Start row writer.RenderBeginTag(HtmlTextWriterTag.Tr); // Render post image writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRow"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "25"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "middle"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "board_thread.gif"); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); // Img writer.RenderEndTag(); // Td // Post subject with hyperlink writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRow"); writer.AddAttribute(HtmlTextWriterAttribute.Valign, "middle"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "left"); writer.AddAttribute(HtmlTextWriterAttribute.Height, "25"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(document, page, string.Format("postid={0}", PostID), "forumaction=&threadspage=&searchpage=&searchterms=") + string.Format("#{0}", PostID)); writer.RenderBeginTag(HtmlTextWriterTag.A); ForumText subjectForumText = new ForumText(Subject); writer.Write(subjectForumText.ProcessSingleLine(images)); writer.RenderEndTag(); // A // Display new image if this post is new since last time user visited if (lastVisited < PostDate) { writer.Write(" "); writer.AddAttribute(HtmlTextWriterAttribute.Src, images + "new.gif"); writer.RenderBeginTag(HtmlTextWriterTag.Img); writer.RenderEndTag(); } writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // Posted by writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); ForumText aliasForumText = new ForumText(Alias); writer.Write(aliasForumText.ProcessSingleLine(images)); writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // Date writer.AddAttribute(HtmlTextWriterAttribute.Class, "WebSolutionRowHighlight"); writer.AddAttribute(HtmlTextWriterAttribute.Align, "center"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "100"); writer.RenderBeginTag(HtmlTextWriterTag.Td); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.Write(string.Format("{0}", PostDate.ToString("dd MMM yy"))); writer.RenderEndTag(); // Span writer.RenderEndTag(); // Td // End row writer.RenderEndTag(); // Tr }
private void EmailReplyNotification(ForumPost parentForumPost, ForumPost forumPost) { User user = UserDB.GetUser(forumPost.User.UserID); User userParent = UserDB.GetUser(parentForumPost.User.UserID); StringBuilder sb = new StringBuilder(); sb.AppendFormat("A reply from {0} has been posted to your message entitled \"{1}\"\r\n\r\n", user.Alias, parentForumPost.Subject); sb.AppendFormat("Subject: \"{0}\"\r\n\r\n", forumPost.Subject); sb.AppendFormat("Reply: \r\n\r\n{0}\r\n\r\n", forumPost.Body); string url = "http://" + Page.Request.ServerVariables["SERVER_NAME"] + "/" + WebSolutionUtils.GetURL(GetDocument(), Page, "postid=" + forumPost.PostID + "#" + forumPost.PostID, "forumaction=&threadspage=&searchpage="); sb.Append("To view this reply at the forum, click on the following link:\r\n\r\n"); sb.Append(url); MailMessage mailMessage = new MailMessage(); mailMessage.To = userParent.Email; mailMessage.Subject = "Message board reply"; mailMessage.Body = sb.ToString(); mailMessage.BodyFormat = MailFormat.Text; string host = Page.Request.Url.Host; if (host.Length > 4 && host.Substring(0, 4) == "www.") { host = host.Substring(4, host.Length - 4); } mailMessage.From = "forums@" + host; SmtpMail.SmtpServer = Page.Request.ServerVariables["SERVER_NAME"]; try { SmtpMail.Send(mailMessage); } catch (Exception) { } }
private void RedirectUserHasNoAuthority() { Page.Response.Redirect(WebSolutionUtils.GetURL(GetDocument(), Page, "", "forumaction=")); }
private void RenderThreadPaging(HtmlTextWriter writer, int pageCount) { // Start the new column writer.AddAttribute(HtmlTextWriterAttribute.Align, "right"); writer.AddAttribute(HtmlTextWriterAttribute.Width, "50%"); writer.AddAttribute(HtmlTextWriterAttribute.Class, "Normal"); writer.RenderBeginTag(HtmlTextWriterTag.Td); // First, previous, next, last thread hyperlinks bool backwards = _threadPage != 0; bool forwards = _threadPage != pageCount - 1; // << First and < Previous links if (backwards) { int postID = 0; // << First postID = _threadID; writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("postid={0}", postID), "forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("<<"); writer.RenderEndTag(); // A writer.Write(" "); // < Previous postID = ForumDB.GetPostFromThreadAndPage(_threadID, _threadPage - 1, ForumUtils.GetPostsPerPage(), _forumView); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("postid={0}", postID), "forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("< Previous"); writer.RenderEndTag(); // A } // Divider if (backwards && forwards) { writer.Write(" | "); } // Next > and Last >> links if (forwards) { int postID = 0; // Next > postID = ForumDB.GetPostFromThreadAndPage(_threadID, _threadPage + 1, ForumUtils.GetPostsPerPage(), _forumView); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("postid={0}", postID), "forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write("Next >"); writer.RenderEndTag(); writer.Write(" "); // Last >> postID = ForumDB.GetPostFromThreadAndPage(_threadID, pageCount - 1, ForumUtils.GetPostsPerPage(), _forumView); writer.AddAttribute(HtmlTextWriterAttribute.Href, WebSolutionUtils.GetURL(GetDocument(), Page, string.Format("postid={0}", postID), "forumaction=")); writer.RenderBeginTag(HtmlTextWriterTag.A); writer.Write(">>"); writer.RenderEndTag(); } // Close column writer.Write(" "); writer.RenderEndTag(); // Td }