1 #include "../../../include/http/pages/forummainpage.h"
\r
2 #include "../../../include/stringfunctions.h"
\r
8 const std::string ForumMainPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)
\r
10 std::string content="";
\r
12 content+=CreateForumHeader();
\r
14 content+="<table class=\"foruminfo\">\r\n";
\r
15 content+="<thead><tr><th>New</th><th>Forum</th><th>Posts</th><th>Last Post</th></tr></thead>\r\n";
\r
17 SQLite3DB::Statement newmessagesst=m_db->Prepare("SELECT tblMessage.MessageID FROM tblMessage INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID INNER JOIN tblThreadPost ON tblMessage.MessageID=tblThreadPost.MessageID WHERE tblMessageBoard.BoardID=? AND tblMessage.Read=0 LIMIT 0,1;");
\r
18 SQLite3DB::Statement lastmessagest=m_db->Prepare("SELECT tblMessage.MessageID, tblMessage.IdentityID, tblMessage.FromName, tblMessage.Subject, tblMessage.MessageDate || ' ' || tblMessage.MessageTime, tblThread.ThreadID FROM tblMessage INNER JOIN tblThreadPost ON tblMessage.MessageID=tblThreadPost.MessageID INNER JOIN tblThread ON tblThreadPost.ThreadID=tblThread.ThreadID WHERE tblThread.BoardID=? ORDER BY tblMessage.MessageDate || tblMessage.MessageTime DESC LIMIT 0,1;");
\r
20 SQLite3DB::Statement st=m_db->Prepare("SELECT tblBoard.BoardID, BoardName, BoardDescription, COUNT(tblThreadPost.MessageID) FROM tblBoard LEFT JOIN tblThread ON tblBoard.BoardID=tblThread.BoardID LEFT JOIN tblThreadPost ON tblThread.ThreadID=tblThreadPost.ThreadID WHERE Forum='true' GROUP BY tblBoard.BoardID ORDER BY BoardName COLLATE NOCASE;");
\r
22 while(st.RowReturned())
\r
25 std::string boardidstr="-1";
\r
26 std::string boardname="";
\r
27 std::string boarddescription="";
\r
28 std::string postcountstr="";
\r
30 st.ResultInt(0,boardid);
\r
31 st.ResultText(0,boardidstr);
\r
32 st.ResultText(1,boardname);
\r
33 st.ResultText(2,boarddescription);
\r
34 st.ResultText(3,postcountstr);
\r
37 content+="<td class=\"newposts\">";
\r
39 newmessagesst.Bind(0,boardid);
\r
40 newmessagesst.Step();
\r
41 if(newmessagesst.RowReturned())
\r
43 content+="<img src=\"showimage.htm?image=images/new_posts.png\" title=\"New Posts\">";
\r
47 content+="<img src=\"showimage.htm?image=images/no_new_posts.png\" title=\"No New Posts\">";
\r
49 newmessagesst.Reset();
\r
53 content+="<td class=\"forumname\">";
\r
54 content+="<a href=\"forumthreads.htm?boardid="+boardidstr+"\">"+SanitizeOutput(boardname)+"</a><br />";
\r
55 content+="<span class=\"description\">"+SanitizeOutput(boarddescription)+"</span>";
\r
57 content+="<td class=\"postcount\">";
\r
58 content+=postcountstr+" posts";
\r
61 lastmessagest.Bind(0,boardid);
\r
62 lastmessagest.Step();
\r
63 content+="<td class=\"lastpost\">";
\r
64 if(lastmessagest.RowReturned())
\r
66 std::string messageidstr="";
\r
67 std::string identityidstr="";
\r
68 std::string fromname="";
\r
69 std::string messagedate="";
\r
70 std::string subject="";
\r
71 std::string threadidstr="";
\r
73 lastmessagest.ResultText(0,messageidstr);
\r
74 lastmessagest.ResultText(1,identityidstr);
\r
75 lastmessagest.ResultText(2,fromname);
\r
76 lastmessagest.ResultText(3,subject);
\r
77 lastmessagest.ResultText(4,messagedate);
\r
78 lastmessagest.ResultText(5,threadidstr);
\r
80 content+="Last post on "+messagedate+" in<br />";
\r
81 content+="<a href=\"forumviewthread.htm?threadid="+threadidstr+"&boardid="+boardidstr+"#"+messageidstr+"\">"+FixSubject(subject)+"</a> by <a href=\"peerdetails.htm?identityid="+identityidstr+"\" title=\""+SanitizeOutput(fromname)+"\">"+FixFromName(fromname)+"</a>";
\r
84 lastmessagest.Reset();
\r
86 content+="</tr>\r\n";
\r
90 content+="</table>\r\n";
\r
92 return StringFunctions::Replace(m_template,"[CONTENT]",content);
\r