diff --git a/__cms__/code/chemin/chemin.php b/__cms__/code/chemin/chemin.php index 74621df..33951b0 100644 --- a/__cms__/code/chemin/chemin.php +++ b/__cms__/code/chemin/chemin.php @@ -49,6 +49,18 @@ class Chemin { public function get($slash_debut = true) { return ($slash_debut ? '/' : '') . join($this->segments, '/'); } + + public function hiérarchie() { + $c = new self($this->segments); + $r = new self("/"); + $ret = array(); + while (! $c->est_racine()) { + array_unshift($ret, $c); + $c = $c->parent(); + } + array_unshift($ret, $c); + return $ret; + } public function get_url($fin = "") { // Config::get("url_base") DOIT se terminer par '/', tel que spécifié @@ -87,6 +99,10 @@ class Chemin { return end($this->segments); } + public function est_racine() { + return (count($this->segments) == 0); + } + public static function nettoyer_chemin($chemin, $est_un_motif = false) { // SÉCURITÉ : $chemin nettoyé diff --git a/__cms__/code/cms/page.php b/__cms__/code/cms/page.php index c5f848b..942d1f2 100644 --- a/__cms__/code/cms/page.php +++ b/__cms__/code/cms/page.php @@ -8,8 +8,10 @@ class Page { public $sendprop_prop = ""; public $redirect_destination = ""; public $type = "page"; + public $chemin = null; - public function __construct($a, $b, $type = "page") { + public function __construct($chemin, $a, $b, $type = "page") { + $this->chemin = $chemin; if ($type == "page") { $this->set_page($a, $b); } else if ($type == "sendfile") { diff --git a/__cms__/code/modules/admin/admin-apparence.php b/__cms__/code/modules/admin/admin-apparence.php index cb0422e..54f6584 100644 --- a/__cms__/code/modules/admin/admin-apparence.php +++ b/__cms__/code/modules/admin/admin-apparence.php @@ -3,7 +3,7 @@ class AdminApparence { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else { if (isset($paramètres["Couleur_A"])) { Stockage::set_prop($chemin, "Couleur_A", $paramètres["Couleur_A"]); @@ -51,7 +51,7 @@ class AdminApparence { $ret .= '
  • Couleur D : #fff
  • '; $ret .= ''; } - return new Page($ret, "Apparence"); + return new Page($chemin, $ret, "Apparence"); } else if ($vue == "css") { // TODO : où mettre ce gen_css... ? return Site::gen_css(array( diff --git a/__cms__/code/modules/admin/admin-connexion.php b/__cms__/code/modules/admin/admin-connexion.php index 4aa21b0..ce0c5fb 100644 --- a/__cms__/code/modules/admin/admin-connexion.php +++ b/__cms__/code/modules/admin/admin-connexion.php @@ -27,25 +27,25 @@ class AdminConnexion { // formulaire de connexion, formulaire + "mauvais mdp") if ($vue == "normal") { $ret = self::formulaire_connexion($chemin); - return new Page($ret, "Connexion"); + return new Page($chemin, $ret, "Connexion"); } else if ($vue == "connexion réussie") { $ret = "

    Connexion réussie

    "; $ret .= "

    Pour vous déconnecter, utilisez le lien «déconnexion» en haut à droite.

    "; $ret .= "

    Retour à la page d'accueil.

    "; - return new Page($ret, "Connexion réussie"); + return new Page($chemin, $ret, "Connexion réussie"); }else if ($vue == "connexion échouée") { $msg = "

    Mauvais mot de passe et/ou nom d'utilisateur. Ré-essayez ou retournez à la "; $msg .= "page d'accueil"; $msg .= ".

    "; $ret = self::formulaire_connexion($chemin, "Connexion échouée", $msg); - return new Page($ret, "Connexion échouée"); + return new Page($chemin, $ret, "Connexion échouée"); }else if ($vue == "déconnexion") { $ret = "

    Déconnexion réussie

    "; $ret .= "

    Vous êtes déconnecté. Vous pouvez à présent retourner à la "; $ret .= "page d'accueil"; $ret .= ".

    "; - return new Page($ret, "Déconnexion réussie"); + return new Page($chemin, $ret, "Déconnexion réussie"); } } diff --git a/__cms__/code/modules/admin/admin-index.php b/__cms__/code/modules/admin/admin-index.php index 820e581..f0965a0 100644 --- a/__cms__/code/modules/admin/admin-index.php +++ b/__cms__/code/modules/admin/admin-index.php @@ -24,9 +24,9 @@ class AdminIndex { } } $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "nom_site")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "nom_site")); } - return new Page('',''); // TODO : devrait renvoyer une page d'erreur ! + return new Page($chemin, '',''); // TODO : devrait renvoyer une page d'erreur ! } } diff --git a/__cms__/code/modules/admin/admin-permissions.php b/__cms__/code/modules/admin/admin-permissions.php index b78c93c..b748229 100644 --- a/__cms__/code/modules/admin/admin-permissions.php +++ b/__cms__/code/modules/admin/admin-permissions.php @@ -4,7 +4,7 @@ class AdminPermissions { public static function action($chemin, $action, $paramètres) { $singleton = new Chemin("/admin/permissions/"); if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else { if (isset($paramètres["regles"])) { Stockage::set_prop($singleton, "regles", $paramètres["regles"]); @@ -30,7 +30,7 @@ class AdminPermissions { } else { $ret .= "
    " . Stockage::get_prop($singleton, "regles") . "
    "; // TODO : html escape chars etc. } - return new Page($ret, "Permissions"); + return new Page($chemin, $ret, "Permissions"); } } } diff --git a/__cms__/code/modules/admin/admin-utilisateurs.php b/__cms__/code/modules/admin/admin-utilisateurs.php index 7155fae..67d0e0e 100644 --- a/__cms__/code/modules/admin/admin-utilisateurs.php +++ b/__cms__/code/modules/admin/admin-utilisateurs.php @@ -4,7 +4,7 @@ class AdminUtilisateurs { public static function action($chemin, $action, $paramètres) { $singleton = new Chemin("/admin/utilisateurs/"); if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); // TODO ... // Solution A (propre) : @@ -84,7 +84,7 @@ class AdminUtilisateurs { // $chemin->enfant("$utilisateur") ?action=gen_mdp . } $ret .= ''; - return new Page($ret, "Utilisateurs"); + return new Page($chemin, $ret, "Utilisateurs"); } } } diff --git a/__cms__/code/modules/articles/articles-article.php b/__cms__/code/modules/articles/articles-article.php index d83a2de..081e408 100644 --- a/__cms__/code/modules/articles/articles-article.php +++ b/__cms__/code/modules/articles/articles-article.php @@ -3,10 +3,10 @@ class ArticlesArticle { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["contenu"])) { Stockage::set_prop($chemin, "contenu", $paramètres["contenu"]); @@ -18,7 +18,7 @@ class ArticlesArticle { Stockage::renomer($chemin, $paramètres["titre"]); $chemin = $chemin->renomer($paramètres["titre"]); // TODO : transmettre le paramètre "vue" - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } if (isset($paramètres["vue"])) { @@ -47,10 +47,10 @@ class ArticlesArticle { // TODO : afficher le bouton "Supprimer". } - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } elseif ($vue == "miniature") { $ret = miniature_texte_enrichi(Stockage::get_prop($chemin, "contenu")); - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/articles/articles-index.php b/__cms__/code/modules/articles/articles-index.php index 7812874..72e624d 100644 --- a/__cms__/code/modules/articles/articles-index.php +++ b/__cms__/code/modules/articles/articles-index.php @@ -3,13 +3,13 @@ class ArticlesIndex { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvel article", "articles-article"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); Stockage::set_prop($np, "titre", "Nouvel article"); Stockage::set_prop($np, "contenu", "Bla bla bla."); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -77,7 +77,7 @@ class ArticlesIndex { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/contact/contact-contact.php b/__cms__/code/modules/contact/contact-contact.php index b39be80..d332436 100644 --- a/__cms__/code/modules/contact/contact-contact.php +++ b/__cms__/code/modules/contact/contact-contact.php @@ -3,10 +3,10 @@ class ContactContact { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["nom"])) { Stockage::set_prop($chemin, "nom", $paramètres["nom"]); @@ -18,7 +18,7 @@ class ContactContact { Stockage::set_prop($chemin, "description", $paramètres["description"]); } - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } } @@ -46,7 +46,7 @@ class ContactContact { $ret .= ''; } - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/contact/contact-index.php b/__cms__/code/modules/contact/contact-index.php index 5603cd9..f69b02c 100644 --- a/__cms__/code/modules/contact/contact-index.php +++ b/__cms__/code/modules/contact/contact-index.php @@ -3,7 +3,7 @@ class ContactIndex { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement // CONCURENCE : Faire un lock quelque part... @@ -14,7 +14,7 @@ class ContactIndex { Stockage::set_prop($np, "nom", "Dupondt"); Stockage::set_prop($np, "prenom", "Jean"); Stockage::set_prop($np, "description", ""); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -71,7 +71,7 @@ class ContactIndex { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/equipes/equipes-equipe.php b/__cms__/code/modules/equipes/equipes-equipe.php index 654838c..2bb2f73 100644 --- a/__cms__/code/modules/equipes/equipes-equipe.php +++ b/__cms__/code/modules/equipes/equipes-equipe.php @@ -3,7 +3,7 @@ class ÉquipesÉquipe { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement // CONCURENCE : Faire un lock quelque part... @@ -15,17 +15,17 @@ class ÉquipesÉquipe { Stockage::set_prop($np, "prenom", "Jean"); Stockage::set_prop($np, "description", ""); - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { 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" - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } if (isset($paramètres["vue"])) { @@ -73,9 +73,9 @@ class ÉquipesÉquipe { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "miniature") { - return new Page("Équipe.", Stockage::get_prop($chemin, "titre")); + return new Page($chemin, "Équipe.", Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/equipes/equipes-index.php b/__cms__/code/modules/equipes/equipes-index.php index fb2bb9f..46fe3c3 100644 --- a/__cms__/code/modules/equipes/equipes-index.php +++ b/__cms__/code/modules/equipes/equipes-index.php @@ -3,13 +3,13 @@ class ÉquipesIndex { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvelle équipe", "equipes-equipe"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); Stockage::set_prop($np, "titre", "Nouvelle équipe"); Stockage::set_prop($np, "dernier_numero", 0); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -73,7 +73,7 @@ class ÉquipesIndex { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/equipes/equipes-joueur.php b/__cms__/code/modules/equipes/equipes-joueur.php index b9673c3..0d6d21c 100644 --- a/__cms__/code/modules/equipes/equipes-joueur.php +++ b/__cms__/code/modules/equipes/equipes-joueur.php @@ -3,10 +3,10 @@ class ÉquipesJoueur { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["nom"])) { Stockage::set_prop($chemin, "nom", $paramètres["nom"]); @@ -18,7 +18,7 @@ class ÉquipesJoueur { Stockage::set_prop($chemin, "description", $paramètres["description"]); } - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } } @@ -48,7 +48,7 @@ class ÉquipesJoueur { // Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ? - return new Page($ret, Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "prenom") . " " . Stockage::get_prop($chemin, "nom")); } } } diff --git a/__cms__/code/modules/forum/forum-index.php b/__cms__/code/modules/forum/forum-index.php index 2b319ee..ce4d276 100644 --- a/__cms__/code/modules/forum/forum-index.php +++ b/__cms__/code/modules/forum/forum-index.php @@ -3,13 +3,13 @@ class ForumIndex { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouveau sujet", "forum-sujet"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); Stockage::set_prop($np, "titre", "Nouveau sujet"); Stockage::set_prop($np, "dernier_numero", 0); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -74,7 +74,7 @@ class ForumIndex { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/forum/forum-message.php b/__cms__/code/modules/forum/forum-message.php index c967db6..aaa291c 100644 --- a/__cms__/code/modules/forum/forum-message.php +++ b/__cms__/code/modules/forum/forum-message.php @@ -3,16 +3,16 @@ class ForumMessage { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["message"])) { Stockage::set_prop($chemin, "message", $paramètres["message"]); } - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } } @@ -34,7 +34,7 @@ class ForumMessage { // Peut-être afficher le bouton "citer" ? ou est-ce trop d'options ? - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/forum/forum-sujet.php b/__cms__/code/modules/forum/forum-sujet.php index 22a5800..5bb9b98 100644 --- a/__cms__/code/modules/forum/forum-sujet.php +++ b/__cms__/code/modules/forum/forum-sujet.php @@ -3,7 +3,7 @@ class ForumSujet { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement // CONCURENCE : Faire un lock quelque part... @@ -13,17 +13,17 @@ class ForumSujet { Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); Stockage::set_prop($np, "message", ""); - return new Page($chemin, "#message" . $numéro_message, "redirect"); + return new Page($chemin, $chemin, "#message" . $numéro_message, "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { 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" - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } if (isset($paramètres["vue"])) { @@ -71,9 +71,9 @@ class ForumSujet { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "miniature") { - return new Page("Sujet.", Stockage::get_prop($chemin, "titre")); + return new Page($chemin, "Sujet.", Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/galerie/galerie-evenement.php b/__cms__/code/modules/galerie/galerie-evenement.php index 1af0fac..1921e69 100644 --- a/__cms__/code/modules/galerie/galerie-evenement.php +++ b/__cms__/code/modules/galerie/galerie-evenement.php @@ -3,16 +3,16 @@ class GalerieÉvènement { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvelle photo", "galerie-photo"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); Stockage::set_prop($np, "titre", "Nouvelle photo"); Stockage::set_prop($np, "description", ""); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -24,7 +24,7 @@ class GalerieÉvènement { Stockage::renomer($chemin, $paramètres["titre"]); $chemin = $chemin->renomer($paramètres["titre"]); // TODO : transmettre le paramètre "vue" - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } if (isset($paramètres["vue"])) { @@ -94,17 +94,17 @@ class GalerieÉvènement { $ret .= ''; $ret .= ''; } - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "miniature") { $ret = "Aucune
    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")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "image_nouvelle_photo") { // Houlàlà ça sent le hack pas beau ! - return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_photo.jpg"), null, "sendfile"); + return new Page($chemin, Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_photo.jpg"), null, "sendfile"); } } } diff --git a/__cms__/code/modules/galerie/galerie-index.php b/__cms__/code/modules/galerie/galerie-index.php index 752cc9d..37eaad8 100644 --- a/__cms__/code/modules/galerie/galerie-index.php +++ b/__cms__/code/modules/galerie/galerie-index.php @@ -3,13 +3,13 @@ class GalerieIndex { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvelle période", "galerie-periode"); Stockage::set_prop($np, "proprietaire", Authentification::get_utilisateur()); Stockage::set_prop($np, "titre", "Nouvelle période"); Stockage::set_prop($np, "description", ""); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -80,10 +80,10 @@ class GalerieIndex { $ret .= '
    '; $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "image_nouvelle_periode") { // Houlàlà ça sent le hack pas beau ! - return new Page(Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_image.jpg"), null, "sendfile"); + return new Page($chemin, Path::combine(Config::get("chemin_base"), "/code/site/nouvelle_image.jpg"), null, "sendfile"); } } } diff --git a/__cms__/code/modules/galerie/galerie-periode.php b/__cms__/code/modules/galerie/galerie-periode.php index 8c86cd8..4b32f09 100644 --- a/__cms__/code/modules/galerie/galerie-periode.php +++ b/__cms__/code/modules/galerie/galerie-periode.php @@ -3,16 +3,16 @@ class GaleriePériode { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { $np = Stockage::nouvelle_page($chemin, "Nouvel évènement", "galerie-evenement"); 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"); + return new Page($chemin, $np, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -25,7 +25,7 @@ class GaleriePériode { $chemin = $chemin->renomer($paramètres["titre"]); // TODO : transmettre le paramètre "vue" // TODO : ne marche pas. - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } if (isset($paramètres["vue"])) { @@ -95,17 +95,17 @@ class GaleriePériode { $ret .= ''; $ret .= ''; } - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "miniature") { $ret = "Aucune
    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")); + return new Page($chemin, $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($chemin, Path::combine(Config::get("chemin_base"), "/code/site/nouvel_evenement.jpg"), null, "sendfile"); } } } diff --git a/__cms__/code/modules/galerie/galerie-photo.php b/__cms__/code/modules/galerie/galerie-photo.php index 8c9b4fe..c4656b3 100644 --- a/__cms__/code/modules/galerie/galerie-photo.php +++ b/__cms__/code/modules/galerie/galerie-photo.php @@ -3,10 +3,10 @@ class GaleriePhoto { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["fichier_image"]) && ($paramètres["fichier_image"]["tmp_name"] != "")) { $fichier_image = $paramètres["fichier_image"]["tmp_name"]; @@ -25,7 +25,7 @@ class GaleriePhoto { Stockage::renomer($chemin, $paramètres["titre"]); $chemin = $chemin->renomer($paramètres["titre"]); // TODO : transmettre le paramètre "vue" - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } if (isset($paramètres["vue"])) { @@ -55,17 +55,17 @@ class GaleriePhoto { $ret .= '' . Stockage::get_prop($chemin, '; $ret .= affichage_texte_enrichi(Stockage::get_prop($chemin, "description")); } - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "miniature" || $vue == "mini") { $ret = '' . Stockage::get_prop($chemin, '; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } else if ($vue == "image") { - return new Page($chemin, "image", "sendprop"); + return new Page($chemin, $chemin, "image", "sendprop"); } else if ($vue == "image_mini") { - return new Page($chemin, "image_mini", "sendprop"); + return new Page($chemin, $chemin, "image_mini", "sendprop"); } - return new Page('',''); // TODO : devrait renvoyer une page d'erreur ! + return new Page($chemin, '',''); // TODO : devrait renvoyer une page d'erreur ! } public static function creer_miniature($chemin_fs, $largeur_max, $hauteur_max) { diff --git a/__cms__/code/modules/liens/liens-index.php b/__cms__/code/modules/liens/liens-index.php index cd0bca3..a7d7646 100644 --- a/__cms__/code/modules/liens/liens-index.php +++ b/__cms__/code/modules/liens/liens-index.php @@ -3,7 +3,7 @@ class LiensIndex { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "nouvelle_page") { // SECURITE : On ne doit PAS pouvoir modifier dernier_numero arbitrairement // CONCURENCE : Faire un lock quelque part... @@ -14,7 +14,7 @@ class LiensIndex { Stockage::set_prop($np, "texte", "Un lien"); Stockage::set_prop($np, "cible", "http://www.example.com/page/"); Stockage::set_prop($np, "description", "Un lien d'exemple très utile."); - return new Page($np, '', "redirect"); + return new Page($chemin, $np, '', "redirect"); } else { if (isset($paramètres["description"])) { Stockage::set_prop($chemin, "description", $paramètres["description"]); @@ -72,7 +72,7 @@ class LiensIndex { $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/liens/liens-lien.php b/__cms__/code/modules/liens/liens-lien.php index 2594a6a..3c583fd 100644 --- a/__cms__/code/modules/liens/liens-lien.php +++ b/__cms__/code/modules/liens/liens-lien.php @@ -3,10 +3,10 @@ class LiensLien { public static function action($chemin, $action, $paramètres) { if ($action == "anuler") { - return new Page($chemin, '', "redirect"); + return new Page($chemin, $chemin, '', "redirect"); } else if ($action == "supprimer") { Stockage::supprimer($chemin, true); // TODO ! gérer correctement le récursif - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } else { if (isset($paramètres["texte"])) { Stockage::set_prop($chemin, "texte", $paramètres["texte"]); @@ -18,7 +18,7 @@ class LiensLien { Stockage::set_prop($chemin, "cible", $paramètres["cible"]); } - return new Page($chemin->parent(), '', "redirect"); + return new Page($chemin, $chemin->parent(), '', "redirect"); } } @@ -44,7 +44,7 @@ class LiensLien { $ret .= ''; } - return new Page($ret, Stockage::get_prop($chemin, "titre")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre")); } } } diff --git a/__cms__/code/modules/site/site-index.php b/__cms__/code/modules/site/site-index.php index e26a9c5..3fd43d1 100644 --- a/__cms__/code/modules/site/site-index.php +++ b/__cms__/code/modules/site/site-index.php @@ -55,11 +55,11 @@ class SiteIndex { $ret .= Stockage::get_prop($chemin, "description"); } $ret .= ''; - return new Page($ret, Stockage::get_prop($chemin, "nom_site")); + return new Page($chemin, $ret, Stockage::get_prop($chemin, "nom_site")); } else if ($vue == "css") { - return new Page(get_css(), "text/css", "raw"); + return new Page($chemin, get_css(), "text/css", "raw"); } - return new Page('',''); // TODO : devrait renvoyer une page d'erreur ! + return new Page($chemin, '',''); // TODO : devrait renvoyer une page d'erreur ! } } diff --git a/__cms__/code/site/squelette.php b/__cms__/code/site/squelette.php index ea19338..b39e346 100644 --- a/__cms__/code/site/squelette.php +++ b/__cms__/code/site/squelette.php @@ -52,6 +52,20 @@ class Squelette { $ret .= ' ' . $nl; $ret .= ' ' . $nl; $ret .= '
    ' . $nl; + if (! $page->chemin->est_racine() && ! $page->chemin->parent()->est_racine()) { + $ret .= '

    ' . $nl; + $premier = true; + foreach ($page->chemin->hiérarchie() as $i) { + if (!$i->est_racine()) { + if (!$premier) { + $ret .= ' > '; + } + $ret .= ' ' . $i->dernier() . '' . $nl; + $premier = false; + } + } + $ret .= '

    ' . $nl; + } return $ret; } diff --git a/test.less b/test.less index 3d0ed8a..64791c8 100644 --- a/test.less +++ b/test.less @@ -1,13 +1,14 @@ // TODO : dans galerie les images ne sont pas centrées verticalement dans leur boîte. -@largeur-contenu: 63em; +@largeur-contenu: 53em; /* Couleurs principales */ @base: #ffff00; @base2: #ba7500; @fg: #000000; @bg: #ffffff; -@couleur-important: #ff0000; +@fg-important: #0000ff; +@bg-important: #ff7f00; /* Couleurs dérivées */ @softbase: (2*@base + @bg) / 3; @@ -64,9 +65,9 @@ h2 { } .prochain-evenement { - color: @couleur-important; - background-color: (6*@bg + @couleur-important) / 7; - border: thick solid @couleur-important; + color: @fg; + background-color: (2*@bg + @bg-important) / 3; + border: thick solid @fg-important; margin: 0 5em 1em; padding: 1em; text-align: center;