pre_insertion

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;
}

Auteur Matthieu Marcillaud Publié le : Mis à jour : 19/02/12

Traductions : English, français