commit c72e9beff8930550b6b714a86bceb685e98fab45
parent 8abfde69cc876c655af4b77cdb53ad25825b9b1d
Author: Georges Dupéron <jahvascriptmaniac+github@free.fr>
Date: Wed, 4 Aug 2010 00:29:17 +0200
Utilisation de chemins relatifs pour la pseudo-réécriture.
Diffstat:
18 files changed, 61 insertions(+), 36 deletions(-)
diff --git a/__cms__/code/chemin/path.php b/__cms__/code/chemin/path.php
@@ -76,7 +76,29 @@ final class Path
return "$a/$b";
')));
}
-
+
+ // Ajout par js jahvascriptmaniac+github@gmail.com
+ // Depuis le dossier $a, construire un chemin relatif vers $b.
+ public static function relative($a, $b) {
+ $a = explode('/', self::normalize($a));
+ $b = explode('/', self::normalize($b));
+
+ // Zapper la partie commune
+ for ($i = 0; $i < count($a) && $i < count($b); $i++) {
+ if (! ($a[$i] == $b[$i])) break;
+ }
+
+ $rel = ".";
+ for ($j = $i; $j < count($a); $j++) {
+ $rel .= "/..";
+ }
+ for ($j = $i; $j < count($b); $j++) {
+ $rel .= '/' . $b[$j];
+ }
+
+ return $rel;
+ }
+
/**
* Empty, private constructor, to prevent instantiation
*/
diff --git a/__cms__/code/stockage/stockage.php b/__cms__/code/stockage/stockage.php
@@ -21,12 +21,15 @@ class Stockage {
// Imitation de l'url rewriting lorsque ce n'est pas disponible sur
// le serveur.
public static function activer_réécriture($chemin_vers) {
- // TODO : échapper les " dans le require_once et l'appel à cms.
+ // TODO : SECURITE : échapper les " dans le require_once et l'appel à cms.
+ $a = $chemin_vers->get_fs_public();
+ $b = Path::combine(Config::get("chemin_base"), "cms.php");
+
$php_str = "<?php\n\n";
- $php_str .= "require_once(\"" . Path::combine(Config::get("chemin_base"), "cms.php") . "\");\n\n";
+ $php_str .= "require_once(dirname(__FILE__) . \"" . Path::relative($a, $b) . "\");\n\n";
$php_str .= "CMS::page(\"" . $chemin_vers->get() . "\");\n\n";
$php_str .= "?>";
- return Système_fichiers::écrire($chemin_vers->get_fs_public(), $php_str);
+ return Système_fichiers::écrire(Path::combine($a, "/index.php"), $php_str);
}
public static function désactiver_réécriture($chemin_vers) {
diff --git a/galerie/index.php b/galerie/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("/home/js/github/2010-moteur-site-simple/__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../__cms__/cms.php");
-CMS::page("/galerie/");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 1/evenement a/index.php b/galerie/periode 1/evenement a/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 1/evenement a");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 1/evenement a/photo a/index.php b/galerie/periode 1/evenement a/photo a/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 1/evenement a/photo a");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 1/evenement a/photo b/index.php b/galerie/periode 1/evenement a/photo b/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 1/evenement a/photo b");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 1/evenement a/photo c/index.php b/galerie/periode 1/evenement a/photo c/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 1/evenement a/photo c");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 1/index.php b/galerie/periode 1/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 1");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement machin/index.php b/galerie/periode 2/evenement machin/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement machin");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement machin/photo a/index.php b/galerie/periode 2/evenement machin/photo a/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement machin/photo a");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement machin/photo b/index.php b/galerie/periode 2/evenement machin/photo b/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement machin/photo b");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement machin/photo c/index.php b/galerie/periode 2/evenement machin/photo c/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement machin/photo c");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement truc/index.php b/galerie/periode 2/evenement truc/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement truc");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement truc/photo a/index.php b/galerie/periode 2/evenement truc/photo a/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement truc/photo a");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement truc/photo b/index.php b/galerie/periode 2/evenement truc/photo b/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement truc/photo b");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/evenement truc/photo c/index.php b/galerie/periode 2/evenement truc/photo c/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2/evenement truc/photo c");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/galerie/periode 2/index.php b/galerie/periode 2/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("../../__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../../__cms__/cms.php");
-CMS::affiche("/galerie/periode 2");
+CMS::page("/galerie");
?>
\ No newline at end of file
diff --git a/index.php b/index.php
@@ -1,7 +1,7 @@
<?php
-require_once("/home/js/github/2010-moteur-site-simple/__cms__/cms.php");
+require_once(dirname(__FILE__) . "./../__cms__/cms.php");
-CMS::page("/");
+CMS::page("/galerie");
?>
\ No newline at end of file