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:
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");
+
?>