www

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

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:
M__cms__/controleur/chemin_page.php | 19+++++++++++++------
Mgalerie/index.php | 2+-
Mindex.php | 2+-
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