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 :) .
This commit is contained in:
Georges Dupéron 2010-08-19 06:16:38 +02:00
parent 799b4a3caf
commit d5ee5bd6f9
5 changed files with 75 additions and 25 deletions

View File

@ -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é.
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

View File

@ -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 {

View File

@ -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>';
}
if (Permissions::vérifier_permission($chemin, "nouvelle_page", Authentification::get_utilisateur())) {
$ret .= '<form action="' . $chemin->get_url() . '">';
$ret .= '<input type="hidden" name="action" value="nouvelle_page"/>';
$ret .= '<input type="submit" value="Nouvelle page"/>';
$ret .= '</form>';
$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 .= '<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="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"));
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -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