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