commit e12d09a999b83253732215b2f9751606b0d02f04
parent 3e62897e668032d1858e8e44a8d71239ff00a4ff
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Thu, 8 Jul 2010 04:30:14 +0200
CheminPage utilise maintenant une tableau de segments de chemin.
["Chemin", "Vers", "Page"]
Diffstat:
3 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/__cms__/controleur/chemin_page.php b/__cms__/controleur/chemin_page.php
@@ -1,19 +1,21 @@
<?php
-// Note : L'implémentation de CheminPage pourrait utiliser une pile au lieu des chaînes de caractère :
+// Note : L'implémentation de CheminPage utilise une pile au lieu de chaînes de caractère :
// ["Chemin", "Vers", "Page"] == "/Chemin/Vers/Page"
+require_once("path.php");
+
class CheminPage {
public function __construct($chemin) {
- $this->chemin = CheminPage::nettoyer_chemin($chemin);
+ $this->chemin = explode('/', CheminPage::nettoyer_chemin($chemin));
}
public function get() {
- return $this->chemin;
+ return '/'.join($this->chemin, '/');
}
public function enfant($nom) {
- return $this->chemin . '/' . CheminPage::nettoyer_chemin($nom);
+ return '/'.join($this->chemin, '/') . '/' . CheminPage::nettoyer_chemin($nom);
}
public function parent() {
@@ -30,10 +32,15 @@ class CheminPage {
// * Ne contient pas '\0'
// * Ne contient pas '../'
// * Ne contient pas de double occurence de '/'
- // * Ni d'autres bizarreries des chemins de fichiers.
// * Ne contient pas _prop_
// * Ne se termine pas par '/'
- // * Commence par '/'
+ // * Ne commence pas par '/'
+ // * Ni d'autres bizarreries des chemins de fichiers.
+
+ $chemin = preg_replace("/\\0/", '', $chemin); // TODO : vérifier si c'est bien ça !
+ $chemin = Path::normalize($chemin);
+ $chemin = preg_replace("/^\/*/", '', $chemin);
+ $chemin = preg_replace("/\/*$/", '', $chemin);
// TODO
return $chemin;
diff --git a/galerie/index.php b/galerie/index.php
@@ -2,6 +2,6 @@
require_once("../__cms__/cms.php");
-CMS::affiche("/galerie");
+CMS::affiche("/galerie", $_GET);
?>
diff --git a/index.php b/index.php
@@ -2,6 +2,6 @@
require_once("__cms__/cms.php");
-CMS::affiche('/', $_GET["action"], $_GET);
+CMS::affiche('/', $_GET);
?>
\ No newline at end of file