00062 {
00063
IWeb *pWeb = static_cast<IWeb *>(GetWeb());
00064 Database& db = pWeb -> GetDatabase();
00065 Query q(db);
00066 Query q2(db);
00067
char sql[1000];
00068
00069
00070
Navigator(pWeb -> GetForum());
00071
if (pWeb -> GetForum())
00072 {
00073 printf(
"</td><td align=center>");
00074 printf(
" [ <a href=\"%s?page=6\">new topic</a> ]",GetCgiName().c_str());
00075 }
00076 printf(
"</td><td align=right>");
00077
00078 printf(
"[ <a href=\"%s?page=2\">settings</a> ",GetCgiName().c_str());
00079 printf(
"| <a href=\"%s?logout=1\">logout</a> ",GetCgiName().c_str());
00080
00081 printf(
"]</td></tr></table>");
00082 printf(
"</div>");
00083
00084 sprintf(sql,
"select * from thread where forum=%ld and deleted=0 order by updated desc",pWeb -> GetForum());
00085 q.get_result(sql);
00086 printf(
"<table cellpadding=\"0\" cellspacing=\"0\" class=threadlist width=\"100%%\">");
00087 printf(
"<tr>");
00088 printf(
"<th class=threadlist>Image</th>");
00089 printf(
"<th class=threadlist>Topic</th>");
00090 printf(
"<th class=threadlist>Messages</th>");
00091 printf(
"<th class=threadlist>Started</th>");
00092
00093 printf(
"<th class=threadlist>Last</th>");
00094 printf(
"</tr>");
00095
while (q.fetch_row())
00096 {
00097 db::Thread thread(&db, &q);
00098 db::Account account(db, thread.started_by);
00099 printf(
"<tr class=threadlist>");
00100
00101 printf(
"<td class=threadlist width=\"1%%\">");
00102
viewtn( thread.image );
00103 printf(
"</td>");
00104
00105 printf(
"<td class=threadlist>", thread.title.c_str());
00106 printf(
"<a href=\"%s?ThreadListForm=view&thread=%ld\"> %s </a></td>",GetCgiName().c_str(),thread.num,thread.title.c_str());
00107
00108 sprintf(sql,
"select count(*) from message where thread=%ld and deleted=0",thread.num);
00109 printf(
"<td class=threadlist align=right width=\"1%%\">%ld</td>",q2.get_count(sql));
00110
00111 printf(
"<td class=threadlist width=\"1%%\">");
00112 printf(
"%s<br>",
GetAccountName(account).c_str());
00113 nbprintf(
"%s</td>", thread.started.c_str());
00114
00115
00116
00117 {
00118 db::Account account(db, thread.updated_by);
00119 printf(
"<td class=threadlist width=\"1%%\">");
00120 printf(
"%s<br>",
GetAccountName(account).c_str());
00121 nbprintf(
"%s</td>", thread.updated.c_str());
00122 }
00123 printf(
"</tr>");
00124 }
00125 printf(
"</table>");
00126 q.free_result();
00127 }