diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index b5ecb3fd5f4f9de7ef5c0baf3cb40c7cbd807749..1d91972e01665c09221f9fddb5669b69c6a5fe79 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 cf56404fd1d5f161d407d46feef927326f6cafc3..a4fff7a55250ce159d5e5ee1ae5186b50506dc32 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 bd56b69cfa593a3c97bec24f34c7339f314fc51e..ced7e2dc555a7f2bc7f979ffe5a5ef347411efe8 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'); //