|parametre_url

Le filtre |parametre_url ajoute ou retire un paramètre à une balise d’URL.

Utilisation

Ce filtre s’applique donc à une balise d’URL, par exemple #SELF, #URL_ARTICLE, #URL_PAGE{sommaire}...

Typiquement, on placera la balise dans l’attribut href d’un lien :

<a href="[(#SELF|parametre_url{pays,france})]">France</a>

ajoutera à l’url de la page en cours soit :

  • ?pays=france s’il s’agit du premier paramètre passé à cette url,
  • &pays=france si l’url possède déjà au moins un paramètre.

Passer plusieurs paramètres à l’URL

On peut enchaîner les filtres pour passer en url une suite de paramètres et leurs valeurs :

 [(#SELF|parametre_url{pays,france}|parametre_url{monnaie,euro})]

 

Si l’on désire passer une même valeur à plusieurs paramètres, on utilisera l’écriture :

[(#SELF|parametre_url{pays|lieu|terrain,france})]

qui retournera l’url de la page en cours argumentée de :
pays=france&lieu=france&terrain=france

Passer un tableau de valeurs

Si l’on désire passer plusieurs valeurs pour un même argument, il est possible de passer le tableau de ces valeurs, avec les balises #ARRAY ou #LISTE.
Exemple :

[(#SELF|parametre_url{ville,#LISTE{Toulouse,Valence,Montpellier,Paris}})]

Supprimer des paramètres existants

Pour faire disparaître un paramètre d’url existant, il faut le vider de sa valeur en le déclarant à nouveau, mais explicitement vide :

[(#SELF|parametre_url{pays,''})]

 

On peut supprimer plusieurs paramètres à la fois avec l’écriture :

[(#SELF|parametre_url{pays|lieu|terrain,''})]

Récupérer un paramètre passé dans une URL

On utilisera la balise #ENV.

Ainsi, dans l’exemple

<a href="[(#SELF|parametre_url{pays,france})]">France</a>

#ENV{pays} retournera france.

Autre exemple, le plugin "Calendrier_mini" récupère des informations dans le contexte d’affichage du mini calendrier comme suit [1] :
... #ENV{urljson}|parametre_url{id_rubrique} ...

Explication : la variable #ENV{urljson} contient une url et le code ci-dessus retourne la valeur de id_rubrique si ce paramètre est présent dans l’url en question.

Forcer le séparateur

Par défaut, les URLs sont encodés avec le séparateur &amp; mais il est possible de forcer le séparateur en indiquant un 3ème argument
|parametre_url{nom de variable, valeur, separateur}

Ainsi

[(#URL_PAGE{bloc}|parametre_url{id_bloc, 5})]

retournera spip.php?page=bloc&amp;id_bloc=5

 

[(#URL_PAGE{bloc}|parametre_url{id_bloc, 5, &}]

retournera spip.php?page=bloc&id_bloc=5


Voir aussi

Notes

[1Voir le code complet sur la zone : http://zone.spip.org/trac/spip-zone....

Auteur Aurélie, denisb Publié le : Mis à jour : 23/04/23

Traductions : català, English, Español, français, Nederlands