var Phenix = function () {
Troll du Web depuis 1996

Pipelines

Quelques pipelines SPIP prêts à l’emploi !

Éxecuter du code quand une commande est payée

Lorsque l’on utilise le plugin commande et que l’on souhaite exécuter une peu de code lorsqu’une commande est payée, il suffit d’utiliser ce petit pipeline :

  1. function prefixe_post_edition($flux) {
  2. if ($flux['args']['table'] == table_objet_sql('commande')
  3. and $flux['args']['action'] == 'instituer'
  4. and $flux['args']['statut_ancien'] == 'encours'
  5. and $flux['data']['statut'] == 'paye'
  6. ) {
  7. $id_commande = $flux['args']['id_objet'];
  8. // Coder ici
  9. }
  10. return $flux;
  11. }

Exectuer du code quand un auteur est ajouté à #SPIP

Lorsqu’on ajoute un auteur, on a parfois envie d’automatiser certaine action : ajout automatique dans une zone d’accès restreint, ajout de mots-clés, ou tout simplement envoyer un mail.

Du coup, voici un pipeline qui fera le travail ! Il pourrait y avoir un effet indésirable cependant : lorsqu’un auteur est ressuscité de la corbeille, le pipeline se déclenche à nouveau.
Si c’est un problème, le pipeline post_insertion peut aussi être utilisé. Il contient cependant beaucoup moins d’information que post_edition.

  1. <?php
  2. function prefix_post_edition($flux) {
  3. if ($flux['args']['table'] == table_objet_sql('auteur')
  4. and $flux['args']['action'] == 'instituer'
  5. and $flux['args']['statut_ancien'] == '5poubelle'
  6. ) {
  7. $id_auteur = $flux['args']['id_objet'];
  8. $statut = $flux['data']['statut'];
  9. // Coder ici !
  10. }
  11.  
  12. return $flux;
  13. }

Executer du code lorsqu’un article #SPIP est publié

Petit pipeline SPIP cool : quand un article SPIP est publié, on exécute le code.

Pratique par exemple pour envoyer une notification spéciale.

  1. <?php
  2. function prefix_post_edition($flux) {
  3. if ($flux['args']['table'] == table_objet_sql('article')
  4. and $flux['args']['action'] == 'instituer'
  5. and $flux['args']['statut_ancien'] != 'publie'
  6. and $flux['data']['statut'] == 'publie'
  7. ) {
  8. $id_article = $flux['args']['id_objet'];
  9. // Coder ici !
  10. }

Executer du code lorsqu’un utilisateur ce connecte sous SPIP

J’avais besoin d’exécuter un peu de code lorsqu’un utilisateur ce connecte à SPIP. Il y a un moyen assez simple de le faire : dans le traiter du formulaire login.

La connexion de l’utilisateur ce fait dans la partie vérifier du formulaire CVT. Cela veut dire que la session a été créé.

  1. function prefix_formulaire_traiter($flux) {
  2.  
  3. if ($flux['args']['form'] == 'login') {
  4. // Coder ici
  5. }
  6.  
  7. return $flux;
  8. }

Bien entendu je préfèrerai avoir un pipeline post_login, ce serai plus simple et plus lisible dans le code.
Cela viendra peut-être avec SPIP 3.2 !


Executer du code lorsqu’un inscription est validée sous SPIP

Ou comment avoir un pipeline post_inscription

Dans SPIP, il n’y a pas de pipeline post_inscription. Difficile donc d’exécuter facilement du code lorsque l’inscription est validé par l’utilisateur. Cela va peut être changé avec SPIP 3.2.

En attendant, voici un bricolage avec le pipeline post_edition :

  1. function prefix_post_edition($flux) {
  2.  
  3. // Confirmation d'une inscription
  4. if ($flux['args']['table'] == 'spip_auteurs'
  5. and $flux['args']['statut_ancien'] == 'nouveau'
  6. and $flux['args']['action'] == 'instituer'
  7. and $flux['data']['statut'] == '6forum' ) { // Limité aux visiteurs
  8. $id_auteur = $flux['args']['id_objet'];
  9. // Faire des trucs ici.
  10. }
  11.  
  12. return $flux;
  13. }