galerie-evenement.php (4594B)
1 <?php 2 3 class GalerieÉvènement { 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, "Nouvelle photo", "galerie-photo"); 9 Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); 10 Stockage::set_prop($np, "titre", "Nouvelle photo"); 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 return new Page($chemin, '', "redirect"); 29 } 30 31 if (isset($paramètres["vue"])) { 32 return self::vue($chemin, $paramètres["vue"]); 33 } else { 34 return self::vue($chemin); 35 } 36 } 37 } 38 39 public static function vue($chemin, $vue = "normal") { 40 if ($vue == "normal") { 41 $ret = ''; 42 43 if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { 44 $ret .= '<form class="galerie infos" method="post" action="' . $chemin->get_url() . '">'; 45 $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; 46 $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description"); 47 $ret .= '<p><input type="submit" value="appliquer" /></p>'; 48 $ret .= '</form>'; 49 } else { 50 $ret .= '<h2 class="galerie evenement titre affichage">' . Stockage::get_prop($chemin, "titre") . '</h2>'; 51 $ret .= '<p class="galerie evenement description affichage">' . Stockage::get_prop($chemin, "description") . '</p>'; 52 } 53 54 $ret .= '<div class="galerie photos evenement">'; 55 $ret .= '<ul>'; 56 foreach (Stockage::liste_enfants($chemin) as $k) { 57 $mini = Modules::vue($k, 'miniature'); 58 $ret .= '<li>'; 59 $ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url ! 60 $ret .= '<span class="miniature">'; 61 $ret .= $mini->contenu; // TODO : escape l'url ! 62 $ret .= '</span>'; 63 $ret .= '<span class="titre">'; 64 $ret .= $mini->titre; 65 $ret .= '</span>'; 66 $ret .= '</a>'; 67 $ret .= '</li>'; 68 } 69 70 if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { 71 $ret .= '<li>'; 72 $ret .= '<div class="miniature">'; 73 $ret .= '<img alt="nouvelle photo" src="' . $chemin->get_url("?vue=image_nouvelle_photo") . '" />'; 74 $ret .= '</div>'; 75 $ret .= '<div class="titre">'; 76 77 $ret .= '<form class="galerie nouvelle_page" method="post" action="' . $chemin->get_url() . '">'; 78 $ret .= '<p>'; 79 $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>'; 80 $ret .= '<input type="submit" value="Nouvelle photo"/>'; 81 $ret .= '</p>'; 82 $ret .= '</form>'; 83 84 $ret .= '</div>'; 85 $ret .= '</li>'; 86 } 87 88 $ret .= '</ul>'; 89 $ret .= '<div class="clearboth"></div>'; 90 $ret .= '</div>'; 91 92 if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) { 93 $ret .= '<form action="' . $chemin->get_url() . '">'; 94 $ret .= '<input type="hidden" name="action" value="supprimer"/>'; 95 $ret .= '<input type="submit" value="Supprimer l\'évènement"/>'; 96 $ret .= '</form>'; 97 } 98 return new Page($ret, Stockage::get_prop($chemin, "titre")); 99 } else if ($vue == "miniature") { 100 $ret = "Aucune<br/>photo"; 101 102 $enfants = Stockage::liste_enfants($chemin); 103 if (isset($enfants[0])) $ret = Modules::vue($enfants[0], 'miniature')->contenu; 104 105 return new Page($ret, Stockage::get_prop($chemin, "titre")); 106 } else if ($vue == "image_nouvelle_photo") { 107 // Houlàlà ça sent le hack pas beau ! 108 return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_photo.jpg"), null, "sendfile"); 109 } 110 } 111 } 112 113 Modules::enregister_module("GalerieÉvènement", "galerie-evenement", "vue", "titre description"); 114 115 ?>