Carnet Wiki

ccmCréerMaBaliseAMoi “howto créer ma balise à moi ...

Version 2 — August 2007 Cyril Marion

Voilou, cette page du spikini contrib pour mettre le résultat de mes recherches pour pouvoir créer ses balises (merci à James pour sa contrib #TITRE_PARENT !)

Lors de la création d’un plugin, il est souvent nécessaire d’utiliser des balises qui ne correspondent pas forcément directement au nom des colonnes des nouvelles tables. Par exemple on pourrait nécessiter une balise qui provienne du résultat d’une requête entre deux des nouvelles tables. Dans ce cas, en sus des nouvelles tables proprement dites, il est nécessaire de créer de nouvelles balises.

Au fil de l’épluchage des plugins déjà écrits par les “pionniers”, j’ai pris conscience que les balises SPIP pouvaient être de 2 types :

- des balises de type “indépendant” : elles peuvent être appelées dans ou hors d’une boucle. Par exemple la balise #NOM_SITE_SPIP.

- des balises liées aux boucles : elles retournent un résultat dépendant d’une boucle. Exemple : une balise #TITRE.

S’il s’avère plutôt simple (tout du moins, pas plus compliqué que de créer son propre filtre...) de créer une balise indépendante, il n’en va pas de même pour les balises dépendant d’une boucle, car il faut percevoir comment les paramètres sont véhiculés et ransitent entre les différents objets...

Les paramètres passent dans une mystérieuse variable appelée “$p”... Même si quelques explications sont entrevues sur le spikini, c’est tout de même extrèmement confus (pour tous ceux comme moi n’ont pas un bac+8...).

Mes premiers essais :
les balises #SUIVANT | #PRECEDENT | #PREMIER | #DERNIER

Pour tester le principe, j’ai tenté de me créer une balise (en fait un ensemble de 4 balises...) qui auraient pu me retourner, pour chaque enregistrement d’une boucle quelconque, les id des enregistrements suivants et précédents, ainsi que les id du premier et de dernier enregistrement de la boucle.

Et je suis parvenu à un résultat !

-----
La page de spikini sur la structure des boucles m’a bien aidé à démarrer.
A ce jour il me reste néanmoins un certain nombre d’interrogations...
En farfouillant dans balises.php j’ai trouvé les significations suivantes :

-  $p->nom_boucle retourne le nom de la boucle, sans le “BOUCLE” devant... A priori, ça donne la même chose que $p->id_boucle ou $p->descr['id_mere'].

-  $p->descr['source_file'] retourne le chemin des squelettes (équivalent de #CHEMIN ?)

-  il me manque le moyen de lister tous les champs contenus dans $p, et en particulier celui qui sert de clé primaire...

Si on arrive à tout lister, alors c’est la porte ouverte à de nouveaux développements de plugins ! A compléter, donc, au fil de l’eau...