www

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

commit bc15e4caada8f4b7d7462e7a963d1c810256c2f5
parent 6ad76de6128916457f845c5ba9e822e34512336f
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date:   Sun,  1 Aug 2010 21:07:26 +0200

Concaténation "propre" de chemins pour Stockage et config.php.

Diffstat:
M__cms__/chemin/chemin.php | 12+++++++++++-
M__cms__/config.php | 21++++++++++++++++++---
M__cms__/stockage/stockage.php | 16++++++++--------
3 files changed, 37 insertions(+), 12 deletions(-)

diff --git a/__cms__/chemin/chemin.php b/__cms__/chemin/chemin.php @@ -47,7 +47,17 @@ class Chemin { } public function get_url() { - return $config_url_base . '/' . $this->get(); + // $config_url_base DOIT se terminer par '/', tel que spécifié + // dans config.php. + return $config_url_base . $this->get(); + } + + public function get_fs_stockage() { + return Path::combine($config_chemin_base_stockage, $this->get()); + } + + public function get_fs_public() { + return Path::combine($config_chemin_base_public, $this->get()); } public function enfant($nom) { diff --git a/__cms__/config.php b/__cms__/config.php @@ -1,9 +1,24 @@ <?php +// Fonction Path::normalize(); +require_once(dirname(__FILE__) . "/chemin/path.php"); + +// ========== CONFIGURATION ========= + +// URL de la racine du site. Ex: http://www.monsite.com/cms/ +// Doit se terminer par '/'. $config_url_base = "http://127.0.0.1/2010-moteur-site-simple/"; -$config_chemin_base = dirname(__FILE__); -$config_chemin_base_stockage = $config_chemin_base . "/modele"; -$config_chemin_base_public = $config_chemin_base . "/.."; // TODO !!! +// Chemin absolu vers le dossier '__cms__'. +// dirname(__FILE__) peut retourner un chemin relatif (PHP < 4.0.2), +// donc utiliser realpath si on s'en sert. +$config_chemin_base = realpath(dirname(__FILE__)); + +// Chemin vers le stockage interne des données. +// En général, c'est le chemin __cms__ +$config_chemin_base_stockage = Path::combine($config_chemin_base, "modele"); +$config_chemin_base_public = Path::combine($config_chemin_base "/.."); + +// ======== FIN CONFIGURATION ======= ?> diff --git a/__cms__/stockage/stockage.php b/__cms__/stockage/stockage.php @@ -20,7 +20,7 @@ class Stockage { public function set_prop($chemin, $prop, $valeur) { if (vérifier_permission($chemin, "set_prop")) { - return SystemeFichiers::écrire($config_chemin_base_stockage . '/' . $chemin . '/' . $prop, $valeur) + return SystemeFichiers::écrire(Path::combine($chemin->get_fs_stockage(), $prop), $valeur) } else { return false; } @@ -29,7 +29,7 @@ class Stockage { // Stocke le contenu de $fichier dans $prop, et supprime $fichier. public function set_prop_fichier($chemin, $prop, $fichier) { if (vérifier_permission($chemin, "set_prop")) { - return SystemeFichiers::déplacer($fichier, $config_chemin_base_stockage . '/' . $chemin . '/' . $prop) + return SystemeFichiers::déplacer($fichier, Path::combine($chemin->get_fs_stockage(), $prop)); } else { return false; } @@ -38,7 +38,7 @@ class Stockage { // Comme pour set_prop_fichier, mais pour un fichier reçu (uploadé). public function set_prop_fichier_reçu($chemin, $prop, $fichier) { if (vérifier_permission($chemin, "set_prop")) { - return SystemeFichiers::déplacer_fichier_téléchargé($fichier, $config_chemin_base_stockage . '/' . $chemin . '/' . $prop) + return SystemeFichiers::déplacer_fichier_téléchargé($fichier, Path::combine($chemin->get_fs_stockage(), $prop)); } else { return false; } @@ -49,7 +49,7 @@ class Stockage { // dépendances get_regles() et get_groupe() de faire des get_prop // même si l'utilisateur courant n'en a pas le droit. if ($forcer_permissions || vérifier_permission($chemin, "get_prop")) { - return SystemeFichiers::lire($config_chemin_base_stockage . '/' . $chemin . '/' . $prop); + return SystemeFichiers::lire(Path::combine($chemin->get_fs_stockage(), $prop)); } else { return "[Accès interdit]"; } @@ -59,7 +59,7 @@ class Stockage { // Envoie tout le conctenu de $prop sur le réseau. // Équivalent à appeller sendfile sur le fichier qui contient $prop. if (vérifier_permission($chemin, "get_prop")) { - return SystemeFichiers::envoyer_fichier_directement($config_chemin_base_stockage . '/' . $chemin . '/' . $prop); + return SystemeFichiers::envoyer_fichier_directement(Path::combine($chemin->get_fs_stockage(), $prop)); } else { return false; } @@ -71,7 +71,7 @@ class Stockage { // code. public function supprimer($chemin, $récursif) { if (vérifier_permission($chemin, "supprimer")) { - return SystèmeFichier::supprimer($config_chemin_base_stockage . '/' . $chemin, $récursif); + return SystèmeFichier::supprimer($chemin->get_fs_stockage(), $récursif); } else { return false; } @@ -82,7 +82,7 @@ class Stockage { // get_prop ? ou une nouvelle (?) : liste_enfants ? $enfants = Array(); foreach (SystemeFichiers::liste_fichiers() as $k => $v) { - if (strpos($v, "__prop__") !== 0 && is_dir($config_chemin_base_stockage . '/' . $chemin->enfant($v))) && $v != "." && $v != "..") { + if (strpos($v, "__prop__") !== 0 && is_dir($chemin->enfant($v)->get_fs_stockage()) && $v != "." && $v != "..") { $enfants[] = $chemin->enfant($v); } } @@ -95,7 +95,7 @@ class Stockage { } if (vérifier_permission($chemin->parent(), "nouvelle_page") && vérifier_permission($chemin, "supprimer")) { - return SystemeFichiers::déplacer($config_chemin_base_stockage . '/' . $chemin, $config_chemin_base_stockage . '/' . $chemin->renomer($nouveau_nom)); + return SystemeFichiers::déplacer($chemin->get_fs_stockage(), $chemin->renomer($nouveau_nom)->get_fs_stockage()); } else { return false; }