Un
pipeline permet de faire transiter un code entre plusieurs intermédiaires (des fonctions) pour le compléter ou le modifier.
{{{Déclaration dans un plugin}}}
Chaque plugin peut utiliser un pipeline existant. Pour cela, il déclare son utilisation dans le fichier
paquet.xml
de la sorte :
<pipeline nom="header_prive" inclure="cfg_pipeline.php" />
-* Nom : indique le nom du pipeline à utiliser,
-* Inclure : indique le nom du fichier qui contient la fonction à exécuter au moment de l’appel du pipeline (
prefixPlugin_nomPipeline()
).
{{{Déclaration hors plugin}}}
Une utilisation d’un pipeline en dehors du cadre d’un plugin reste possible. Il faut alors déclarer son utilisation directement dans le fichier
config/mes_options.php
:
$GLOBALS['spip_pipeline']['nom_du_pipeline'] .= "|nom_de_la_fonction";
Par exemple pour s’insérer du pipeline "insert_head" :
// initialiser index "insert_head" à string vide si besoin:
if (!isset($GLOBALS['spip_pipeline']['insert_head'])) {
$GLOBALS['spip_pipeline']['insert_head'] = '';
}
// Ajout dans le pipeline "insert_head" :
$GLOBALS['spip_pipeline']['insert_head'] .= "|nom_de_la_fonction";
// Et par ailleurs !:
function nom_de_la_fonction($flux) {
return $flux .= "Ce texte sera ajoute";
}
La fonction appelée doit être connue au moment de l’appel du pipeline, le plus simple étant de la déclarer comme ici pour la fonction
nom_de_la_fonction
dans le fichier d’option.