nouveautes-index.php (2774B)
1 <?php 2 3 // TODO : accents pour nouveauté. 4 class NouveautesIndex { 5 public static function action($chemin, $action, $paramètres) { 6 if ($action == "anuler") { 7 return new Page($chemin, '', "redirect"); 8 } else { 9 if (isset($paramètres["titre"])) { 10 Stockage::set_prop($chemin, "titre", $paramètres["titre"]); 11 } 12 13 if (isset($paramètres["vue"])) { 14 return self::vue($chemin, $paramètres["vue"]); 15 } else { 16 return self::vue($chemin); 17 } 18 } 19 } 20 21 public static function vue($chemin, $vue = "normal") { 22 if ($vue == "normal") { 23 $ret = ''; 24 25 if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { 26 $ret .= '<form class="articles infos" method="post" action="' . $chemin->get_url() . '">'; 27 $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; 28 $ret .= '<p><input type="submit" value="appliquer" /></p>'; 29 $ret .= '</form>'; 30 } else { 31 $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>'; 32 } 33 34 $ret .= '<div class="nouveautes list index">'; 35 $ret .= '<ul>'; 36 37 /*foreach (Stockage::liste_enfants(new Chemin("/forum")) as $k) { 38 $date = Stockage::get_prop($k, "date_modif"); 39 if (Erreur::is_erreur($date)) $date = "0"; 40 $date = (int)$date; 41 42 var_dump($date); 43 }*/ 44 45 // TODO : faire dans l'ordre décroissant les 5 dernières nouveautés. 46 foreach (Stockage::liste_enfants($chemin) as $n) { 47 $k = new Chemin(Stockage::get_prop($n, "chemin")); 48 $mini = Modules::vue($k, 'miniature'); 49 $ret .= '<li>'; 50 // TODO : mettre une ancre "#message<numéro>" 51 $ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url ! 52 $ret .= '<span class="titre">'; 53 $ret .= $mini->titre; 54 $ret .= '</span>'; 55 $ret .= '</a>'; 56 $ret .= '<p class="contenu">'; 57 $ret .= $mini->contenu; 58 $ret .= '</p>'; 59 $ret .= '</li>'; 60 } 61 62 $ret .= '</ul>'; 63 64 return new Page($ret, Stockage::get_prop($chemin, "titre")); 65 } 66 } 67 } 68 69 // TODO : maintenir la liste à jour lors des renomages, suppressions, ... 70 function enregistrer_nouveaute($chemin) { 71 $singleton = new Chemin("/nouveautes"); 72 Stockage::set_prop($chemin, "date_modif", "".time()); 73 // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement 74 // CONCURENCE : Faire un lock quelque part... 75 $numéro_nouveauté = 1 + Stockage::get_prop($singleton, "dernier_numero"); 76 Stockage::set_prop($singleton, "dernier_numero", $numéro_nouveauté); 77 78 $nouv = Stockage::nouvelle_page($singleton, "" . $numéro_nouveauté, "nouveaute-element-liste"); 79 Stockage::set_prop($nouv, "chemin", $chemin->get()); 80 } 81 82 Modules::enregister_module("NouveautesIndex", "nouveautes-index", "vue", "titre"); 83 84 ?>