Nieuwe functies declareren

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.

Auteur hanjo Gepubliceerd op: Aangepast: 12/03/23

Vertalingen: English, français, Nederlands