X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fevents.php;h=8fa4f284371bb784f8ad88c2b3ab221788e930b3;hb=27455960d0d258d1b407c240f4aa07d0eda35486;hp=1d64842ae71a4399e97bd0865df1ee7678e7d393;hpb=924231449d16c87d373b7cce27efcf787ee3dcbc;p=platal.git diff --git a/modules/events.php b/modules/events.php index 1d64842..8fa4f28 100644 --- a/modules/events.php +++ b/modules/events.php @@ -37,6 +37,12 @@ class EventsModule extends PLModule ); } + function on_subscribe($forlife, $uid, $promo, $password) + { + require_once 'newsletter.inc.php'; + subscribe_nl($uid); + } + function handler_ev(&$page) { $page->changeTpl('login.tpl'); @@ -247,67 +253,82 @@ class EventsModule extends PLModule } } - function handler_admin_events(&$page, $arch) { + function handler_admin_events(&$page, $action = 'list', $eid = null) + { $page->changeTpl('admin/evenements.tpl'); $page->assign('xorg_title','Polytechnique.org - Administration - Evenements'); - - $arch = $arch == 'archives'; - $evid = Post::i('evt_id'); - $page->assign('arch', $arch); - - switch(Post::v('action')) { - case "Proposer": - XDB::execute('UPDATE evenements SET titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?} WHERE id = {?}', - Post::v('titre'), Post::v('texte'), Post::v('peremption'), Post::v('promo_min'), Post::v('promo_max'), $evid); - break; - - case "Valider": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = CONCAT(flags,",valide") WHERE id = {?}', $evid); - break; - - case "Invalider": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = REPLACE(flags,"valide", "") WHERE id = {?}', $evid); - break; - - case "Supprimer": - XDB::execute('DELETE from evenements WHERE id = {?}', $evid); - break; - - case "Archiver": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = CONCAT(flags,",archive") WHERE id = {?}', $evid); - break; - - case "Desarchiver": - XDB::execute('UPDATE evenements SET creation_date = creation_date, flags = REPLACE(flags,"archive","") WHERE id = {?}', $evid); - break; - - case "Editer": - $res = XDB::query('SELECT titre, texte, peremption, promo_min, promo_max FROM evenements WHERE id={?}', $evid); - list($titre, $texte, $peremption, $promo_min, $promo_max) = $res->fetchOneRow(); - $page->assign('mode', 'edit'); - $page->assign('titre',$titre); - $page->assign('texte',$texte); - $page->assign('promo_min',$promo_min); - $page->assign('promo_max',$promo_max); - $page->assign('peremption',$peremption); - - $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 .= "\n"; - } - $page->assign('select',$select); - - break; + $page->register_modifier('hde', 'html_entity_decode'); + + $arch = $action == 'archives'; + $page->assign('action', $action); + + if (Post::v('action') == "Proposer") { + XDB::execute('UPDATE evenements + SET titre={?}, texte={?}, peremption={?}, promo_min={?}, promo_max={?} + WHERE id = {?}', + Post::v('titre'), Post::v('texte'), Post::v('peremption'), + Post::v('promo_min'), Post::v('promo_max'), Post::i('evt_id')); } - - if ($action != "Editer") { - - $sql = "SELECT e.id, e.titre, e.texte, + + if ($action == 'edit') { + $res = XDB::query('SELECT titre, texte, peremption, promo_min, promo_max + FROM evenements + WHERE id={?}', $eid); + list($titre, $texte, $peremption, $promo_min, $promo_max) = $res->fetchOneRow(); + $page->assign('titre',$titre); + $page->assign('texte',$texte); + $page->assign('promo_min',$promo_min); + $page->assign('promo_max',$promo_max); + $page->assign('peremption',$peremption); + + $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 .= "\n"; + } + $page->assign('select',$select); + } else { + switch ($action) { + case 'delete': + XDB::execute('DELETE from evenements + WHERE id = {?}', $eid); + break; + + case "archive": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = CONCAT(flags,",archive") + WHERE id = {?}', $eid); + break; + + case "unarchive": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = REPLACE(flags,"archive","") + WHERE id = {?}', $eid); + $action = 'archives'; + $arch = true; + break; + + case "valid": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = CONCAT(flags,",valide") + WHERE id = {?}', $eid); + break; + + case "unvalid": + XDB::execute('UPDATE evenements + SET creation_date = creation_date, flags = REPLACE(flags,"valide", "") + WHERE id = {?}', $eid); + break; + } + + $pid = ($eid && $action == 'preview') ? $eid : -1; + $sql = "SELECT e.id, e.titre, e.texte,e.id = $pid AS preview, DATE_FORMAT(e.creation_date,'%d/%m/%Y %T') AS creation_date, DATE_FORMAT(e.peremption,'%d/%m/%Y') AS peremption, e.promo_min, e.promo_max, @@ -318,13 +339,14 @@ class EventsModule extends PLModule INNER JOIN auth_user_md5 AS u ON(e.user_id = u.user_id) INNER JOIN aliases AS a ON (u.user_id = a.id AND a.type='a_vie') WHERE ".($arch ? "" : "!")."FIND_IN_SET('archive',e.flags) - ORDER BY FIND_IN_SET('valide',e.flags), peremption"; + ORDER BY FIND_IN_SET('valide',e.flags), e.peremption DESC"; $page->assign('evs', XDB::iterator($sql)); } + $page->assign('arch', $arch); } function handler_admin_nl(&$page, $new = false) { - $page->changeTpl('admin/newsletter.tpl'); + $page->changeTpl('newsletter/admin.tpl'); $page->assign('xorg_title','Polytechnique.org - Administration - Newsletter : liste'); require_once("newsletter.inc.php"); @@ -337,7 +359,7 @@ class EventsModule extends PLModule } function handler_admin_nl_edit(&$page, $nid = 'last', $aid = null, $action = 'edit') { - $page->changeTpl('admin/newsletter_edit.tpl'); + $page->changeTpl('newsletter/edit.tpl'); $page->assign('xorg_title','Polytechnique.org - Administration - Newsletter : Edition'); require_once("newsletter.inc.php");