www

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

commit 4d3dd2d5d1eeedbba3e440517928505602169d11
parent 3afe99ebb4a09f0248de0c78430f04954d722ba8
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Thu, 24 Jun 2010 05:05:20 +0200

Début du support pour la détection du type de la page en fonction de _prop_type (la page /galerie utilise le type galerie, la page /truc utilise un autre, etc.)
Ajout d'un exemple pour galerie dans modèle.

Diffstat:
Mcontroleur/page.php | 20+++++++++++++++++---
Mindex.php | 2+-
Amodele/galerie/.gitignore | 0
Amodele/galerie/evenement 1/.gitignore | 0
Amodele/galerie/evenement 2/.gitignore | 0
Amodele/galerie/evenement 2/photo a/.gitignore | 0
Amodele/galerie/evenement 2/photo b/.gitignore | 0
Amodele/galerie/evenement 2/photo c/.gitignore | 0
Mtypes/galerie.php | 4+++-
9 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/controleur/page.php b/controleur/page.php @@ -16,6 +16,18 @@ require_once("controleur/chemin_page.php"); // /article_2 // Sous article class Page { + private static $types = Array(); + + public static function ajouterType($nom, $classe) { + self::$types[$nom] = $classe; + } + + public static function _new($chemin) { + // TODO : détecter le type à partir de _prop_type + // Problème : pour pouvoir faire un get_prop, il faut qu'on ait déjà instancié la classe... + return new self::$types["Galerie"]($chemin); + } + public function __construct($chemin) { $this->chemin = new CheminPage($chemin); } @@ -32,17 +44,19 @@ class Page { $enfants = Array(); foreach ($scandir as $k => $v) { - $enfants[] = $this->enfant($v); + if (is_dir(concaténer_chemin_fs($this->chemin_fs(), $v)) && $v != "." && $v != "..") { + $enfants[] = $this->enfant($v); + } } return $enfants; } public function enfant($nom) { - return new Page($this->chemin->enfant($nom)); + return Page::_new($this->chemin->enfant($nom)); } public function parent() { - return new Page($this->chemin->parent()); + return Page::_new($this->chemin->parent()); } public function nouveau($nom) { diff --git a/index.php b/index.php @@ -3,7 +3,7 @@ require_once("types/galerie.php"); -$p = new Galerie("."); +$p = new Galerie("/modele"); print_r($p->vue()); diff --git a/modele/galerie/.gitignore b/modele/galerie/.gitignore diff --git a/modele/galerie/evenement 1/.gitignore b/modele/galerie/evenement 1/.gitignore diff --git a/modele/galerie/evenement 2/.gitignore b/modele/galerie/evenement 2/.gitignore diff --git a/modele/galerie/evenement 2/photo a/.gitignore b/modele/galerie/evenement 2/photo a/.gitignore diff --git a/modele/galerie/evenement 2/photo b/.gitignore b/modele/galerie/evenement 2/photo b/.gitignore diff --git a/modele/galerie/evenement 2/photo c/.gitignore b/modele/galerie/evenement 2/photo c/.gitignore diff --git a/types/galerie.php b/types/galerie.php @@ -8,7 +8,7 @@ class Galerie extends Page { $ret .= '<ul>'; foreach ($this->liste_enfants() as $k) { - $ret .= '<li><a href="' . $k->url() . '">' . $k->vue('miniature') . '</a></li>'; + $ret .= '<li><a href="' . $k->url() . '">' . $k->chemin->get() . $k->vue('miniature') . '</a></li>'; } $ret .= '</ul>'; @@ -26,4 +26,6 @@ class Galerie extends Page { // + Méthodes définies dans modele/page.php } +Page::ajouterType("Galerie", "Galerie"); + ?>