articles-index.php (3053B)
1 <?php 2 3 class ArticlesIndex { 4 public static function action($chemin, $action, $paramètres) { 5 if ($action == "anuler") { 6 return new Page($chemin, '', "redirect"); 7 } else if ($action == "nouvelle_page") { 8 $np = Stockage::nouvelle_page($chemin, "Nouvel article", "articles-article"); 9 Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); 10 Stockage::set_prop($np, "titre", "Nouvel article"); 11 Stockage::set_prop($np, "contenu", "Bla bla bla."); 12 enregistrer_nouveaute($np); 13 return new Page($np, '', "redirect"); 14 } else { 15 if (isset($paramètres["description"])) { 16 Stockage::set_prop($chemin, "description", $paramètres["description"]); 17 } 18 19 if (isset($paramètres["titre"])) { 20 Stockage::set_prop($chemin, "titre", $paramètres["titre"]); 21 } 22 23 if (isset($paramètres["vue"])) { 24 return self::vue($chemin, $paramètres["vue"]); 25 } else { 26 return self::vue($chemin); 27 } 28 } 29 } 30 31 public static function vue($chemin, $vue = "normal") { 32 if ($vue == "normal") { 33 $ret = ''; 34 35 if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { 36 $ret .= '<form class="articles infos" method="post" action="' . $chemin->get_url() . '">'; 37 $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; 38 $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description"); 39 $ret .= '<p><input type="submit" value="appliquer" /></p>'; 40 $ret .= '</form>'; 41 } else { 42 $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>'; 43 $ret .= '<p class="articles index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>'; 44 } 45 46 $ret .= '<div class="articles liste-articles index">'; 47 $ret .= '<ul>'; 48 49 if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { 50 $ret .= '<li>'; 51 $ret .= '<div class="titre">'; 52 53 $ret .= '<form class="articles nouvelle_page" method="post" action="' . $chemin->get_url() . '">'; 54 $ret .= '<p>'; 55 $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>'; 56 $ret .= '<input type="submit" value="Nouvel article"/>'; 57 $ret .= '</p>'; 58 $ret .= '</form>'; 59 60 $ret .= '</div>'; 61 $ret .= '</li>'; 62 } 63 64 foreach (Stockage::liste_enfants($chemin) as $k) { // TODO : trier par numéro ! 65 $mini = Modules::vue($k, 'miniature'); 66 $ret .= '<li>'; 67 // TODO : mettre une ancre "#message<numéro>" 68 $ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url ! 69 $ret .= '<span class="titre">'; 70 $ret .= $mini->titre; 71 $ret .= '</span>'; 72 $ret .= '<p class="contenu">'; 73 $ret .= $mini->contenu; 74 $ret .= '</p>'; 75 $ret .= '</a>'; 76 $ret .= '</li>'; 77 } 78 79 $ret .= '</ul>'; 80 81 return new Page($ret, Stockage::get_prop($chemin, "titre")); 82 } 83 } 84 } 85 86 Modules::enregister_module("ArticlesIndex", "articles-index", "vue", "titre description"); 87 88 ?>