--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_admin_page('admin/evenements.tpl', true);
+
+$arch = isset($_REQUEST['arch']) ? $_REQUEST['arch'] : 0;
+
+$page->assign('arch', $arch);
+
+$action = isset($_POST['action']) ? $_POST['action'] : "";
+
+$err = Array();
+
+switch($action) {
+ case "Proposer":
+ $req = "UPDATE evenements
+ SET titre='{$_POST['titre']}', texte='{$_POST['texte']}', peremption='{$_POST['peremption']}',
+ promo_min = {$_POST['promo_min']}, promo_max = {$_POST['promo_max']}
+ WHERE id = {$_POST['evt_id']}
+ LIMIT 1";
+ $result = $globals->db->query ($req);
+ $err[] = "Requete effectuée : $req";
+ break;
+
+ case "Valider":
+ // le 'creation_date = creation_date' est indispensable pour que
+ // creation_date conserve sa valeur.
+ $req="UPDATE evenements
+ SET creation_date = creation_date, validation_user_id ='{$_SESSION['uid']}',
+ validation_date = NULL, flags = CONCAT(flags,',valide')
+ WHERE id ='{$_POST['evt_id']}'
+ LIMIT 1";
+ $result = $globals->db->query ($req);
+ $err[] = "Requete effectuée : $req";
+ break;
+
+ case "Invalider":
+ // le 'creation_date = creation_date' est indispensable pour que
+ // creation_date conserve sa valeur.
+ $req="UPDATE evenements
+ SET creation_date = creation_date, validation_user_id = ".$_SESSION['uid'].",
+ validation_date = NULL, flags = REPLACE(flags, 'valide','')
+ WHERE id = ".$_POST['evt_id']."
+ LIMIT 1";
+ $result = $globals->db->query ($req);
+ $err[] = "Requete effectuée : $req";
+ break;
+
+ case "Supprimer":
+ $req="DELETE from evenements WHERE id = ".$_POST['evt_id']." LIMIT 1";
+ $result = $globals->db->query ($req);
+ $err[] = "Requete effectuée : $req";
+ break;
+
+ case "Archiver":
+ $req="UPDATE evenements SET flags = CONCAT(flags,',archive')WHERE id = ".$_POST['evt_id']." LIMIT 1";
+ $result = $globals->db->query ($req);
+ $err[] = "Requete effectuée : $req";
+ break;
+
+ case "Desarchiver":
+ $req="UPDATE evenements SET flags = REPLACE(flags,'archive','')WHERE id = ".$_POST['evt_id']." LIMIT 1";
+ $result = $globals->db->query ($req);
+ $err[] = "Requete effectuée : $req";
+ break;
+
+ case "Editer":
+ $evt_req = $globals->db->query("SELECT titre, texte, peremption, promo_min, promo_max, validation_message FROM evenements WHERE id=".$_POST["evt_id"]);
+ list($titre, $texte, $peremption, $promo_min, $promo_max, $validation_message) = mysql_fetch_row($evt_req) ;
+ $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('validation_message',$validation_message);
+ $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;
+}
+
+if ($action != "Editer") {
+
+ $sql = "SELECT e.id, e.titre, e.texte,
+ DATE_FORMAT(e.creation_date,'%d/%m/%Y %T') AS creation_date,
+ DATE_FORMAT(e.validation_date,'%d/%m/%Y %T') AS validation_date,
+ DATE_FORMAT(e.peremption,'%d/%m/%Y') AS peremption,
+ e.promo_min, e.promo_max, e.validation_message, e.validation_user_id,
+ FIND_IN_SET('valide', e.flags) AS fvalide,
+ FIND_IN_SET('archive', e.flags) AS farch,
+ a.promo, a.nom, a.prenom, a.username
+ FROM evenements AS e
+ INNER JOIN auth_user_md5 AS a ON(e.user_id = a.user_id)
+ WHERE ".($arch ? "" : "!")."FIND_IN_SET('archive',e.flags)
+ ORDER BY FIND_IN_SET('valide',e.flags), peremption";
+ $page->mysql_assign($sql, 'evs');
+}
+
+$page->assign('err', $err);
+$page->run();
+?>
--- /dev/null
+{* $Id: evenements.tpl,v 1.1 2004-07-19 11:12:50 x2000habouzit Exp $ *}
+
+{dynamic}
+
+<div class="rubrique">
+ Gestion des événements :
+ {if $arch}
+ [ <a href="{$smarty.server.PHP_SELF}?arch=0">Actualités</a> | Archives ]
+ {else}
+ [ Actualités | <a href="{$smarty.server.PHP_SELF}?arch=1">Archives</a> ]
+ {/if}
+</div>
+
+{foreach from=$err item=e}
+<p class="erreur">{$e|nl2br}</p>
+{/foreach}
+
+{if $mode}
+
+<form action="{$smarty.server.PHP_SELF}" method="post" name="evenement_nouveau">
+ <input type="hidden" name="evt_id" value="{$smarty.post.evt_id}" />
+ <table class="bicol">
+ <tr>
+ <th colspan="2">Contenu du message</th>
+ </tr>
+ <tr>
+ <td><strong>Titre</strong></td>
+ <td>
+ <input type="text" name="titre" size="50" maxlength="200" value="{$titre}" />
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Texte</strong></td>
+ <td><textarea name="texte" rows="10" cols="60">{$texte}</textarea></td>
+ </tr>
+ </table>
+
+ <br />
+
+ <table class="bicol">
+ <tr>
+ <th colspan="2">Informations complémentaires</th>
+ </tr>
+ <tr>
+ <td>
+ <strong>Promo min *</strong> (incluse)
+ </td>
+ <td>
+ <input type="text" name="promo_min" size="4" maxlength="4" value="{$promo_min}" />
+ <em>0 signifie pas de minimum</em>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>Promo max *</strong> (incluse)
+ </td>
+ <td>
+ <input type="text" name="promo_max" size="4" maxlength="4" value="{$promo_max}" />
+ <em>0 signifie pas de maximum</em>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ * sert à limiter l'affichage de l'annonce aux camarades appartenant à certaines promos seulement.
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <strong>Dernier jour d'affichage</strong>
+ </td>
+ <td>
+ <select name="peremption">
+ {$select}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Message pour le validateur</strong></td>
+ <td><textarea name="validation_message" cols="50" rows="7">{$validation_message}</textarea></td>
+ </tr>
+ </table>
+
+ <br />
+
+ <div class="center">
+ <input type="submit" name="action" value="Proposer" />
+ </div>
+
+</form>
+
+
+{else}
+
+{foreach from=$evs item=ev}
+<table class="bicol">
+ <tr>
+ <th>
+ Posté par <a href="javascript:x()" onclick="popWin('../x.php?x=$username')">{$ev.prenom} {$ev.nom} (X{$ev.promo})</a>
+ <a href="mailto:{$ev.username}@m4x.org">lui écrire</a>
+ </th>
+ </tr>
+ <tr class="{if $ev.fvalide}impair{else}pair{/if}">
+ <td>
+ <strong>{$ev.titre}</strong><br />
+ {$ev.texte|nl2br}<br />
+ Création : {$ev.creation_date}<br />
+ {if $ev.fvalide}
+ Validation : {$ev.validation_date}<br />
+ {/if}
+ Péremption : {$ev.peremption}<br />
+ Promos : {$ev.promo_min} - {$ev.promo_max}<br />
+ Message : {$ev.validation_message}
+ </td>
+ </tr>
+ <tr>
+ <th>
+ <form action="{$smarty.server.PHP_SELF}" method="post" name="modif">
+ <input type="hidden" name="evt_id" value="{$ev.id}" />
+ <input type="hidden" name="arch" value="{$ev.arch}>" />
+ {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="Valider" />
+ {else}
+ <input type="submit" name="action" value="Invalider" />
+ <input type="submit" name="action" value="Archiver" />
+ {/if}
+ <input type="submit" name="action" value="Supprimer" />
+ {/if}
+ </form>
+ </th>
+ </tr>
+</table>
+
+<br />
+{/foreach}
+
+{/if}
+
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}