3124b9e64e1e099a6f3b24788071eb12a7b1cc35
[fms.git] / include / http / pages / forumpage.h
1 #ifndef _forumpage_\r
2 #define _forumpage_\r
3 \r
4 #include "../ipagehandler.h"\r
5 #include "../../idatabase.h"\r
6 \r
7 class ForumPage:public IPageHandler,public IDatabase\r
8 {\r
9 public:\r
10         ForumPage(const std::string &templatestr, const std::string &pagename):IPageHandler(templatestr,pagename)       {}\r
11 \r
12         virtual IPageHandler *New()=0;  // returns a new instance of the object\r
13 \r
14 protected:\r
15         const std::string FixFromName(const std::string &fromname)\r
16         {\r
17                 std::string tempname=fromname;\r
18                 if(tempname.size()>30)\r
19                 {\r
20                         tempname.erase(27);\r
21                         tempname+="...";\r
22                 }\r
23                 tempname=SanitizeOutput(tempname);\r
24                 return tempname;\r
25         }\r
26 \r
27         const std::string FixSubject(const std::string &subject)\r
28         {\r
29                 std::string tempsubject=subject;\r
30                 if(tempsubject.size()>30)\r
31                 {\r
32                         tempsubject.erase(27);\r
33                         tempsubject+="...";\r
34                 }\r
35                 tempsubject=SanitizeOutput(tempsubject);\r
36                 return tempsubject;\r
37         }\r
38 \r
39         const std::string CreateForumHeader()\r
40         {\r
41                 std::string content="<table class=\"header\">\r\n";\r
42                 content+="<tr><td><a href=\"index.htm\">Home</a> | <a href=\"forummain.htm\">Browse Forums</a></td></tr>\r\n";\r
43                 content+="</table>\r\n";\r
44                 return content;\r
45         }\r
46 \r
47 private:\r
48         virtual const std::string GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)=0;\r
49 \r
50 };\r
51 \r
52 #endif  // _forumpage_\r