Programmer avec SPIP 3.0
Documentation technique sur SPIP 3.0

> > > > post_edition

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() :

  1. pipeline('post_edition',
  2. 'args' => array(
  3. 'table' => $spip_table_objet,
  4. 'table_objet' => $table_objet,
  5. 'spip_table_objet' => $spip_table_objet,
  6. 'type' => $objet,
  7. 'id_objet' => $id_objet,
  8. 'champs' => isset($options['champs']) ? $options['champs'] : array(), // [doc] kesako ?
  9. 'serveur' => $serveur,
  10. 'action' => isset($options['action']) ? $options['action'] : 'modifier'
  11. ),
  12. 'data' => $champs
  13. )
  14. );

Télécharger

Exemple

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

  1. function spipicious_post_edition($flux) {
  2. if($flux['args']['action'] == 'instituer') {
  3. $objet = objet_type($flux['args']['table']);
  4. if (isset($flux['data']['statut']) && ($flux['data']['statut'] != 'publie')) {
  5. sql_updateq(
  6. 'spip_spipicious',
  7. array('statut'=>'prop'),
  8. 'id_objet='.intval($flux['args']['id_objet']) . ' AND objet=' . sql_quote($objet) . ' AND statut="publie"'
  9. );
  10. } else {
  11. sql_updateq(
  12. 'spip_spipicious',
  13. array('statut'=>'publie'),
  14. 'id_objet=' . intval($flux['args']['id_objet']) . ' AND objet=' .sql_quote($objet) . ' AND statut="prop"'
  15. );
  16. }
  17. }
  18. return $flux;
  19. }

Télécharger

  • Auteur :
  • Publié le :