version 0.3.23
[fms.git] / include / http / pages / forumpage.h
diff --git a/include/http/pages/forumpage.h b/include/http/pages/forumpage.h
new file mode 100644 (file)
index 0000000..3124b9e
--- /dev/null
@@ -0,0 +1,52 @@
+#ifndef _forumpage_\r
+#define _forumpage_\r
+\r
+#include "../ipagehandler.h"\r
+#include "../../idatabase.h"\r
+\r
+class ForumPage:public IPageHandler,public IDatabase\r
+{\r
+public:\r
+       ForumPage(const std::string &templatestr, const std::string &pagename):IPageHandler(templatestr,pagename)       {}\r
+\r
+       virtual IPageHandler *New()=0;  // returns a new instance of the object\r
+\r
+protected:\r
+       const std::string FixFromName(const std::string &fromname)\r
+       {\r
+               std::string tempname=fromname;\r
+               if(tempname.size()>30)\r
+               {\r
+                       tempname.erase(27);\r
+                       tempname+="...";\r
+               }\r
+               tempname=SanitizeOutput(tempname);\r
+               return tempname;\r
+       }\r
+\r
+       const std::string FixSubject(const std::string &subject)\r
+       {\r
+               std::string tempsubject=subject;\r
+               if(tempsubject.size()>30)\r
+               {\r
+                       tempsubject.erase(27);\r
+                       tempsubject+="...";\r
+               }\r
+               tempsubject=SanitizeOutput(tempsubject);\r
+               return tempsubject;\r
+       }\r
+\r
+       const std::string CreateForumHeader()\r
+       {\r
+               std::string content="<table class=\"header\">\r\n";\r
+               content+="<tr><td><a href=\"index.htm\">Home</a> | <a href=\"forummain.htm\">Browse Forums</a></td></tr>\r\n";\r
+               content+="</table>\r\n";\r
+               return content;\r
+       }\r
+\r
+private:\r
+       virtual const std::string GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)=0;\r
+\r
+};\r
+\r
+#endif // _forumpage_\r