Déclarer des fonctions

Contrairement aux fichiers d’options, les fichiers de fonctions ne sont pas chargés systématiquement, mais seulement au calcul des squelettes.

Ils permettent par exemple de définir de nouveaux filtres utilisables dans les squelettes. Ainsi, créer un fichier squelettes/mes_fonctions.php contenant le code ci-dessous, permet d’utiliser dans les squelettes le filtre "hello_world" (assez inutile !).

  1. <?php
  2. function filtre_hello_world($v, $add){
  3. return "Titre:" . $v . ' // Suivi de: ' . $add;
  4. }
  5. ?>

Télécharger

  1. [(#TITRE|hello_world{ce texte s'ajoute après})]

(affiche « Titre:titre de l’article // Suivi de : ce texte s’ajoute après »)

Pour utiliser de tels fichiers avec les plugins, il suffit de déclarer le nom du fichier dans plugin.xml par exemple <fonctions>prefixePlugin_fonctions.php</fonctions>. Il peut y avoir plusieurs déclarations dans un même plugin.

fonctions spécifiques à des squelettes

Parfois, des filtres sont spécifiques à un seul fichier de squelette. Il n’est pas toujours souhaitable dans ce cas de charger systématiquement toutes les fonctions connues à chaque calcul de page. SPIP permet donc de créer des fonctions qui ne seront appelées qu’au calcul d’un squelette particulier.

Il suffit de déclarer un fichier homonyme au squelette, dans le même répertoire, en le suffixant de _fonctions.php.

En reprenant l’exemple ci dessus, on pourrait tout à fait imaginer [(#TITRE|hello_world{ce texte s'ajoute après})] contenu dans un fichier squelettes/world.html et la fonction hello_world déclarée dans le fichier squelettes/world_fonctions.php

Auteur Matthieu Marcillaud Publié le : Mis à jour : 21/04/09

Traductions : English, français