articles-article.php (2375B)
1 <?php 2 3 class ArticlesArticle { 4 public static function action($chemin, $action, $paramètres) { 5 if ($action == "anuler") { 6 return new Page($chemin, '', "redirect"); 7 } else if ($action == "supprimer") { 8 Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif 9 return new Page($chemin->parent(), '', "redirect"); 10 } else { 11 if (isset($paramètres["contenu"])) { 12 Stockage::set_prop($chemin, "contenu", $paramètres["contenu"]); 13 } 14 15 // titre après les autres paramètres car il peut générer un redirect. 16 if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) { 17 Stockage::set_prop($chemin, "titre", $paramètres["titre"]); 18 Stockage::renomer($chemin, $paramètres["titre"]); 19 $chemin = $chemin->renomer($paramètres["titre"]); 20 // TODO : transmettre le paramètre "vue" 21 return new Page($chemin, '', "redirect"); 22 } 23 24 if (isset($paramètres["vue"])) { 25 return self::vue($chemin, $paramètres["vue"]); 26 } else { 27 return self::vue($chemin); 28 } 29 } 30 } 31 32 public static function vue($chemin, $vue = "normal") { 33 if ($vue == "normal") { 34 $ret = ''; 35 36 if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { 37 $ret .= '<form class="articles article edition" enctype="multipart/form-data" method="post" action="' . $chemin->get_url() . '">'; 38 $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; 39 $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "contenu"), "contenu"); 40 $ret .= '<p><input type="submit" value="appliquer" /></p>'; 41 $ret .= '</form>'; 42 } else { 43 $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>'; 44 $ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "contenu")); 45 } 46 if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) { 47 // TODO : afficher le bouton "Supprimer". 48 } 49 50 return new Page($ret, Stockage::get_prop($chemin, "titre")); 51 } elseif ($vue == "miniature") { 52 $ret = miniature_texte_enrichi(Stockage::get_prop($chemin, "contenu")); 53 return new Page($ret, Stockage::get_prop($chemin, "titre")); 54 } 55 } 56 } 57 58 Modules::enregister_module("ArticlesArticle", "articles-article", "vue", "titre contenu"); 59 60 ?>