}
}
- 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 .= "<option value=\"$p_stamp\"" . (($p_stamp == strtr($peremption, array("-" => ""))) ? " selected" : "")."> $day / $month / $year</option>\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 .= "<option value=\"$p_stamp\""
+ . (($p_stamp == strtr($peremption, array("-" => ""))) ? " selected" : "")
+ . "> $day / $month / $year</option>\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,
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) {
<h1>
Gestion des événements :
- {if $arch eq 'archives'}
- [ <a href="admin/events/actu">Actualités</a> | Archives ]
+ [
+ {if $arch || $action eq 'edit'}
+ <a href="admin/events">Actualités</a>
{else}
- [ Actualités | <a href="admin/events/archives">Archives</a> ]
+ Actualités
{/if}
+ |
+ {if !$arch || $action eq 'edit'}
+ <a href="admin/events/archives">Archives</a>
+ {else}
+ Archives
+ {/if}
+ ]
</h1>
-{if $mode}
+{if $action eq 'edit'}
{include file="include/form.evenement.tpl"}
{else}
-{iterate from=$evs item=ev}
<table class="bicol">
<tr>
- <th>
- Posté par <a href="profile/{$ev.forlife}" class='popup2'>{$ev.prenom} {$ev.nom} (X{$ev.promo})</a>
- </th>
+ <th>Titre</th>
+ <th>Péremption</th>
+ <th></th>
</tr>
- <tr class="{if $ev.fvalide}impair{else}pair{/if}">
- <td>
- <strong>{$ev.titre}</strong>
+ {iterate from=$evs item=ev}
+ <tr class="{cycle values="impair,pair"}">
+ <td>{if !$ev.fvalide}<strong>{/if}
+ <a href="admin/events/preview/{$ev.id}">{$ev.titre}</a><br />
+ {if !$ev.fvalide}</strong>{/if}
+ <small>
+ Proposée par <a href="profile/{$ev.forlife}" class='popup2'>{$ev.prenom} {$ev.nom} (X{$ev.promo})</a>
+ </small>
</td>
- </tr>
- <tr class="{if $ev.fvalide}impair{else}pair{/if}">
- <td>
- {tidy}{$ev.texte|nl2br}{/tidy}
+ <td class="right">{if !$ev.fvalide}<strong>{/if}{$ev.peremption}{if !$ev.fvalide}</strong>{/if}</td>
+ <td class="right" style="width: 42px">
+ {if $arch}
+ <a href="admin/events/unarchive/{$ev.id}">{icon name=package_delete title="Désarchiver"}</a><br />
+ {else}
+ {if $ev.fvalide}
+ <a href="admin/events/unvalid/{$ev.id}">{icon name=thumb_down title="Invalider"}</a>
+ <a href="admin/events/archive/{$ev.id}">{icon name=package_add title="Archiver"}</a><br />
+ {else}
+ <a href="admin/events/valid/{$ev.id}">{icon name=thumb_up title="Valider"}</a><br />
+ {/if}
+ {/if}
+ <a href="admin/events/edit/{$ev.id}">{icon name=page_edit title="Editer"}</a>
+ <a href="admin/events/delete/{$ev.id}">{icon name=delete title="Supprimer"}</a>
</td>
</tr>
- <tr class="{if $ev.fvalide}impair{else}pair{/if}">
- <td>
- Création : {$ev.creation_date}<br />
- Péremption : {$ev.peremption}<br />
- Promos : {$ev.promo_min} - {$ev.promo_max}<br />
+ {if $ev.preview}
+ <tr class="{cycle value="impair,pair"}">
+ <td colspan="3">
+ {$ev.texte|hde|nl2br}
</td>
</tr>
- <tr>
- <th>
- <form action="admin/events/{if $ev.arch}archives{else}actu{/if}" method="post">
- <div>
- <input type="hidden" name="evt_id" value="{$ev.id}" />
- {if $ev.farch}
- <input type="submit" name="action" value="Desarchiver" />
- {else}
- <input type="submit" name="action" value="Editer" />
- {if $ev.fvalide}
- <input type="submit" name="action" value="Invalider" />
- <input type="submit" name="action" value="Archiver" />
- {else}
- <input type="submit" name="action" value="Valider" />
- {/if}
- <input type="submit" name="action" value="Supprimer" />
- {/if}
- </div>
- </form>
- </th>
- </tr>
+ {/if}
+ {/iterate}
</table>
-<br />
-{/iterate}
-
{/if}