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

This commit is contained in:
Georges Dupéron 2010-08-01 21:07:26 +02:00
parent 6ad76de612
commit bc15e4caad
3 changed files with 37 additions and 12 deletions

View File

@ -47,7 +47,17 @@ class Chemin {
} }
public function get_url() { 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) { public function enfant($nom) {

View File

@ -1,9 +1,24 @@
<?php <?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_url_base = "http://127.0.0.1/2010-moteur-site-simple/";
$config_chemin_base = dirname(__FILE__); // Chemin absolu vers le dossier '__cms__'.
$config_chemin_base_stockage = $config_chemin_base . "/modele"; // dirname(__FILE__) peut retourner un chemin relatif (PHP < 4.0.2),
$config_chemin_base_public = $config_chemin_base . "/.."; // TODO !!! // 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 =======
?> ?>

View File

@ -20,7 +20,7 @@ class Stockage {
public function set_prop($chemin, $prop, $valeur) { public function set_prop($chemin, $prop, $valeur) {
if (vérifier_permission($chemin, "set_prop")) { 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 { } else {
return false; return false;
} }
@ -29,7 +29,7 @@ class Stockage {
// Stocke le contenu de $fichier dans $prop, et supprime $fichier. // Stocke le contenu de $fichier dans $prop, et supprime $fichier.
public function set_prop_fichier($chemin, $prop, $fichier) { public function set_prop_fichier($chemin, $prop, $fichier) {
if (vérifier_permission($chemin, "set_prop")) { 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 { } else {
return false; return false;
} }
@ -38,7 +38,7 @@ class Stockage {
// Comme pour set_prop_fichier, mais pour un fichier reçu (uploadé). // Comme pour set_prop_fichier, mais pour un fichier reçu (uploadé).
public function set_prop_fichier_reçu($chemin, $prop, $fichier) { public function set_prop_fichier_reçu($chemin, $prop, $fichier) {
if (vérifier_permission($chemin, "set_prop")) { 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 { } else {
return false; return false;
} }
@ -49,7 +49,7 @@ class Stockage {
// dépendances get_regles() et get_groupe() de faire des get_prop // dépendances get_regles() et get_groupe() de faire des get_prop
// même si l'utilisateur courant n'en a pas le droit. // même si l'utilisateur courant n'en a pas le droit.
if ($forcer_permissions || vérifier_permission($chemin, "get_prop")) { 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 { } else {
return "[Accès interdit]"; return "[Accès interdit]";
} }
@ -59,7 +59,7 @@ class Stockage {
// Envoie tout le conctenu de $prop sur le réseau. // Envoie tout le conctenu de $prop sur le réseau.
// Équivalent à appeller sendfile sur le fichier qui contient $prop. // Équivalent à appeller sendfile sur le fichier qui contient $prop.
if (vérifier_permission($chemin, "get_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 { } else {
return false; return false;
} }
@ -71,7 +71,7 @@ class Stockage {
// code. // code.
public function supprimer($chemin, $récursif) { public function supprimer($chemin, $récursif) {
if (vérifier_permission($chemin, "supprimer")) { 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 { } else {
return false; return false;
} }
@ -82,7 +82,7 @@ class Stockage {
// get_prop ? ou une nouvelle (?) : liste_enfants ? // get_prop ? ou une nouvelle (?) : liste_enfants ?
$enfants = Array(); $enfants = Array();
foreach (SystemeFichiers::liste_fichiers() as $k => $v) { 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); $enfants[] = $chemin->enfant($v);
} }
} }
@ -95,7 +95,7 @@ class Stockage {
} }
if (vérifier_permission($chemin->parent(), "nouvelle_page") && vérifier_permission($chemin, "supprimer")) { 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 { } else {
return false; return false;
} }