galerie-periode.php (4592B)
1 <?php 2 3 class GaleriePériode { 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 évènement", "galerie-evenement"); 9 Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); 10 Stockage::set_prop($np, "titre", "Nouvel évènement"); 11 Stockage::set_prop($np, "description", ""); 12 enregistrer_nouveaute($np); 13 return new Page($np, '', "redirect"); 14 } else if ($action == "supprimer") { 15 Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif 16 return new Page($chemin->parent(), '', "redirect"); 17 } else { 18 if (isset($paramètres["description"])) { 19 Stockage::set_prop($chemin, "description", $paramètres["description"]); 20 } 21 22 // titre après les autres paramètres car il peut générer un redirect. 23 if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) { 24 Stockage::set_prop($chemin, "titre", $paramètres["titre"]); 25 Stockage::renomer($chemin, $paramètres["titre"]); 26 $chemin = $chemin->renomer($paramètres["titre"]); 27 // TODO : transmettre le paramètre "vue" 28 // TODO : ne marche pas. 29 return new Page($chemin, '', "redirect"); 30 } 31 32 if (isset($paramètres["vue"])) { 33 return self::vue($chemin, $paramètres["vue"]); 34 } else { 35 return self::vue($chemin); 36 } 37 } 38 } 39 40 public static function vue($chemin, $vue = "normal") { 41 if ($vue == "normal") { 42 $ret = ''; 43 44 if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { 45 $ret .= '<form class="galerie infos" method="post" action="' . $chemin->get_url() . '">'; 46 $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; 47 $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description"); 48 $ret .= '<p><input type="submit" value="appliquer" /></p>'; 49 $ret .= '</form>'; 50 } else { 51 $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>'; 52 $ret .= '<p class="galerie periode description affichage">' . Stockage::get_prop($chemin, "description") . '</p>'; 53 } 54 55 $ret .= '<div class="galerie photos periode">'; 56 $ret .= '<ul>'; 57 foreach (Stockage::liste_enfants($chemin) as $k) { 58 $mini = Modules::vue($k, 'miniature'); 59 $ret .= '<li>'; 60 $ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url ! 61 $ret .= '<span class="miniature">'; 62 $ret .= $mini->contenu; // TODO : escape l'url ! 63 $ret .= '</span>'; 64 $ret .= '<span class="titre">'; 65 $ret .= $mini->titre; 66 $ret .= '</span>'; 67 $ret .= '</a>'; 68 $ret .= '</li>'; 69 } 70 71 if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { 72 $ret .= '<li>'; 73 $ret .= '<div class="miniature">'; 74 $ret .= '<img alt="nouvel évènement" src="' . $chemin->get_url("?vue=image_nouvel_evenement") . '" />'; 75 $ret .= '</div>'; 76 $ret .= '<div class="titre">'; 77 78 $ret .= '<form class="galerie nouvelle_page" method="post" action="' . $chemin->get_url() . '">'; 79 $ret .= '<p>'; 80 $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>'; 81 $ret .= '<input type="submit" value="Nouvel évènement"/>'; 82 $ret .= '</p>'; 83 $ret .= '</form>'; 84 85 $ret .= '</div>'; 86 $ret .= '</li>'; 87 } 88 89 $ret .= '</ul>'; 90 $ret .= '<div class="clearboth"></div>'; 91 $ret .= '</div>'; 92 93 if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) { 94 $ret .= '<form action="' . $chemin->get_url() . '">'; 95 $ret .= '<input type="hidden" name="action" value="supprimer"/>'; 96 $ret .= '<input type="submit" value="Supprimer la période"/>'; 97 $ret .= '</form>'; 98 } 99 return new Page($ret, Stockage::get_prop($chemin, "titre")); 100 } else if ($vue == "miniature") { 101 $ret = "Aucune<br/>photo"; 102 103 $enfants = Stockage::liste_enfants($chemin); 104 if (isset($enfants[0])) $ret = Modules::vue($enfants[0], 'miniature')->contenu; 105 106 return new Page($ret, Stockage::get_prop($chemin, "titre")); 107 } else if ($vue == "image_nouvel_evenement") { 108 // Houlàlà ça sent le hack pas beau ! 109 return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvel_evenement.jpg"), null, "sendfile"); 110 } 111 } 112 } 113 114 Modules::enregister_module("GaleriePériode", "galerie-periode", "vue", "titre description"); 115 116 ?>