+ if ($action == 'edit') {
+ $res = XDB::query('SELECT titre, texte, expiration, promo_min, promo_max, FIND_IN_SET(\'important\', flags),
+ attach IS NOT NULL
+ FROM announces AS e
+ LEFT JOIN announce_photos AS p ON(e.id = p.eid)
+ WHERE id={?}', $eid);
+ list($titre, $texte, $expiration, $promo_min, $promo_max, $important, $img) = $res->fetchOneRow();
+ $page->assign('titre',$titre);
+ $page->assign('texte',$texte);
+ $page->assign('promo_min',$promo_min);
+ $page->assign('promo_max',$promo_max);
+ $page->assign('expiration',$expiration);
+ $page->assign('important', $important);
+ $page->assign('eid', $eid);
+ $page->assign('img', $img);
+ $page->assign_by_ref('upload', $upload);
+
+ $select = "";
+ for ($i = 1 ; $i < 30 ; $i++) {
+ $p_stamp=date("Ymd",time()+3600*24*$i);
+ $year=substr($p_stamp,0,4);
+ $month=substr($p_stamp,4,2);
+ $day=substr($p_stamp,6,2);
+
+ $select .= "<option value=\"$p_stamp\""
+ . (($p_stamp == strtr($expiration, array("-" => ""))) ? " selected" : "")
+ . "> $day / $month / $year</option>\n";
+ }
+ $page->assign('select',$select);
+ } else {
+ switch ($action) {
+ case 'delete':
+ S::assert_xsrf_token();
+ XDB::execute('DELETE from announces
+ WHERE id = {?}', $eid);
+ break;
+
+ case "archive":
+ S::assert_xsrf_token();
+ XDB::execute('UPDATE announces
+ SET creation_date = creation_date, flags = CONCAT(flags,",archive")
+ WHERE id = {?}', $eid);
+ break;
+
+ case "unarchive":
+ S::assert_xsrf_token();
+ XDB::execute('UPDATE announces
+ SET creation_date = creation_date, flags = REPLACE(flags,"archive","")
+ WHERE id = {?}', $eid);
+ $action = 'archives';
+ $arch = true;
+ break;
+
+ case "valid":
+ S::assert_xsrf_token();
+ XDB::execute('UPDATE announces
+ SET creation_date = creation_date, flags = CONCAT(flags,",valide")
+ WHERE id = {?}', $eid);
+ break;
+
+ case "unvalid":
+ S::assert_xsrf_token();
+ XDB::execute('UPDATE announces
+ SET creation_date = creation_date, flags = REPLACE(flags,"valide", "")
+ WHERE id = {?}', $eid);
+ break;
+ }