protected string GetForumIcon(object o) { DataRow row = (DataRow)o; bool locked = ((int)row["Flags"] & (int)ForumFlags.Locked) == (int)ForumFlags.Locked; DateTime lastRead = ForumPage.GetForumRead((int)row["ForumID"]); DateTime lastPosted = row["LastPosted"] != DBNull.Value ? (DateTime)row["LastPosted"] : lastRead; string img, imgTitle; try { if (locked) { img = ForumPage.GetThemeContents("ICONS", "FORUM_LOCKED"); imgTitle = ForumPage.GetText("ICONLEGEND", "Forum_Locked"); } else if (lastPosted > lastRead) { img = ForumPage.GetThemeContents("ICONS", "FORUM_NEW"); imgTitle = ForumPage.GetText("ICONLEGEND", "New_Posts"); } else { img = ForumPage.GetThemeContents("ICONS", "FORUM"); imgTitle = ForumPage.GetText("ICONLEGEND", "No_New_Posts"); } } catch (Exception) { img = ForumPage.GetThemeContents("ICONS", "FORUM"); imgTitle = ForumPage.GetText("ICONLEGEND", "No_New_Posts"); } return(String.Format("<img src=\"{0}\" title=\"{1}\"/>", img, imgTitle)); }
/// <summary> /// Formats the Last Post for the Topic Line /// </summary> /// <returns>Formatted Last Post Text</returns> protected string FormatLastPost() { string strReturn = ForumPage.GetText("no_posts"); DataRowView row = m_row; if (row["LastMessageID"].ToString().Length > 0) { string strMiniPost = ForumPage.GetThemeContents("ICONS", (DateTime.Parse(row["LastPosted"].ToString()) > Mession.LastVisit) ? "ICON_NEWEST" : "ICON_LATEST"); string strBy = String.Format(ForumPage.GetText("by"), String.Format("<a href=\"{0}\">{1}</a> <a title=\"{4}\" href=\"{3}\"><img border=0 src='{2}'></a>", OrionGlobals.resolveBase(string.Format("userinfo.aspx?id={0}", row["LastUserID"])), BBCode.EncodeHTML(row["LastUserName"].ToString()), strMiniPost, Forum.GetLink(Pages.posts, "m={0}#{0}", row["LastMessageID"]), ForumPage.GetText("GO_LAST_POST") )); strReturn = String.Format("{0}<br />{1}", ForumPage.FormatDateTimeTopic(Convert.ToDateTime(row["LastPosted"])), strBy); } return(strReturn); }
private void DisplayPost_PreRender(object sender, EventArgs e) { Attach.Visible = CanAttach; Attach.Text = ForumPage.GetThemeContents("BUTTONS", "ATTACHMENTS"); Attach.ToolTip = "Attachments"; Attach.NavigateUrl = Forum.GetLink(Pages.attachments, "m={0}", DataRow["MessageID"]); Edit.Visible = CanEditPost; Edit.Text = ForumPage.GetThemeContents("BUTTONS", "EDITPOST"); Edit.ToolTip = "Edit this post"; Edit.NavigateUrl = Forum.GetLink(Pages.postmessage, "m={0}", DataRow["MessageID"]); Delete.Visible = CanDeletePost; Delete.Text = ForumPage.GetThemeContents("BUTTONS", "DELETEPOST"); Delete.ToolTip = "Delete this post"; Delete.Attributes["onclick"] = string.Format("return confirm('{0}')", ForumPage.GetText("confirm_deletemessage")); Quote.Visible = CanReply; Quote.Text = ForumPage.GetThemeContents("BUTTONS", "QUOTEPOST"); Quote.ToolTip = "Reply with quote"; Quote.NavigateUrl = Forum.GetLink(Pages.postmessage, "t={0}&f={1}&q={2}", ForumPage.PageTopicID, ForumPage.PageForumID, DataRow["MessageID"]); // private messages Pm.Visible = ForumPage.User.IsAuthenticated && ForumPage.BoardSettings.AllowPrivateMessages; Pm.Text = ForumPage.GetThemeContents("BUTTONS", "PM"); Pm.NavigateUrl = Forum.GetLink(Pages.pmessage, "u={0}", DataRow["UserID"]); // emailing Email.Visible = ForumPage.User.IsAuthenticated && ForumPage.BoardSettings.AllowEmailSending; Email.NavigateUrl = Forum.GetLink(Pages.im_email, "u={0}", DataRow["UserID"]); Email.Text = ForumPage.GetThemeContents("BUTTONS", "EMAIL"); Home.Visible = DataRow["HomePage"] != DBNull.Value && DataRow["HomePage"].ToString() != string.Empty; Home.NavigateUrl = DataRow["HomePage"].ToString(); Home.Text = ForumPage.GetThemeContents("BUTTONS", "WWW"); Msn.Visible = ForumPage.User.IsAuthenticated && DataRow["MSN"] != DBNull.Value; Msn.Text = ForumPage.GetThemeContents("BUTTONS", "MSN"); Msn.NavigateUrl = Forum.GetLink(Pages.im_email, "u={0}", DataRow["UserID"]); Aim.Visible = ForumPage.User.IsAuthenticated && DataRow["AIM"] != DBNull.Value; Aim.Text = ForumPage.GetThemeContents("BUTTONS", "AIM"); Aim.NavigateUrl = Forum.GetLink(Pages.im_aim, "u={0}", DataRow["UserID"]); Icq.Visible = ForumPage.User.IsAuthenticated && DataRow["ICQ"] != DBNull.Value; Icq.Text = ForumPage.GetThemeContents("BUTTONS", "ICQ"); Icq.NavigateUrl = Forum.GetLink(Pages.im_icq, "u={0}", DataRow["UserID"]); // display admin only info if (ForumPage.IsAdmin) { AdminInfo.InnerHtml = "<span class='smallfont'>"; if (Convert.ToDateTime(DataRow["Edited"]) != Convert.ToDateTime(DataRow["Posted"])) { // message has been edited AdminInfo.InnerHtml += String.Format("<b>Edited:</b> {0}", ForumPage.FormatDateTimeShort(Convert.ToDateTime(DataRow["Edited"]))); } AdminInfo.InnerHtml += String.Format(" <b>IP:</b> {0}", DataRow["IP"].ToString()); AdminInfo.InnerHtml += "</span>"; } }
/// <summary> /// The bind data. /// </summary> private void BindData() { this.Pager.PageSize = 20; // set the Datatable DataTable buddyListDataTable = YafBuddies.GetBuddiesForUser(CurrentUserID); if ((buddyListDataTable != null) && (buddyListDataTable.Rows.Count > 0)) { // get the view from the datatable DataView buddyListDataView = buddyListDataTable.DefaultView; // In what mode should this control work? // Refer to "rptBuddy_ItemCreate" event for more info. switch (Mode) { case 1: case 2: buddyListDataView.RowFilter = "Approved = 1".FormatWith(this.CurrentUserID); break; case 3: buddyListDataView.RowFilter = "Approved = 0 AND FromUserID <> {0}".FormatWith(this.CurrentUserID); break; case 4: buddyListDataView.RowFilter = "Approved = 0 AND FromUserID = {0}".FormatWith(this.CurrentUserID); break; } this.Pager.Count = buddyListDataView.Count; // create paged data source for the buddylist buddyListDataView.Sort = "{0} {1}".FormatWith(this.ViewState["SortField"], (bool)this.ViewState["SortAscending"] ? "asc" : "desc"); var pds = new PagedDataSource(); pds.DataSource = buddyListDataView; pds.AllowPaging = true; pds.CurrentPageIndex = this.Pager.CurrentPageIndex; pds.PageSize = this.Pager.PageSize; this.rptBuddy.DataSource = pds; } DataBind(); // handle the sort fields at the top // TODO: make these "sorts" into controls ForumPage fp = new ForumPage(); this.SortUserName.Visible = (string)ViewState["SortField"] == "Name"; this.SortUserName.Src = fp.GetThemeContents("SORT", (bool)ViewState["SortAscending"] ? "ASCENDING" : "DESCENDING"); this.SortRank.Visible = (string)ViewState["SortField"] == "RankName"; this.SortRank.Src = this.SortUserName.Src; this.SortJoined.Visible = (string)ViewState["SortField"] == "Joined"; this.SortJoined.Src = this.SortUserName.Src; this.SortPosts.Visible = (string)ViewState["SortField"] == "NumPosts"; this.SortPosts.Src = this.SortUserName.Src; }
protected override void Render(System.Web.UI.HtmlTextWriter writer) { System.Text.StringBuilder html = new System.Text.StringBuilder(2000); html.Append("<table cellspacing=1 cellpadding=1><tr>"); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_NEW"), ForumPage.GetText("NEW_POSTS")); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC"), ForumPage.GetText("NO_NEW_POSTS")); html.Append("</tr><tr>"); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_NEW_LOCKED"), ForumPage.GetText("NEW_POSTS_LOCKED")); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_LOCKED"), ForumPage.GetText("NO_NEW_POSTS_LOCKED")); html.Append("</tr><tr>"); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_ANNOUNCEMENT"), ForumPage.GetText("ANNOUNCEMENT")); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_STICKY"), ForumPage.GetText("STICKY")); html.Append("</tr><tr>"); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_MOVED"), ForumPage.GetText("MOVED")); html.AppendFormat("<td><img align=absMiddle src='{0}'/> {1}</td>", ForumPage.GetThemeContents("ICONS", "TOPIC_POLL"), ForumPage.GetText("POLL")); html.Append("</tr></table>"); writer.Write(html.ToString()); }
/// <summary> /// Creates the text for the "Last Post" information on a forum listing. /// Detects user permissions and disables links if they have none. /// </summary> /// <param name="row">Current data row</param> /// <returns>Formatted "Last Post" text</returns> protected string FormatLastPost(System.Data.DataRow row) { if (row["RemoteURL"] != DBNull.Value) { return("-"); } int ForumID = Convert.ToInt32(row["ForumID"]); // defaults to "no posts" text string strTemp = ForumPage.GetText("NO_POSTS"); if (!row.IsNull("LastPosted")) { strTemp = ForumPage.GetThemeContents("ICONS", (DateTime.Parse(Convert.ToString(row["LastPosted"])) > Mession.LastVisit) ? "ICON_NEWEST" : "ICON_LATEST"); if (int.Parse(row["ReadAccess"].ToString()) > 0) { strTemp = String.Format("{0}<br/>{1}<br/>{2} <a title=\"{4}\" href=\"{5}\"><img src=\"{3}\"></a>", ForumPage.FormatDateTimeTopic((DateTime)row["LastPosted"]), String.Format(ForumPage.GetText("in"), String.Format("<a href=\"{0}\">{1}</a>", Forum.GetLink(Pages.posts, "t={0}", row["LastTopicID"]), Truncate(Utils.BadWordReplace(row["LastTopicName"].ToString()), 50))), String.Format(ForumPage.GetText("by"), String.Format("<a href=\"{0}\">{1}</a>", OrionGlobals.resolveBase(string.Format("userinfo.aspx?id={0}", row["LastUserID"])), BBCode.EncodeHTML(row["LastUser"].ToString()))), strTemp, ForumPage.GetText("GO_LAST_POST"), Forum.GetLink(Pages.posts, "m={0}#{0}", row["LastMessageID"]) ); } else { // no access to this forum... disable links strTemp = String.Format("{0}<br/>{1}<br/>{2}", ForumPage.FormatDateTimeTopic((DateTime)row["LastPosted"]), String.Format(ForumPage.GetText("in"), String.Format("{0}", Truncate(row["LastTopicName"].ToString(), 50))), String.Format(ForumPage.GetText("by"), String.Format("<a href=\"{0}\">{1}</a>", OrionGlobals.resolveBase(string.Format("userinfo.aspx?id={0}", row["LastUserID"])), row["LastUser"])) ); } } return(strTemp); }
protected string GetTopicImage(object o, ref string imgTitle) { DataRowView row = (DataRowView)o; DateTime lastPosted = row["LastPosted"] != DBNull.Value ? (DateTime)row["LastPosted"] : new DateTime(2000, 1, 1); bool isLocked = ((int)row["TopicFlags"] & (int)TopicFlags.Locked) == (int)TopicFlags.Locked; imgTitle = "???"; try { bool bIsLocked = isLocked || ((int)row["ForumFlags"] & (int)ForumFlags.Locked) == (int)ForumFlags.Locked; if (row["TopicMovedID"].ToString().Length > 0) { imgTitle = ForumPage.GetText("MOVED"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_MOVED")); } DateTime lastRead = ForumPage.GetTopicRead((int)row["TopicID"]); DateTime lastReadForum = ForumPage.GetForumRead((int)row["ForumID"]); if (lastReadForum > lastRead) { lastRead = lastReadForum; } if (lastPosted > lastRead) { Mession.UnreadTopics++; if (row["PollID"] != DBNull.Value) { imgTitle = ForumPage.GetText("POLL_NEW"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_POLL_NEW")); } else if (row["Priority"].ToString() == "1") { imgTitle = ForumPage.GetText("STICKY"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_STICKY")); } else if (row["Priority"].ToString() == "2") { imgTitle = ForumPage.GetText("ANNOUNCEMENT"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_ANNOUNCEMENT_NEW")); } else if (bIsLocked) { imgTitle = ForumPage.GetText("NEW_POSTS_LOCKED"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_NEW_LOCKED")); } else { imgTitle = ForumPage.GetText("NEW_POSTS"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_NEW")); } } else { if (row["PollID"] != DBNull.Value) { imgTitle = ForumPage.GetText("POLL"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_POLL")); } else if (row["Priority"].ToString() == "1") { imgTitle = ForumPage.GetText("STICKY"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_STICKY")); } else if (row["Priority"].ToString() == "2") { imgTitle = ForumPage.GetText("ANNOUNCEMENT"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_ANNOUNCEMENT")); } else if (bIsLocked) { imgTitle = ForumPage.GetText("NO_NEW_POSTS_LOCKED"); return(ForumPage.GetThemeContents("ICONS", "TOPIC_LOCKED")); } else { imgTitle = ForumPage.GetText("NO_NEW_POSTS"); return(ForumPage.GetThemeContents("ICONS", "TOPIC")); } } } catch (Exception) { return(ForumPage.GetThemeContents("ICONS", "TOPIC")); } }
protected string FormatBody() { DataRowView row = DataRow; string html2 = FormatMsg.FormatMessage(ForumPage, row["Message"].ToString(), new MessageFlags(Convert.ToInt32(row["Flags"]))); // define valid image extensions string[] aImageExtensions = { "jpg", "gif", "png" }; if (long.Parse(row["HasAttachments"].ToString()) > 0) { string stats = ForumPage.GetText("ATTACHMENTINFO"); string strFileIcon = ForumPage.GetThemeContents("ICONS", "ATTACHED_FILE"); html2 += "<p>"; using (DataTable dt = DB.attachment_list(row["MessageID"], null, null)) { // show file then image attachments... int tmpDisplaySort = 0; while (tmpDisplaySort <= 1) { bool bFirstItem = true; foreach (DataRow dr in dt.Rows) { string strFilename = Convert.ToString(dr["FileName"]).ToLower(); bool bShowImage = false; // verify it's not too large to display (might want to make this a board setting) if (Convert.ToInt32(dr["Bytes"]) <= 262144) { // is it an image file? for (int i = 0; i < aImageExtensions.Length; i++) { if (strFilename.EndsWith(aImageExtensions[i])) { bShowImage = true; break; } } } if (bShowImage && tmpDisplaySort == 1) { if (bFirstItem) { html2 += "<i class=\"smallfont\">"; html2 += String.Format(ForumPage.GetText("IMAGE_ATTACHMENT_TEXT"), Convert.ToString(row["UserName"])); html2 += "</i><br/>"; bFirstItem = false; } html2 += String.Format("<img src=\"{0}image.aspx?a={1}\" alt=\"{2}\"><br/>", Data.ForumRoot, dr["AttachmentID"], Server.HtmlEncode(Convert.ToString(dr["FileName"]))); } else if (!bShowImage && tmpDisplaySort == 0) { if (bFirstItem) { html2 += String.Format("<b class=\"smallfont\">{0}</b><br/>", ForumPage.GetText("ATTACHMENTS")); bFirstItem = false; } // regular file attachment int kb = (1023 + (int)dr["Bytes"]) / 1024; html2 += String.Format("<img border='0' src='{0}'> <b><a href=\"{1}image.aspx?a={2}\">{3}</a></b> <span class='smallfont'>{4}</span><br/>", strFileIcon, Data.ForumRoot, dr["AttachmentID"], dr["FileName"], String.Format(stats, kb, dr["Downloads"])); } } // now show images tmpDisplaySort++; html2 += "<br/>"; } } } if (row["Signature"] != DBNull.Value && row["Signature"].ToString().ToLower() != "<p> </p>" && ForumPage.BoardSettings.AllowSignatures) { // don't allow any HTML on signatures MessageFlags tFlags = new MessageFlags(); tFlags.IsHTML = false; html2 += "<br/><hr noshade/>" + FormatMsg.FormatMessage(ForumPage, row["Signature"].ToString(), tFlags); } return(html2); }