Un petit exemple tout simple de balise définie par l’utilisateur, utile en soi mais aussi pour que l’administrateur néophyte puisse le modifier pour créer ses propres balises.
Pour (re-)définir une balise calculée par le compilateur, il suffit de déclarer une fonction dans mes_fonctions.php3. Le nom de la fonction pour la balise #X doit être balise_X. Si la balise #X existait, elle sera redéfinie.
Exemple : Balise #MAINTENANT
cette fonction est en 2 parties :
- code reçoit le code php de la balise Bien-sûr, le code php peut-être arbitrairement compliqué. Ici, ça rend simplement la date sous la forme 2005-10-20 pour le jeudi 20 octobre 2005.
- type peut recevoir 2 valeurs
-
php, pour signaler que le php qui est renvoyé par la fonction est considéré comme sûr. -
html, pour signaler qu’on est pas sûr de php renvoyé, donc qu’il faut le passer dans la fonctioninterdire_script(dans le doute, utilisez cette valeur).
-
Pour des balises disons « évoluées » regardez du côté du spikini la page CrerSaBalise ; attention, niveau expert !
Utilisation : 2 exemples
1. L’objectif : j’ai rajouté des champs de date à mes tables, je voudrai les comparer à la date d’aujourd’hui. Par exemple, avec des colonnes "arrivee" et "depart", la boucle suivante :
me sélectionne les auteurs qui sont présents en ce moment : dont la date de départ est passée (inférieure ou égale à maintenant) et la date de départ non encore arrivée.
2. Un problème évoqué souvent est celui de la date du jour dans un fichier inclus. Normalement pour afficher la date du jour [(#DATE)] en dehors des boucles spip fonctionne très bien, ainsi que #ENV{date}, qui donne aussi la date du jour. Mais pas si cette instruction se trouve dans un fichier inclus. Avec cette balise ce problème est résolu.

