Proposition de correction de url_absolue()

RastaPopoulos <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Actuellement url_absolue() est buguée : quand on appelle cette fonction 
depuis un contexte hors navigateur classique (par exemple en ligne de 
commande), cette fonction ne renvoie que des URL relatifs !

En fait cette fonction va chercher en priorité le domaine/base de site 
*réel* utilisé à un instant T par le visiteur en cours. Ce qui est très 
bien car un même site peut avoir plusieurs domaines par exemple.

MAIS, sauf que cette méthode ne comporte aucun fallback : si on ne 
trouve pas de "domaine de navigation" en cours (parce qu'on est pas en 
HTTP dans un nav), alors la fonction ne va même pas chercher l'URL 
"officiel" déclarée dans meta/adresse_site.

Actuellement la fonction contient ça :

> if (!$base)
>     $base = url_de_base() . (_DIR_RACINE ? _DIR_RESTREINT_ABS : '');

Je propose donc de rajouter un fallback supplémentaire juste après : si 
$base est encore vide, on le remplit avec meta/adresse_site :

> if (!$base)
>     $base = url_de_base() . (_DIR_RACINE ? _DIR_RESTREINT_ABS : '');
> if (!$base)
>     $base = $GLOBALS['meta']['adresse_site'];

Cette correction ne va rien casser sur tous les sites existants, 
puisqu'elle ne concerne que les appels hors navigateurs (donc surtout 
spip-cli mais ça peut être d'autres cas), qui 1) sont rares, et 2) 
seront très contents d'avoir enfin url_absolue() renvoyant des choses 
absolues.

Qu'en pensez vous ?

-- 
RastaPopoulos
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.