static std::string whitespace=" \t\r\n";\r
std::string output=body;\r
\r
+ output=StringFunctions::Replace(output,"\r\n","\n");\r
+\r
// put \n after 80 contiguous characters in the body\r
std::string::size_type prevpos=0;\r
std::string::size_type pos=output.find_first_of(whitespace);\r
std::string boardidstr="";\r
std::string currentpagestr="";\r
std::string boardname="";\r
+ std::string firstunreadidstr="";\r
\r
if(queryvars.find("threadid")!=queryvars.end())\r
{\r
\r
content+=CreateForumHeader();\r
\r
+ SQLite3DB::Statement firstunreadst=m_db->Prepare("SELECT tblMessage.MessageID FROM tblThreadPost INNER JOIN tblMessage ON tblThreadPost.MessageID=tblMessage.MessageID WHERE ThreadID=? AND tblMessage.Read=0;");\r
+ firstunreadst.Bind(0,threadidstr);\r
+ firstunreadst.Step();\r
+ if(firstunreadst.RowReturned())\r
+ {\r
+ firstunreadst.ResultText(0,firstunreadidstr);\r
+ }\r
+\r
SQLite3DB::Statement updateread=m_db->Prepare("UPDATE tblMessage SET Read=1 WHERE tblMessage.MessageID IN (SELECT MessageID FROM tblThreadPost WHERE ThreadID=?);");\r
updateread.Bind(0,threadidstr);\r
updateread.Step();\r
content+="<table class=\"forumheader\">";\r
content+="<tr>";\r
content+="<td> Forum : <a href=\"forumthreads.htm?boardid="+boardidstr+"¤tpage="+currentpagestr+"\">"+SanitizeOutput(boardname)+"</a></td>";\r
+ if(firstunreadidstr!="")\r
+ {\r
+ content+="<td>";\r
+ content+="<a href=\"#"+firstunreadidstr+"\">First Unread Message</a>";\r
+ content+="</td>";\r
+ }\r
content+="</tr>";\r
content+="</table>\r\n";\r
\r
\r
content+="<table class=\"trust\">";\r
content+="<tr>";\r
- content+="<td colspan=\"3\" style=\"text-align:center;\"><a href=\"peertrust.htm?namesearch="+name+"\">Trust</a></td>";\r
+ content+="<td colspan=\"3\" style=\"text-align:center;\"><a href=\"peertrust.htm?namesearch="+StringFunctions::UriEncode(name)+"\">Trust</a></td>";\r
content+="</tr>";\r
content+="<tr>";\r
content+="<td></td><td>Local</td><td>Peer</td>";\r