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 !).

<?php
function filtre_hello_world($v, $add){
	return "Titre:" . $v . ' // Suivi de: ' . $add;
}
?>
[(#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 créer un fichier prefixePlugin_fonctions.php.

Après ajout ou modification d’un fichier de fonctions, il faut passer sur la page d’administration des plugins pour que SPIP prenne en compte la nouvelle version.

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 : 12/03/23

Traductions : English, français, Nederlands