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 &
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&id_bloc=5
[(#URL_PAGE{bloc}|parametre_url{id_bloc, 5, &}]
retournera spip.php?page=bloc&id_bloc=5