From: x2003bruneau Date: Sat, 29 Jul 2006 17:05:36 +0000 (+0000) Subject: Rework events admin page X-Git-Tag: xorg/0.9.11~218 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=506a46edb65426c99626c75b5625e3a008a6c2e2;p=platal.git Rework events admin page Need tests, please :) git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@696 839d8a87-29fc-0310-9880-83ba4fa771e5 --- diff --git a/htdocs/images/icons/package_add.gif b/htdocs/images/icons/package_add.gif new file mode 100644 index 0000000..51753bc Binary files /dev/null and b/htdocs/images/icons/package_add.gif differ diff --git a/htdocs/images/icons/package_delete.gif b/htdocs/images/icons/package_delete.gif new file mode 100644 index 0000000..9e96b17 Binary files /dev/null and b/htdocs/images/icons/package_delete.gif differ diff --git a/htdocs/images/icons/thumb_down.gif b/htdocs/images/icons/thumb_down.gif new file mode 100644 index 0000000..d2e54b0 Binary files /dev/null and b/htdocs/images/icons/thumb_down.gif differ diff --git a/htdocs/images/icons/thumb_up.gif b/htdocs/images/icons/thumb_up.gif new file mode 100644 index 0000000..8ff3f1f Binary files /dev/null and b/htdocs/images/icons/thumb_up.gif differ diff --git a/modules/events.php b/modules/events.php index 5fa4150..8c13572 100644 --- a/modules/events.php +++ b/modules/events.php @@ -247,67 +247,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,9 +333,10 @@ 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) { diff --git a/templates/admin/evenements.tpl b/templates/admin/evenements.tpl index ed9f8f5..f3269df 100644 --- a/templates/admin/evenements.tpl +++ b/templates/admin/evenements.tpl @@ -24,69 +24,68 @@

Gestion des événements : - {if $arch eq 'archives'} - [ Actualités | Archives ] + [  + {if $arch || $action eq 'edit'} + Actualités {else} - [ Actualités | Archives ] + Actualités {/if} +  |  + {if !$arch || $action eq 'edit'} + Archives + {else} + Archives + {/if} +  ]

-{if $mode} +{if $action eq 'edit'} {include file="include/form.evenement.tpl"} {else} -{iterate from=$evs item=ev} - + + + - - + - - - + - - + - - - + {/if} + {/iterate}
- Posté par {$ev.prenom} {$ev.nom} (X{$ev.promo}) - TitrePéremption
- {$ev.titre} + {iterate from=$evs item=ev} +
{if !$ev.fvalide}{/if} + {$ev.titre}
+ {if !$ev.fvalide}
{/if} + + Proposée par {$ev.prenom} {$ev.nom} (X{$ev.promo}) +
- {tidy}{$ev.texte|nl2br}{/tidy} + {if !$ev.fvalide}{/if}{$ev.peremption}{if !$ev.fvalide}{/if} + {if $arch} + {icon name=package_delete title="Désarchiver"}
+ {else} + {if $ev.fvalide} + {icon name=thumb_down title="Invalider"} + {icon name=package_add title="Archiver"}
+ {else} + {icon name=thumb_up title="Valider"}
+ {/if} + {/if} + {icon name=page_edit title="Editer"} + {icon name=delete title="Supprimer"}
- Création : {$ev.creation_date}
- Péremption : {$ev.peremption}
- Promos : {$ev.promo_min} - {$ev.promo_max}
+ {if $ev.preview} +
+ {$ev.texte|hde|nl2br}
-
-
- - {if $ev.farch} - - {else} - - {if $ev.fvalide} - - - {else} - - {/if} - - {/if} -
-
-
-
-{/iterate} - {/if}