Nouvelle balise : exemple avec #MAINTENANT

Une balise qui retourne la date d’aujourd’hui, et quelques infos sur comment écrire ses balises personnalisées.

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

function balise_MAINTENANT($params) {
$params->code = "date('Y-m-d')";
$params->type = 'php';  
  return $params;
}

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 fonction interdire_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 :

<BOUCLE_presents(AUTEURS){arrivee <= #MAINTENANT}{depart >= #MAINTENANT}>

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.

Dernière modification de cette page le 10 août 2007

Discussion

Une discussion

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom