00076 {
00077
IWeb *pWeb = static_cast<IWeb *>(GetWeb());
00078 Database& db = pWeb -> GetDatabase();
00079 Query q(db);
00080 Query q2(db);
00081
char sql[1000];
00082 std::map<long,long> mmap;
00083 db::Thread thread(db, pWeb -> GetThread());
00084
00085
00086
Navigator(pWeb -> GetForum(),pWeb -> GetThread());
00087 printf(
"</td><td align=center>");
00088 printf(
"[ <a href=\"%s?page=7\">post message</a> ",GetCgiName().c_str());
00089
if (thread.started_by == pWeb -> GetUsernum())
00090 {
00091 printf(
"| <a href=\"%s?ViewThreadForm=delete\">remove topic</a> ",GetCgiName().c_str());
00092 }
00093 printf(
"]</td><td align=right>");
00094
00095 printf(
"[ <a href=\"%s?page=2\">settings</a> ",GetCgiName().c_str());
00096 printf(
"| <a href=\"%s?logout=1\">logout</a> ",GetCgiName().c_str());
00097
00098 printf(
"]</td></tr></table>");
00099 printf(
"</div>");
00100
00101
00102 sprintf(sql,
"select num,version from message where thread=%ld",pWeb -> GetThread());
00103 q.get_result(sql);
00104
while (q.fetch_row())
00105 {
00106
long num = q.getval();
00107
long version = q.getval();
00108 mmap[num] = (version > mmap[num]) ? version : mmap[num];
00109 }
00110 q.free_result();
00111
00112 sprintf(sql,
"select * from message where thread=%ld and deleted=0 order by posted",pWeb -> GetThread());
00113 q.get_result(sql);
00114 printf(
"<table cellpadding=\"0\" cellspacing=\"0\" class=viewthread width=\"100%%\">");
00115
while (q.fetch_row())
00116 {
00117 db::Message message(&db,&q);
00118
if (message.version == mmap[message.num])
00119 {
00120 db::Account account(db,message.posted_by);
00121 printf(
"<tr>");
00122 printf(
"<th class=viewthread width=\"1%%\" align=left>");
00123 printf(
"%s<br>",
GetAccountName(account).c_str());
00124 nbprintf(
"%s",message.posted.c_str());
00125
if (message.version > 1)
00126 {
00127 printf(
"<br><span class=updated>Version: %d<br>",message.version);
00128 nbprintf(
"%s</span>",message.updated.c_str());
00129 }
00130 printf(
"</th>");
00131 printf(
"<td class=viewthread><b>%s</b>",message.title.c_str());
00132
if (message.posted_by == pWeb -> GetUsernum())
00133 {
00134 printf(
" [ <a href=\"%s?ViewThreadForm=edit&message=%ld\">edit message</a> ]",GetCgiName().c_str(),message.num);
00135 }
00136 printf(
"<br>");
00137
viewtext(message.body);
00138 sprintf(sql,
"select * from linkmessageimage where message=%ld and deleted=0",message.num);
00139 q2.get_result(sql);
00140
if (q2.num_rows() > 0)
00141 {
00142 printf(
"<hr>");
00143 }
00144
while (q2.fetch_row())
00145 {
00146 db::Linkmessageimage x(&db,&q2);
00147 printf(
" ");
00148
viewtn( x.image );
00149
00150
00151 }
00152 q2.free_result();
00153 printf(
"</tr>");
00154 }
00155 }
00156 printf(
"</table>");
00157 q.free_result();
00158 }