version 0.3.24
[fms.git] / src / http / pages / browseboardspage.cpp
diff --git a/src/http/pages/browseboardspage.cpp b/src/http/pages/browseboardspage.cpp
deleted file mode 100644 (file)
index e759cd6..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-#include "../../../include/http/pages/browseboardspage.h"\r
-#include "../../../include/stringfunctions.h"\r
-\r
-#ifdef XMEM\r
-       #include <xmem.h>\r
-#endif\r
-\r
-const std::string BrowseBoardsPage::BuildQueryString(const long startrow, const std::string &boardsearch, const std::string &sortby, const std::string &sortorder)\r
-{\r
-       std::string returnval="";\r
-       std::string tempval="";\r
-\r
-       if(startrow>=0)\r
-       {\r
-               StringFunctions::Convert(startrow,tempval);\r
-               returnval+="startrow="+tempval;\r
-       }\r
-\r
-       if(boardsearch!="")\r
-       {\r
-               if(returnval!="")\r
-               {\r
-                       returnval+="&";\r
-               }\r
-               returnval+="boardsearch="+boardsearch;\r
-       }\r
-\r
-       if(sortby!="")\r
-       {\r
-               if(returnval!="")\r
-               {\r
-                       returnval+="&";\r
-               }\r
-               returnval+="sortby="+sortby;\r
-               if(sortorder=="ASC" || sortorder=="DESC")\r
-               {\r
-                       if(returnval!="")\r
-                       {\r
-                               returnval+="&";\r
-                       }\r
-                       returnval+="sortorder="+sortorder;\r
-               }\r
-               else\r
-               {\r
-                       if(returnval!="")\r
-                       {\r
-                               returnval+="&";\r
-                       }\r
-                       returnval+="sortorder=ASC";\r
-               }\r
-       }\r
-\r
-       return returnval;\r
-\r
-}\r
-\r
-const std::string BrowseBoardsPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
-{\r
-       std::string content="";\r
-       std::string sql="";\r
-       std::string boardname="";\r
-       int rowsperpage=25;\r
-       std::string rowsperpagestr="26";        // 1 more than rowsperpage so we know if there are more boards\r
-       long startrow=0;\r
-       std::string startrowstr="0";\r
-       int messagecount=0;\r
-       std::string messagecountstr="0";\r
-       std::string lastdate="";\r
-       int count=0;\r
-       std::string boardsearch="";\r
-       std::string sortby="";\r
-       std::string sortorder="";\r
-\r
-       // if startrow is specified\r
-       if(queryvars.find("startrow")!=queryvars.end())\r
-       {\r
-               startrowstr=(*queryvars.find("startrow")).second;\r
-               // convert back and forth, just in case a number wasn't passed in startrow\r
-               StringFunctions::Convert(startrowstr,startrow);\r
-               if(startrow<0)\r
-               {\r
-                       startrow=0;\r
-               }\r
-               StringFunctions::Convert(startrow,startrowstr);\r
-       }\r
-       if(queryvars.find("boardsearch")!=queryvars.end())\r
-       {\r
-               boardsearch=(*queryvars.find("boardsearch")).second;\r
-       }\r
-       if(queryvars.find("sortby")!=queryvars.end() && queryvars.find("sortorder")!=queryvars.end())\r
-       {\r
-               sortby=(*queryvars.find("sortby")).second;\r
-               sortorder=(*queryvars.find("sortorder")).second;\r
-               if(sortby!="BoardName" && sortby!="MessageCount" && sortby!="LastMessage")\r
-               {\r
-                       sortby="BoardName";\r
-               }\r
-               if(sortorder!="ASC" && sortorder!="DESC")\r
-               {\r
-                       sortorder="ASC";\r
-               }\r
-       }\r
-       else\r
-       {\r
-               sortby="BoardName";\r
-               sortorder="ASC";\r
-       }\r
-\r
-       content="<h2>Browse Messages</h2>";\r
-       content+="<form name=\"frmfilter\" method=\"post\" action=\""+m_pagename+"\">";\r
-       content+="<input type=\"text\" name=\"boardsearch\" value=\""+SanitizeOutput(boardsearch)+"\">";\r
-       content+="<input type=\"submit\" value=\"Filter\">";\r
-       content+="</form>";\r
-\r
-       content+="<table class=\"small90\">";\r
-       content+="<tr>";\r
-       content+="<th><a href=\""+m_pagename+"?"+BuildQueryString(startrow,boardsearch,"BoardName",ReverseSort("BoardName",sortby,sortorder))+"\">Board</a></th>";\r
-       content+="<th><a href=\""+m_pagename+"?"+BuildQueryString(startrow,boardsearch,"MessageCount",ReverseSort("MessageCount",sortby,sortorder))+"\">Message Count</a></th>";\r
-       content+="<th><a href=\""+m_pagename+"?"+BuildQueryString(startrow,boardsearch,"LastMessage",ReverseSort("LastMessage",sortby,sortorder))+"\">Last Message</a></th>";\r
-       content+="</tr>";\r
-\r
-       sql="SELECT tblBoard.BoardID, tblBoard.BoardName, COUNT(tblMessageBoard.MessageID) AS 'MessageCount', MAX(tblMessage.MessageDate || ' ' || tblMessage.MessageTime) AS 'LastMessage'";\r
-       sql+="FROM tblBoard LEFT JOIN tblMessageBoard ON tblBoard.BoardID=tblMessageBoard.BoardID ";\r
-       sql+="LEFT JOIN tblMessage ON tblMessageBoard.MessageID=tblMessage.MessageID ";\r
-       sql+="WHERE (tblMessageBoard.MessageID>=0 OR tblMessageBoard.MessageID IS NULL) ";\r
-       if(boardsearch!="")\r
-       {\r
-               sql+="AND tblBoard.BoardName LIKE '%' || ? || '%' ";\r
-       }\r
-       sql+="GROUP BY tblBoard.BoardID ";\r
-       sql+="ORDER BY "+sortby+" COLLATE NOCASE "+sortorder+" ";\r
-       sql+="LIMIT "+startrowstr+","+rowsperpagestr+";";\r
-       \r
-       SQLite3DB::Statement st=m_db->Prepare(sql);\r
-       if(boardsearch!="")\r
-       {\r
-               st.Bind(0,boardsearch);\r
-       }\r
-       \r
-       st.Step();\r
-       while(st.RowReturned() && count++<rowsperpage)\r
-       {\r
-               boardname="";\r
-               messagecount=0;\r
-               lastdate="";\r
-               std::string boardidstr="0";\r
-               st.ResultText(0,boardidstr);\r
-               st.ResultText(1,boardname);\r
-               st.ResultInt(2,messagecount);\r
-               st.ResultText(3,lastdate);\r
-\r
-               StringFunctions::Convert(messagecount,messagecountstr);\r
-\r
-               content+="<tr>";\r
-               content+="<td><a href=\"browsemessages.htm?boardid="+boardidstr+"\">"+SanitizeOutput(boardname)+"</a></td>";\r
-               content+="<td>"+SanitizeOutput(messagecountstr)+"</td>";\r
-               content+="<td>"+SanitizeOutput(lastdate)+"</td>";\r
-               content+="</tr>\r\n";\r
-               st.Step();\r
-       }\r
-\r
-       if(startrow>0 || st.RowReturned())\r
-       {\r
-               content+="<tr>";\r
-\r
-               if(startrow>0)\r
-               {\r
-                       int thisstartrow=startrow-rowsperpage;\r
-                       if(thisstartrow<0)\r
-                       {\r
-                               thisstartrow=0;\r
-                       }\r
-                       content+="<td><a href=\"boardsbrowse.htm?"+BuildQueryString(thisstartrow,boardsearch,sortby,sortorder)+"\">&lt;--</a></td>";\r
-               }\r
-               else\r
-               {\r
-                       content+="<td></td>";\r
-               }\r
-\r
-               content+="<td></td>";\r
-\r
-               if(st.RowReturned())\r
-               {\r
-                       int thisstartrow=startrow+rowsperpage;\r
-                       content+="<td><a href=\"boardsbrowse.htm?"+BuildQueryString(thisstartrow,boardsearch,sortby,sortorder)+"\">--&gt;</a></td>";\r
-               }\r
-\r
-               content+="</tr>";\r
-       }\r
-       content+="</table>";\r
-       \r
-       return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
-}\r
-\r
-const std::string BrowseBoardsPage::ReverseSort(const std::string &sortname, const std::string &currentsortby, const std::string &currentsortorder)\r
-{\r
-       if(sortname==currentsortby)\r
-       {\r
-               if(currentsortorder=="ASC")\r
-               {\r
-                       return "DESC";\r
-               }\r
-               else\r
-               {\r
-                       return "ASC";\r
-               }\r
-       }\r
-       else\r
-       {\r
-               return currentsortorder;\r
-       }\r
-}\r