The “_fonctions” files are loaded automatically by SPIP, but — unlike the “_options” files — only when it needs to evaluate a template to generate a new page.
These files make it possible, for example, to define new filters that can be used in templates. If you create a squelettes/mes_fonctions.php
file containing the following code, then you will be able to use the hello_world
filter in your templates (useless though it is!):
<?php
function filtre_hello_world($v, $add){
return "Title:" . $v . ' // Followed by: ' . $add;
}
?>
[(#TITRE|hello_world{this text is added afterwards})]
(displays "Title:title of the article // Followed by: this text is added afterwards")
To create such files in a plug-in, you need to add the name of the file in your plugin.xml
like so: <fonctions>pluginprefix_fonctions.php</fonctions>
. Each plug-in may contain any number of these declarations (and files).
Functions for specific templates
Sometimes, filters are specific to a single template. It is not always desirable to load all such functions for each and every page. SPIP thus makes it possible to load certain functions only when calculating a particular template.
Such a file should be created in the same folder as the template and named after it, but with _fonctions.php
instead of .html
.
Consider the example from above again. If the file named squelettes/world.html
contains the code [(#TITRE|hello_world{this text is added afterwards})]
, then the hello_world
function could be declared in the squelettes/world_fonctions.php
file. This file will only be loaded when SPIP is generating a page based on the squelettes/world.html
template.