X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fbrowsemessagespage.cpp;fp=src%2Fhttp%2Fpages%2Fbrowsemessagespage.cpp;h=0000000000000000000000000000000000000000;hp=96010643872a8e96e7c3b9a2865114f72ee589f5;hb=f2545574af789b63fc655decfe31a3d9f1b30504;hpb=221236a4d3aac4144529d418ce368db5c98facb0 diff --git a/src/http/pages/browsemessagespage.cpp b/src/http/pages/browsemessagespage.cpp deleted file mode 100644 index 9601064..0000000 --- a/src/http/pages/browsemessagespage.cpp +++ /dev/null @@ -1,265 +0,0 @@ -#include "../../../include/http/pages/browsemessagespage.h" -#include "../../../include/stringfunctions.h" -#include "../../../include/global.h" -#include "../../../include/messagethread.h" - -#ifdef XMEM - #include -#endif - -const std::string BrowseMessagesPage::BuildQueryString(const long startrow, const std::string &boardidstr, const std::string &messageidstr) -{ - std::string returnval=""; - std::string tempval=""; - - if(startrow>=0) - { - StringFunctions::Convert(startrow,tempval); - returnval+="startrow="+tempval; - } - - if(boardidstr!="") - { - if(returnval!="") - { - returnval+="&"; - } - returnval+="boardid="+boardidstr; - } - - if(messageidstr!="") - { - if(returnval!="") - { - returnval+="&"; - } - returnval+="messageid="+messageidstr; - } - - return returnval; - -} - -const std::string BrowseMessagesPage::GeneratePage(const std::string &method, const std::map &queryvars) -{ - std::string content=""; - long boardid=-1; - std::string boardidstr=""; - std::string messageidstr=""; - int startrow=0; - std::string startrowstr="0"; - int rowsperpage=50; - std::string rowsperpagestr="51"; // one more than rowsperpage so we can know if there are more messages - std::string sql=""; - int rowcount=0; - int page=0; - - // if startrow is specified - if(queryvars.find("startrow")!=queryvars.end()) - { - startrowstr=(*queryvars.find("startrow")).second; - // convert back and forth, just in case a number wasn't passed in startrow - StringFunctions::Convert(startrowstr,startrow); - if(startrow<0) - { - startrow=0; - } - StringFunctions::Convert(startrow,startrowstr); - } - if(queryvars.find("boardid")!=queryvars.end()) - { - boardidstr=(*queryvars.find("boardid")).second; - StringFunctions::Convert(boardidstr,boardid); - } - if(queryvars.find("messageid")!=queryvars.end()) - { - messageidstr=(*queryvars.find("messageid")).second; - page=1; - } - - if(page==0) - { - sql="SELECT Subject, FromName, MessageDate || ' ' || MessageTime, Body, tblMessage.MessageID "; - sql+="FROM tblMessage INNER JOIN tblMessageBoard ON tblMessage.MessageID=tblMessageBoard.MessageID "; - if(boardidstr!="") - { - sql+="WHERE tblMessageBoard.BoardID=? "; - } - sql+="ORDER BY MessageDate || ' ' || MessageTime DESC "; - sql+="LIMIT "+startrowstr+","+rowsperpagestr+";"; - - SQLite3DB::Statement st=m_db->Prepare(sql); - if(boardidstr!="") - { - st.Bind(0,boardidstr); - } - st.Step(); - - content+=""; - content+=""; - - rowcount=0; - while(st.RowReturned() && rowcount++400) - { - body.erase(400); - body+="..."; - } - - content+=""; - content+=""; - content+=""; - content+=""; - content+="\r\n"; - - st.Step(); - } - - if(startrow>0 || st.RowReturned()) - { - content+=""; - - if(startrow>0) - { - int thisstartrow=startrow-rowsperpage; - if(thisstartrow<0) - { - thisstartrow=0; - } - content+=""; - } - else - { - content+=""; - } - - content+=""; - - if(st.RowReturned()) - { - int thisstartrow=startrow+rowsperpage; - content+=""; - } - content+=""; - } - - content+="
SubjectFromDate
"+SanitizeOutput(subject)+""+fromname+""+SanitizeOutput(messagedate)+"
<---->
"; - } - else if(page==1) - { - sql="SELECT Body, FromName, MessageDate || ' ' || MessageTime, Subject FROM tblMessage WHERE MessageID=?;"; - SQLite3DB::Statement st=m_db->Prepare(sql); - st.Bind(0,messageidstr); - - st.Step(); - if(st.RowReturned()) - { - std::string body=""; - std::string fromname=""; - std::string messagedate=""; - std::string subject=""; - std::string boards=""; - - st.ResultText(0,body); - st.ResultText(1,fromname); - st.ResultText(2,messagedate); - st.ResultText(3,subject); - - // get boards message was posted to - SQLite3DB::Statement st2=m_db->Prepare("SELECT tblBoard.BoardID, tblBoard.BoardName FROM tblBoard INNER JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID WHERE tblMessageBoard.MessageID=?;"); - st2.Bind(0,messageidstr); - st2.Step(); - while(st2.RowReturned()) - { - std::string boardname=""; - std::string innerboardidstr=""; - - st2.ResultText(0,innerboardidstr); - st2.ResultText(1,boardname); - - if(boards!="") - { - boards+=", "; - } - - boards+=""+SanitizeOutput(boardname)+""; - - st2.Step(); - } - - content+="
"; - content+="
"; - content+=boards; - content+="
"; - content+="
"; - content+=SanitizeOutput(subject); - content+="
"; - content+="
"; - content+=SanitizeOutput(fromname); - content+="
"; - content+="
"; - content+=SanitizeOutput(messagedate); - content+="
"; - content+="
"; - content+=SanitizeOutput(body); - content+="
"; - content+="
\r\n"; - - long currentlevel=0; - MessageThread thread; - thread.Load(messageidstr,boardid); - - std::vector nodes=thread.GetNodes(); - if(nodes.size()>1) - { - content+="
    "; - for(std::vector::const_iterator i=nodes.begin(); i!=nodes.end(); i++) - { - if((*i).m_level>currentlevel) - { - content+="
      "; - } - else if((*i).m_level"+SanitizeOutput((*i).m_subject)+" - "+SanitizeOutput((*i).m_fromname); - } - else - { - content+=SanitizeOutput((*i).m_subject)+" - "+SanitizeOutput((*i).m_fromname); - } - content+="\r\n"; - } - while(currentlevel-->0) - { - content+="
    "; - } - content+="
\r\n"; - } - } - } - - return StringFunctions::Replace(m_template,"[CONTENT]",content); -}