De "_fonctions" bestanden worden automatisch geladen door SPIP, maar — in tegenstelling tot de "_options" bestanden — alleen wanneer het een skelet moet evalueren om een nieuwe pagina te genereren.
Deze bestanden maken het bijvoorbeeld mogelijk om nieuwe filters te definiëren die gebruikt kunnen worden in sjablonen. Wanneer je een squelettes/mes_fonctions.php
bestand maakt dat de volgende code bevat, dan kunt je het filter hello_world
gebruiken in jouw skeletten (hoewel het nutteloos is!):
<?php
function filtre_hello_world($v, $add){
return "Titel: " . $v . ' // Gevolgd door: ' . $add;
}
?>
[(#TITRE|hello_world{deze tekst wordt er aan toegevoegd})]
(resultaat "Titel: titel van het artikel // Gevolgd door: deze tekst wordt er aan toegevoegd")
Om dergelijke bestanden in een plug-in aan te maken, moet je de naam van het bestand op deze manier toevoegen in jouw plugin.xml
: <fonctions>pluginprefix_fonctions.php</fonctions>
. Elke plug-in kan een willekeurig aantal van deze declaraties (en bestanden) bevatten.
Functies voor een specifiek skelet
Soms zijn filters specifiek voor één skelet. Het is niet altijd wenselijk om alle functies voor elke pagina te laden. SPIP maakt het dus mogelijk om bepaalde functies alleen te laden bij het berekenen van een bepaald skelet.
Een dergelijk bestand moet in dezelfde map als het skelet worden aangemaakt en naar het skelet worden vernoemd, maar de naam moet eindigen op _fonctions.php
in plaats van .html
.
Bekijk nogmaals het bovenstaande voorbeeld. Als het bestand squelettes/world.html
de code [(#TITRE|hello_world{deze tekst wordt er aan toegevoegd})]
bevat, dan kan de functie hello_world
in het bestand squelettes/world_fonctions.php
worden gedeclareerd. Dit bestand wordt alleen geladen als SPIP een pagina genereert op basis van het skelet squelettes/world.html
.