Bandeau de navigation (breadcrumbs).

This commit is contained in:
Georges Dupéron 2010-09-22 23:05:47 +02:00
parent b2ed8db6d5
commit bcf9c91b1d
26 changed files with 128 additions and 95 deletions

View File

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

View File

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

View File

@ -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 .= '<li>Couleur D : #fff</li>';
$ret .= '</ul>';
}
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(

View File

@ -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 = "<h2>Connexion réussie</h2>";
$ret .= "<p>Pour vous déconnecter, utilisez le lien «déconnexion» en haut à droite.</p>";
$ret .= "<p><a href=\"" . Config::get("url_base") . "\">Retour à la page d'accueil</a>.</p>";
return new Page($ret, "Connexion réussie");
return new Page($chemin, $ret, "Connexion réussie");
}else if ($vue == "connexion échouée") {
$msg = "<p><strong>Mauvais mot de passe et/ou nom d'utilisateur. Ré-essayez ou retournez à la ";
$msg .= "<a href=\"" . Config::get("url_base") . "\">page d'accueil</a>";
$msg .= ".</strong></p>";
$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 = "<h2>Déconnexion réussie</h2>";
$ret .= "<p>Vous êtes déconnecté. Vous pouvez à présent retourner à la ";
$ret .= "<a href=\"" . Config::get("url_base") . "\">page d'accueil</a>";
$ret .= ".</p>";
return new Page($ret, "Déconnexion réussie");
return new Page($chemin, $ret, "Déconnexion réussie");
}
}

View File

@ -24,9 +24,9 @@ class AdminIndex {
}
}
$ret .= '</ul>';
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 !
}
}

View File

@ -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 .= "<pre><code>" . Stockage::get_prop($singleton, "regles") . "</code></pre>"; // TODO : html escape chars etc.
}
return new Page($ret, "Permissions");
return new Page($chemin, $ret, "Permissions");
}
}
}

View File

@ -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 .= '</tbody></table>';
return new Page($ret, "Utilisateurs");
return new Page($chemin, $ret, "Utilisateurs");
}
}
}

View File

@ -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"));
}
}
}

View File

@ -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 .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -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 .= '</form>';
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -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 .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -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 .= '</ul>';
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"));
}
}
}

View File

@ -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 .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -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"));
}
}
}

View File

@ -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 .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -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"));
}
}
}

View File

@ -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 .= '</ul>';
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"));
}
}
}

View File

@ -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 .= '<input type="submit" value="Supprimer l\'évènement"/>';
$ret .= '</form>';
}
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<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"));
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");
}
}
}

View File

@ -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 .= '<div class="clearboth"></div>';
$ret .= '</div>';
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");
}
}
}

View File

@ -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 .= '<input type="submit" value="Supprimer la période"/>';
$ret .= '</form>';
}
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<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"));
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");
}
}
}

View File

@ -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 .= '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image") . '"/>';
$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 = '<img alt="' . Stockage::get_prop($chemin, "titre") . '" src="' . $chemin->get_url("?vue=image_mini") . '"/>';
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) {

View File

@ -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 .= '</ul>';
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -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 .= '</form>';
}
return new Page($ret, Stockage::get_prop($chemin, "titre"));
return new Page($chemin, $ret, Stockage::get_prop($chemin, "titre"));
}
}
}

View File

@ -55,11 +55,11 @@ class SiteIndex {
$ret .= Stockage::get_prop($chemin, "description");
}
$ret .= '</div>';
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 !
}
}

View File

@ -52,6 +52,20 @@ class Squelette {
$ret .= ' </ul>' . $nl;
$ret .= ' </div>' . $nl;
$ret .= ' <div class="site contenu">' . $nl;
if (! $page->chemin->est_racine() && ! $page->chemin->parent()->est_racine()) {
$ret .= ' <p class="">' . $nl;
$premier = true;
foreach ($page->chemin->hiérarchie() as $i) {
if (!$i->est_racine()) {
if (!$premier) {
$ret .= ' &gt; ';
}
$ret .= ' <a href="' . $i->get_url() . '">' . $i->dernier() . '</a>' . $nl;
$premier = false;
}
}
$ret .= ' </p>' . $nl;
}
return $ret;
}

View File

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