X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fforumviewthreadpage.cpp;h=a680bfe5eed8a52303db16785441e5e2ff6b87b7;hb=56f67ecca96efc7b72d03c95c8c42cfb66e31468;hp=0b69926bffc3baabe58a61f87fed81b72bd7a45d;hpb=221236a4d3aac4144529d418ce368db5c98facb0;p=fms.git diff --git a/src/http/pages/forumviewthreadpage.cpp b/src/http/pages/forumviewthreadpage.cpp index 0b69926..a680bfe 100644 --- a/src/http/pages/forumviewthreadpage.cpp +++ b/src/http/pages/forumviewthreadpage.cpp @@ -1,5 +1,6 @@ #include "../../../include/http/pages/forumviewthreadpage.h" #include "../../../include/stringfunctions.h" +#include "../../../include/unicode/unicodeformatter.h" #ifdef XMEM #include @@ -10,6 +11,10 @@ const std::string ForumViewThreadPage::FixBody(const std::string &body) static std::string whitespace=" \t\r\n"; std::string output=body; + output=StringFunctions::Replace(output,"\r\n","\n"); + + UnicodeFormatter::LineWrap(output,80,"",output); + /* // put \n after 80 contiguous characters in the body std::string::size_type prevpos=0; std::string::size_type pos=output.find_first_of(whitespace); @@ -28,6 +33,7 @@ const std::string ForumViewThreadPage::FixBody(const std::string &body) output.insert(prevpos+80,"\n"); prevpos+=81; } + */ output=StringFunctions::Replace(output,"<","<"); output=StringFunctions::Replace(output,">",">"); @@ -42,6 +48,7 @@ const std::string ForumViewThreadPage::GeneratePage(const std::string &method, c std::string boardidstr=""; std::string currentpagestr=""; std::string boardname=""; + std::string firstunreadidstr=""; if(queryvars.find("threadid")!=queryvars.end()) { @@ -58,6 +65,14 @@ const std::string ForumViewThreadPage::GeneratePage(const std::string &method, c content+=CreateForumHeader(); + 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;"); + firstunreadst.Bind(0,threadidstr); + firstunreadst.Step(); + if(firstunreadst.RowReturned()) + { + firstunreadst.ResultText(0,firstunreadidstr); + } + SQLite3DB::Statement updateread=m_db->Prepare("UPDATE tblMessage SET Read=1 WHERE tblMessage.MessageID IN (SELECT MessageID FROM tblThreadPost WHERE ThreadID=?);"); updateread.Bind(0,threadidstr); updateread.Step(); @@ -76,6 +91,12 @@ const std::string ForumViewThreadPage::GeneratePage(const std::string &method, c content+=""; content+=""; content+=""; + if(firstunreadidstr!="") + { + content+=""; + } content+=""; content+="
Forum : "+SanitizeOutput(boardname)+""; + content+="First Unread Message"; + content+="
\r\n"; @@ -123,7 +144,7 @@ const std::string ForumViewThreadPage::GeneratePage(const std::string &method, c content+=""; content+=""; - content+=""; + content+=""; content+=""; content+=""; content+="";
TrustTrust
LocalPeer