Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        /// <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>&nbsp;<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);
        }
Exemplo n.º 3
0
        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>";
            }
        }
Exemplo n.º 4
0
        /// <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;
        }
Exemplo n.º 5
0
        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());
        }
Exemplo n.º 6
0
        /// <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}&nbsp;<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);
        }
Exemplo n.º 7
0
        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"));
            }
        }
Exemplo n.º 8
0
        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>&nbsp;</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);
        }