00049 {
00050
IWeb *pWeb = static_cast<IWeb *>(GetWeb());
00051 Database& db = pWeb -> GetDatabase();
00052
char action[200];
00053
00054
00055
if (!GetForm() -> getvalue( (
char *)GetFormName().c_str(), action, 200) || !*action)
00056 {
00057
return;
00058 }
00059
if (!strcmp(action,
" Update "))
00060 {
00061 std::string title = GetForm() -> getvalue(
"title");
00062 std::string message_body = GetForm() -> getvalue(
"message");
00063
long image_num = 0;
00064
char fn[1000];
00065
00066 GetForm() -> getvalue(
"the_file",fn,255);
00067
if (!strncmp(fn,
"/tmp/",5) && strlen(fn) > 5)
00068 {
00069 image_num =
AddImage(pWeb -> GetUsernum(), fn);
00070 }
00071 db::Forum forum(db,pWeb -> GetForum());
00072 forum.updated = GetDate();
00073 forum.updated_by = pWeb -> GetUsernum();
00074 forum.save();
00075 db::Thread thread(db,pWeb -> GetThread());
00076 thread.updated = GetDate();
00077 thread.updated_by = pWeb -> GetUsernum();
00078 thread.save();
00079 db::Message message(db, pWeb -> GetMessage());
00080 message.title = title;
00081 message.body = message_body;
00082 message.version++;
00083 message.updated = GetDate();
00084
if (message.posted_by == pWeb -> GetUsernum())
00085 {
00086
char value[1000];
00087
bool r = GetForm() -> getfirst(fn, 1000, value, 1000);
00088 message.save();
00089
while (r)
00090 {
00091
DEB( fprintf(fil,
"'%s' == '%s'\n",fn,value);)
00092 if (!strcmp(fn, "delete"))
00093 {
00094
long num = atol(value);
00095 db::Linkmessageimage x(db, num);
00096
if (x.message == message.num)
00097 {
00098 x.deleted = 1;
00099 x.save();
00100 }
00101 }
00102
00103 r = GetForm() -> getnext(fn, 1000, value, 1000);
00104 }
00105 }
00106
if (image_num > 0)
00107 {
00108 db::Linkmessageimage x(&db);
00109 x.message = message.num;
00110 x.image = image_num;
00111 x.save();
00112 }
00113 pWeb -> SetPage( 5 );
00114 }
00115
else
00116
if (!strcmp(action,
" Delete Message "))
00117 {
00118 db::Message message(db, pWeb -> GetMessage());
00119
if (message.posted_by == pWeb -> GetUsernum())
00120 {
00121 message.deleted++;
00122 message.save();
00123 }
00124 pWeb -> SetPage( 5 );
00125 }
00126 }