Il permet d’ajouter des contenus par défaut au moment de la création d’un nouvel élément éditorial dans la base de données.
Lorsqu’on enregistre un élément éditorial, si celui ci n’a pas encore d’identifiant (il est donc nouveau), un identifiant est crée pour cet élément, via les fonctions
insert_xx
où xx est le nom de l’objet souhaité. Cette insertion a simplement pour objectif de retourner un identifiant et d’enregistrer les valeurs par défaut de l’élément. Ce pipeline est appelé dans ces fonctions
insert_xx
.
Une fois l’identifiant connu, les taches de modifications normales sont effectuées, via les fonctions
xx_set
et
modifier_contenu
qui appelle les pipelines
pre_edition
et
post_edition
. Ce sont elles qui enregistreront les données postées par l’utilisateur, et cela donc, même pour un nouvel élément.
Le pipeline transmet le nom de la table et un tableau des champs et valeurs par défaut à insérer :
$champs = pipeline('pre_insertion',
array(
'args' => array(
'table' => 'spip_rubriques',
),
'data' => $champs
)
);
Exemple
Le plugin « Forum » ajoute au moment d’une insertion la valeur du statut des forums d’un article comme ceci :
function forum_pre_insertion($flux){
if ($flux['args']['table']=='spip_articles'){
$flux['data']['accepter_forum'] = substr($GLOBALS['meta']['forums_publics'], 0, 3);
}
return $flux;
}