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