source: spip-zone/_plugins_/formidable_participation/trunk/formidableparticipation_pipelines.php @ 115202

Last change on this file since 115202 was 115202, checked in by maieul@…, 2 years ago

Nouvelle option : permettre à un même email d'avoir plusieurs inscriptions sur un même évènement. Exemple d'usage : des responsables légaux qui inscrivent leurs enfants à des évènements

  • Property svn:executable set to *
File size: 2.0 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Formulaires de participation
4 *
5 * @plugin     Formulaires de participation
6 * @copyright  2014
7 * @author     Anne-lise Martenot
8 * @licence    GNU/GPL
9 * @package    SPIP\Formidableparticipation\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) return;
13
14/**
15 * Traiter les formulaires de participation
16 * @param array $flux
17 * @return array
18 */
19function formidableparticipation_traiter_formidableparticipation($flux){
20        //au moins une reponse et un email
21        if ($flux['args']['choix_participation'] && $flux['args']['email']){
22                $id_evenement = $flux['args']['id_evenement'];
23                $reponse = $flux['args']['choix_participation'];
24                $email = $flux['args']['email'];
25                $id_auteur = $flux['args']['id_auteur'];
26                $nom = $flux['args']['nom'];
27                $prenom = $flux['args']['prenom'];
28                if($flux['args']['organisme']) $organisme = '('.$flux['args']['organisme'].')';
29                $nom = "$prenom $nom $organisme";
30
31                $champs = array(
32                        'id_auteur'=>$id_auteur,
33                        'nom'=>$nom,
34                        'email'=>$email,
35                        'reponse'=>$reponse,
36                        'id_evenement'=>$id_evenement,
37                        'date'=>date('Y-m-d H:i:s'),
38                );
39
40                // si evenement, on insere le participant et ses données
41                // et on laisse le traitement du nombre de places à la charge du webmestre et du squelette evenements
42                if(isset($id_evenement)){
43                                //on ne logue pas l'auteur, si l'email sur le même id_evenement existe, mettre à jour, sauf si on demande explictement de permettre à un même email de s'inscrire plusieurs fois
44                                if (sql_fetsel('reponse','spip_evenements_participants','id_evenement='.intval($id_evenement)." AND email=".sql_quote($email)) and !$flux['args']['autoriser_email_multiple']){
45                                        sql_updateq("spip_evenements_participants",$champs,'id_evenement='.intval($id_evenement).' AND email='.sql_quote($email));
46                                }
47                                else{
48                                        sql_insertq("spip_evenements_participants", $champs);
49                                }
50                }
51
52                spip_log("pipeline evenement $id_evenement pour $email et id_auteur=$id_auteur reponse=$reponse","formidable_participation");
53        }
54
55   return $flux;
56}
57
58?>
Note: See TracBrowser for help on using the repository browser.