diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index d12bbe0fa33bd52d8942466b6c8e4bcef2d08163..879100fefb3ca6915a793667577953b756f89371 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -465,14 +465,18 @@ function ancre_url($url, $ancre) { return $url . (strlen($ancre) ? '#'. $ancre : ''); } -// -// pour le nom du cache, les types_urls et self -// -// http://doc.spip.org/@nettoyer_uri -function nettoyer_uri() +/** + * pour le nom du cache, les types_urls et self + * http://doc.spip.org/@nettoyer_uri + * + * @param string|null $reset + * @return string + */ +function nettoyer_uri($reset = null) { static $done = false; static $propre = ''; + if (!is_null($reset)) return $propre=$reset; if ($done) return $propre; $done = true; @@ -1416,20 +1420,32 @@ function test_valeur_serveur($truc) { // // 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) -// 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 -// http://doc.spip.org/@url_de_base -function url_de_base() { +/** + * 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 + * http://doc.spip.org/@url_de_base + * + * @param int|boo|array $profondeur + * si non renseignee : retourne l'url pour la profondeur $GLOBALS['profondeur_url'] + * si int : indique que l'on veut l'url pour la prondeur indiquee + * si bool : retourne le tableau static complet + * si array : reinitialise le tableau static complet avec la valeur fournie + * @return string|array + */ +function url_de_base($profondeur=null) { static $url = array(); + if (is_array($profondeur)) return $url = $profondeur; + if ($profondeur===false) return $url; + + if (is_null($profondeur)) $profondeur = $GLOBALS['profondeur_url']; - if (isset($url[$GLOBALS['profondeur_url']])) - return $url[$GLOBALS['profondeur_url']]; + if (isset($url[$profondeur])) + return $url[$profondeur]; $http = ( (isset($_SERVER["SCRIPT_URI"]) AND @@ -1456,9 +1472,9 @@ function url_de_base() { } } - $url[$GLOBALS['profondeur_url']] = url_de_($http,$host,$GLOBALS['REQUEST_URI'],$GLOBALS['profondeur_url']); + $url[$profondeur] = url_de_($http,$host,$GLOBALS['REQUEST_URI'],$profondeur); - return $url[$GLOBALS['profondeur_url']]; + return $url[$profondeur]; } /** * fonction testable de construction d'une url appelee par url_de_base()