Jeudi 30 novembre 2006

Appliquer un filtre sur une valeur arbitraire

Et ce, hors du contexte d’une boucle !

Problématique initiale : faire dans un squelette un lien en dur vers l’auteur n°2.

La solution donnée sur la liste des utilisateurs de SPIP a d’abord été la suivante :

<a href="spip.php?auteur2">nous contacter</a>

Elle est juste dans le sens qu’elle donne le résultat attendu : un lien vers l’auteur n°2.

Mais, si le webmestre du site décide de passer le site en URL propre, ce lien ne serait pas passé dans ce mode.

Solution

La bonne syntaxe est :

[(#NOOP|sinon{2}|generer_url_auteur)]

Explication :

  • #NOOP ne renvoie rien (No Operation → pas d’action)
  • |sinon{2} renvoie 2 si la balise ne renvoie rien
  • |generer_url_auteur génère l’URL de l’auteur

Donc, cette syntaxe permet de choisir arbitrairement une valeur passée à un filtre sans être forcément dans le contexte d’une BOUCLE.