[spip-dev] Manipulation de #SELF ?

Bonsoir,

Sur mon site utilisant des URL arborescentes, la balise #SELF sur un article ne me donne pas l'arborescence en question, mais seulement ce qui se trouve après le dernier "/".

Sachant que je l'utilise notamment comme cela pour pointer vers la page de forum, c'est pénalisant :
/spip.php?page=forum&(#PARAMETRES_FORUM{#SELF#commentaires})

Est-ce un bug, ou dois-je faire avec ?

Dans le second cas, est-il possible de modifier simplement (pipeline?) sa valeur ?

Merci.

-Nicolas

Bonsoir,

Sur mon site utilisant des URL arborescentes, la balise #SELF sur un article ne me donne pas l'arborescence en question, mais seulement ce qui se trouve après le dernier "/".

J'ai trouvé, c'est un bug de la fonction self() qui considère que l'URL de la page courante est constituée de ce qui se trouve après le dernier "/" :

http://doc.spip.org/@self

Voilà ce qui est fait :
$url = preg_replace(',^[^?]*/,', '', $url);

Il faudrait plutôt ôter de l'URL complète l'URL du site, il me semble.

Qu'en dites-vous ?

-Nicolas

http://doc.spip.org/@self
Voilà ce qui est fait :
$url = preg_replace(',^[^?]*/,', '', $url);

Il faudrait plutôt ôter de l'URL complète l'URL du site, il me semble.

On ne sait pas quelle est l'URL complète du site (cas d'un site
pouvant être appelé de plusieurs façons).

C'est dans ce but que j'ai introduit le "fameux/fumeux"
$profondeur_url qui pour l'instant n'a pas encore servi.

-- Fil

Fil a écrit :

http://doc.spip.org/@self
Voilà ce qui est fait :
$url = preg_replace(',^[^?]*/,', '', $url);

Il faudrait plutôt ôter de l'URL complète l'URL du site, il me semble.

On ne sait pas quelle est l'URL complète du site (cas d'un site
pouvant être appelé de plusieurs façons).

Ah, pas cool, effectivement. Il faudrait donc pouvoir donner une liste de chemins de base potentiels...

C'est dans ce but que j'ai introduit le "fameux/fumeux"
$profondeur_url qui pour l'instant n'a pas encore servi.

Il est utilisé dans les URL propres, quand même, et ça marche plutôt bien.

Je vais voir ce que je peux en faire en surchargeant self()...

-Nicolas

2008/1/29 Fil <fil@rezo.net>:

http://doc.spip.org/@self
Voilà ce qui est fait :
$url = preg_replace(‹ ,[1]*/, ›, ‹  ›, $url);

Il faudrait plutôt ôter de l’URL complète l’URL du site, il me semble.

On ne sait pas quelle est l’URL complète du site (cas d’un site
pouvant être appelé de plusieurs façons).

Après réflexion et consultation du code, pourquoi ne pas conserver REQUEST_URI, tout simplement, qui correspond justement à la façon dont on a appeler la page ?

-Nicolas


  1. ^? ↩︎

Après réflexion et consultation du code, pourquoi ne pas conserver
REQUEST_URI, tout simplement, qui correspond justement à la façon dont on a
appeler la page ?

il faut au moins utiliser nettoyer_uri() qui va supprimer les ?var_x=
et autres &PHPSESSID=y

-- Fil

Oui, oui, bien sûr, je propose juste de retirer ce qui dans self() vire tout ce qui se trouve jusqu’au dernier “/” compris.

-Nicolas