Changeset 101186 in spip-zone


Ignore:
Timestamp:
Dec 18, 2016, 10:07:25 PM (3 years ago)
Author:
maieul@…
Message:

Un pipeline qui permet de gérer l'ordre des traitements par formidable. On l'appelle par défaut, pour que les emails partent APRÈS l'enregistrement, ce qui permet le cas échéant d'avoir le numéro d'enregistrement.

Location:
_plugins_/formidable/branches/v3_dev
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/formidable/branches/v3_dev/formidable_pipelines.php

    r98892 r101186  
    224224        return $flux;
    225225}
     226
     227/**
     228 * S'assurer que le traitement email ait lieu après le traitement enregistremnt
     229 *
     230 * @pipeline formidable_traitements
     231 * @param array $flux
     232 * @return array $flux
     233 **/
     234function formidable_formidable_traitements($flux) {
     235        if (isset($flux['data']['email']) and isset($flux['data']['enregistrement'])) {
     236                $keys = array_keys($flux['data']);
     237                $position_email = array_search('email', $keys);
     238                $position_enregistrement = array_search('enregistrement', $keys);
     239
     240                if ($position_enregistrement > $position_email) { // si enregistrement après email
     241                        $nouveau_tab = array();
     242                        foreach ($keys as $key) { //on reconstruit le tableau, en inversant simplement email et enregistrement
     243                                if ($key == 'email') {
     244                                        $nouveau_tab['enregistrement'] = $flux['data']['enregistrement'];
     245                                } elseif ($key == 'enregistrement') {
     246                                        $nouveau_tab['email'] = $flux['data']['email'];
     247                                } else {
     248                                        $nouveau_tab[$key] = $flux['data'][$key];
     249                                }
     250                        }
     251                        $flux['data'] = $nouveau_tab;
     252                }
     253        }
     254
     255        return $flux;
     256}
  • _plugins_/formidable/branches/v3_dev/formulaires/formidable.php

    r101184 r101186  
    297297        $formulaire = sql_fetsel('*', 'spip_formulaires', 'id_formulaire = ' . $id_formulaire);
    298298        $traitements = unserialize($formulaire['traitements']);
    299 
     299        $traitements = pipeline ('formidable_traitements',
     300                array(
     301                        'args'=>array('id_formulaire'=>$id_formulaire),
     302                        'data'=>$traitements
     303                )
     304        );
    300305        // selon le choix, le formulaire se remet en route à la fin ou non
    301306        $retours['editable'] = ($formulaire['apres']=='formulaire');
  • _plugins_/formidable/branches/v3_dev/paquet.xml

    r101182 r101186  
    2020        <pipeline nom="formidable_exporter_formulaire_reponses_titres" action="" />
    2121        <pipeline nom="formidable_exporter_formulaire_reponses_reponse" action="" />
     22        <pipeline nom="formidable_traitements" inclure="formidable_pipelines.php" />
    2223
    2324        <pipeline nom="autoriser" inclure="formidable_autorisations.php" />
Note: See TracChangeset for help on using the changeset viewer.