liens-index.php (3031B)
1 <?php 2 3 class LiensIndex { 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 // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement 9 // CONCURENCE : Faire un lock quelque part... 10 $numéro_lien = 1 + Stockage::get_prop($chemin, "dernier_numero"); 11 Stockage::set_prop($chemin, "dernier_numero", $numéro_lien); 12 $np = Stockage::nouvelle_page($chemin, "Lien" . $numéro_lien, "liens-lien"); 13 Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); 14 Stockage::set_prop($np, "texte", "Un lien"); 15 Stockage::set_prop($np, "cible", "http://www.example.com/page/"); 16 Stockage::set_prop($np, "description", "Un lien d'exemple très utile."); 17 enregistrer_nouveaute($np); 18 return new Page($np, '', "redirect"); 19 } else { 20 if (isset($paramètres["description"])) { 21 Stockage::set_prop($chemin, "description", $paramètres["description"]); 22 } 23 24 if (isset($paramètres["titre"])) { 25 Stockage::set_prop($chemin, "titre", $paramètres["titre"]); 26 } 27 28 if (isset($paramètres["vue"])) { 29 return self::vue($chemin, $paramètres["vue"]); 30 } else { 31 return self::vue($chemin); 32 } 33 } 34 } 35 36 public static function vue($chemin, $vue = "normal") { 37 if ($vue == "normal") { 38 $ret = ''; 39 40 if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { 41 $ret .= '<form class="liens infos" method="post" action="' . $chemin->get_url() . '">'; 42 $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; 43 $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description"); 44 $ret .= '<p><input type="submit" value="appliquer" /></p>'; 45 $ret .= '</form>'; 46 } else { 47 $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>'; 48 $ret .= '<p class="liens index description affichage">' . Stockage::get_prop($chemin, "description") . '</p>'; 49 } 50 51 $ret .= '<div class="liens liste-liens index">'; 52 $ret .= '<ul>'; 53 54 if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { 55 $ret .= '<li>'; 56 $ret .= '<div class="titre">'; 57 58 $ret .= '<form class="liens nouvelle_page" method="post" action="' . $chemin->get_url() . '">'; 59 $ret .= '<p>'; 60 $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>'; 61 $ret .= '<input type="submit" value="Nouveau lien"/>'; 62 $ret .= '</p>'; 63 $ret .= '</form>'; 64 65 $ret .= '</div>'; 66 $ret .= '</li>'; 67 } 68 69 70 foreach (stockage::liste_enfants($chemin) as $k) { 71 $ret .= '<li>' . Modules::vue($k)->contenu . '</li>'; 72 } 73 74 $ret .= '</ul>'; 75 76 return new Page($ret, Stockage::get_prop($chemin, "titre")); 77 } 78 } 79 } 80 81 Modules::enregister_module("LiensIndex", "liens-index", "vue", "titre description"); 82 83 ?>