www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit d5ee5bd6f929444916c8387bfdc8861ab3125c70
parent 799b4a3cafe8892d034aec8a031bb50e583db1bf
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Thu, 19 Aug 2010 06:16:38 +0200

Galerie-periode.php fait entièrement dans meld à partir de galerie-index.php. \o/

En fait c'est plutôt sympa de coder dans un diff graphique :) .

Diffstat:
M__cms__/TODO | 4++--
M__cms__/code/modules/galerie/galerie-index.php | 7++++---
M__cms__/code/modules/galerie/galerie-periode.php | 79+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------
A__cms__/code/site/nouvel_evenement.jpg | 0
M__cms__/code/stockage/stockage.php | 5+++++
5 files changed, 72 insertions(+), 23 deletions(-)

diff --git a/__cms__/TODO b/__cms__/TODO @@ -5,4 +5,5 @@ Les titres devraient renomer _+_ set_prop (sachant que le renomage peut déterio Gérer ces saletées de magic quotes dans les biscuits aux brisures de chocolat (cookies). Mettre le css dans une page (dossier) qui s'appelle "style.css", comme ça ça donne l'impression que c'est un fichier (même si en réalité c'est le index.php de cette page qui le génère). -Si on ne peut lire la propriété __prop_type, afficher un "Access Denied" au lieu de dire qu'on n'a pas pu lire la propriété. -\ No newline at end of file +Si on ne peut lire la propriété __prop_type, afficher un "Access Denied" au lieu de dire qu'on n'a pas pu lire la propriété. +Ajouter une petite horloge sur nouvel_evenement.jpg et un petit calendrier sur nouvelle_periode.jpg diff --git a/__cms__/code/modules/galerie/galerie-index.php b/__cms__/code/modules/galerie/galerie-index.php @@ -11,13 +11,14 @@ class GalerieIndex { Stockage::set_prop($np, "description", ""); return new Page($np, '', "redirect"); } else { - if (isset($paramètres["titre"])) { - Stockage::set_prop($chemin, "titre", $paramètres["titre"]); - } if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); } + if (isset($paramètres["titre"])) { + Stockage::set_prop($chemin, "titre", $paramètres["titre"]); + } + if (isset($paramètres["vue"])) { return self::vue($chemin, $paramètres["vue"]); } else { diff --git a/__cms__/code/modules/galerie/galerie-periode.php b/__cms__/code/modules/galerie/galerie-periode.php @@ -7,20 +7,27 @@ class GaleriePériode { } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvel évènement", "galerie-periode"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); + Stockage::set_prop($np, "titre", "Nouvel évènement"); + Stockage::set_prop($np, "description", ""); return new Page($np, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif return new Page($chemin->parent(), '', "redirect"); } else { - if (isset($paramètres["titre"])) { - Stockage::renomer($chemin, $paramètres["titre"]); - $chemin = $chemin->renomer($paramètres["titre"]); - // TODO : peut-être new Page($chemin, '', "redirect") ? - } if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); } + // titre après les autres paramètres car il peut générer un redirect. + if (isset($paramètres["titre"]) && Stockage::prop_diff($chemin, "titre", $paramètres["titre"])) { + Stockage::set_prop($chemin, "titre", $paramètres["titre"]); + Stockage::renomer($chemin, $paramètres["titre"]); + $chemin = $chemin->renomer($paramètres["titre"]); + // TODO : transmettre le paramètre "vue" + // TODO : ne marche pas. + return new Page($chemin, '', "redirect"); + } + if (isset($paramètres["vue"])) { return self::vue($chemin, $paramètres["vue"]); } else { @@ -30,40 +37,76 @@ class GaleriePériode { } public static function vue($chemin, $vue = "normal") { - $ret = ''; if ($vue == "normal") { + $ret = ''; + if (Permissions::vérifier_permission($chemin, "set_prop", Authentification::get_utilisateur())) { - $ret .= '<input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" />'; - $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "message"); + $ret .= '<form class="galerie infos" method="post" action="' . $chemin->get_url() . '">'; + $ret .= '<h2><input type="text" name="titre" value="' . Stockage::get_prop($chemin, "titre") . '" /></h2>'; + $ret .= formulaire_édition_texte_enrichi(Stockage::get_prop($chemin, "description"), "description"); + $ret .= '<p><input type="submit" value="appliquer" /></p>'; + $ret .= '</form>'; } else { $ret .= '<h2>' . Stockage::get_prop($chemin, "titre") . '</h2>'; $ret .= '<p class="galerie periode description affichage">' . Stockage::get_prop($chemin, "description") . '</p>'; } + + $ret .= '<div class="galerie photos periode">'; + $ret .= '<ul>'; + foreach (Stockage::liste_enfants($chemin) as $k) { + $mini = Modules::vue($k, 'miniature'); + $ret .= '<li>'; + $ret .= '<a href="' . $k->get_url() . '">'; // TODO : escape l'url ! + $ret .= '<span class="miniature">'; + $ret .= $mini->contenu; // TODO : escape l'url ! + $ret .= '</span>'; + $ret .= '<span class="titre">'; + $ret .= $mini->titre; + $ret .= '</span>'; + $ret .= '</a>'; + $ret .= '</li>'; + } + if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) { - $ret .= '<form action="' . $chemin->get_url() . '">'; + $ret .= '<li>'; + $ret .= '<div class="miniature">'; + $ret .= '<img alt="nouvel évènement" src="' . $chemin->get_url("?vue=image_nouvel_evenement") . '" />'; + $ret .= '</div>'; + $ret .= '<div class="titre">'; + + $ret .= '<form class="galerie nouvelle_page" method="post" action="' . $chemin->get_url() . '">'; + $ret .= '<p>'; $ret .= '<input type="hidden" name="action" value="nouvelle_page"/>'; - $ret .= '<input type="submit" value="Nouvelle page"/>'; + $ret .= '<input type="submit" value="Nouvel évènement"/>'; + $ret .= '</p>'; $ret .= '</form>'; + + $ret .= '</div>'; + $ret .= '</li>'; } + + $ret .= '</ul>'; + $ret .= '<div class="clearboth"></div>'; + $ret .= '</div>'; + if (Permissions::vérifier_permission($chemin, "supprimer", Authentification::get_utilisateur())) { $ret .= '<form action="' . $chemin->get_url() . '">'; $ret .= '<input type="hidden" name="action" value="supprimer"/>'; - $ret .= '<input type="submit" value="Supprimer"/>'; + $ret .= '<input type="submit" value="Supprimer la période"/>'; $ret .= '</form>'; } - $ret .= '<ul class="galerie photos période">'; - foreach (Stockage::liste_enfants($chemin) as $k) { - // TODO : escape l'url ! - $ret .= '<li><a href="' . $k->get_url() . '">' . Modules::vue($k, 'miniature')->contenu . '</a></li>'; - } - $ret .= '</ul>'; + return new Page($ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "miniature") { $ret = "Aucune<br/>photo"; $enfants = Stockage::liste_enfants($chemin); if (isset($enfants[0])) $ret = Modules::vue($enfants[0], 'miniature')->contenu; + + return new Page($ret, Stockage::get_prop($chemin, "titre")); + } else if ($vue == "image_nouvel_evenement") { + // Houlàlà ça sent le hack pas beau ! + return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvel_evenement.jpg"), null, "sendfile"); } - return new Page($ret, Stockage::get_prop($chemin, "titre")); } } diff --git a/__cms__/code/site/nouvel_evenement.jpg b/__cms__/code/site/nouvel_evenement.jpg Binary files differ. diff --git a/__cms__/code/stockage/stockage.php b/__cms__/code/stockage/stockage.php @@ -88,6 +88,11 @@ class Stockage { } } + public static function prop_diff($chemin, $prop, $valeur) { + // Renvoie true si la valeur actuelle de $prop est différente de $valeur. + return self::get_prop($chemin, $prop) != $valeur; + } + // TODO : la suppression non récursive d'une page implique de supprimer // ses propriétés, or pour ça, il faudrait que la suppression soit // récursive sur un niveau seulement, ce qui n'est pas possible avec ce