post_edition

Ce pipeline permet d’agir lors de l’édition d’un élément éditorial, lorsque l’utilisateur édite les champs ou change le statut de l’objet. Il est appelé juste après l’enregistrement des données.

Plusieurs informations sont transmises dans un tableau comportant 2 clés :

  • data contient les champs et leurs valeurs.
  • args contient des informations sur la table, l’objet édité, et l’action effectuée.

Voici une liste des actions effectuées dans le core :

Exemple d’appel dans objet_modifier_champs() :

pipeline('post_edition',
    array(
        'args' => array(
            'table' => $spip_table_objet,
            'table_objet' => $table_objet,
            'spip_table_objet' => $spip_table_objet,
            'type' => $objet,
            'id_objet' => $id_objet,
            'champs' => isset($options['champs']) ? $options['champs'] : array(), // [doc] kesako ?
            'champs_anciens' => $row,
            'serveur' => $serveur,
            'action' => isset($options['action']) ? $options['action'] : 'modifier'
        ),
        'data' => $champs
    )
);

Exemple

Le plugin Spipicious modifie les tags spipicious de l’objet lors du changement de statut.

function spipicious_post_edition($flux) {
    if($flux['args']['action'] == 'instituer') {
        $objet = objet_type($flux['args']['table']);
        if (isset($flux['data']['statut']) && ($flux['data']['statut'] != 'publie')) {
                sql_updateq(
                        'spip_spipicious', 
                        array('statut'=>'prop'), 
                        'id_objet='.intval($flux['args']['id_objet']) . ' AND objet=' . sql_quote($objet) . ' AND statut="publie"'
                );
        } else {
                sql_updateq(
                        'spip_spipicious', 
                        array('statut'=>'publie'), 
                        'id_objet=' . intval($flux['args']['id_objet']) . ' AND objet='  .sql_quote($objet) . ' AND statut="prop"'
                );
        }
    }
    return $flux;
}

Voir aussi : la mise en place d’un pipeline post_edition dans le plugin livraison

Auteur tcharlss Publié le : Mis à jour : 12/03/23