From 23b48be1c3998cda55bd68a9449b57d1e75f66ea Mon Sep 17 00:00:00 2001
From: Fil <fil@rezo.net>
Date: Fri, 10 Mar 2006 09:24:31 +0000
Subject: [PATCH] notion de profondeur d URL

---
 ecrire/inc/utils.php   | 15 +++++++++++----
 ecrire/inc_version.php |  2 +-
 ecrire/index.php       |  6 +++++-
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index b5ecb3fd5f..1d91972e01 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -734,8 +734,12 @@ function charger_generer_url() {
 // Fonctions de fabrication des URL des scripts de Spip
 //
 
-// l'URL de base du site, sans se fier a meta(adresse_site) qui peut etre fausse
-// (sites a plusieurs noms d'hotes, deplacements, erreurs)
+// l'URL de base du site, sans se fier a meta(adresse_site) qui
+// peut etre fausse (sites a plusieurs noms d'hotes, deplacements, erreurs)
+// Note : la globale $profondeur_url doit etre initialisee de maniere a
+// indiquer le nombre de sous-repertoires de l'url courante par rapport a la
+// racine de SPIP : par exemple, sur ecrire/ elle vaut 1, sur sedna/ 1, et a
+// la racine 0. Sur url/perso/ elle vaut 2
 function url_de_base() {
 	global $REQUEST_URI;
 
@@ -751,8 +755,11 @@ function url_de_base() {
 	# note : HTTP_HOST contient le :port si necessaire
 	$myself = $http.'://'.$_SERVER['HTTP_HOST'].$REQUEST_URI;
 
-	# supprimer (ecrire/)?xxxxx
-	$url = preg_replace(',/('._DIR_RESTREINT_ABS.')?[^/]*$,', '/', $myself);
+	# supprimer n sous-repertoires
+	$supprime_preg = '/+';
+	for ($i=0; $i<$GLOBALS['profondeur_url']; $i++)
+		$supprime_preg .= '[^/]+/+';
+	$url = preg_replace(','.$supprime_preg.'[^/]*$,', '/', $myself);
 	return $url;
 }
 
diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php
index cf56404fd1..a4fff7a552 100644
--- a/ecrire/inc_version.php
+++ b/ecrire/inc_version.php
@@ -210,7 +210,7 @@ $auteur_session = '';
 $connect_statut = '';
 $hash_recherche = '';
 $hash_recherche_strict = '';
-
+$profondeur_url = 0;
 
 
 //
diff --git a/ecrire/index.php b/ecrire/index.php
index bd56b69cfa..ced7e2dc55 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -60,7 +60,11 @@ $GLOBALS['couleurs_spip'] = array(
 );
 
 
-if (!defined('_ECRIRE_INC_VERSION')) include ("inc_version.php");
+if (!defined('_ECRIRE_INC_VERSION')) {
+	include 'inc_version.php';
+}
+$GLOBALS['profondeur_url']=1;
+
 include_spip('inc/cookie');
 
 //
-- 
GitLab