source: spip-zone/_plugins_/clients/formulaires/inscription_client.php @ 53398

Last change on this file since 53398 was 53398, checked in by pierre.fiches@…, 8 years ago

Un peu de configuration pour les clients qui ne devrait rien changer par défaut, seul pays et complément nécessitent de valider la configuration.

File size: 6.1 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6include_spip('inc/filtres');
7
8function formulaires_inscription_client_saisies_dist($retour=''){
9        $mode = tester_config(0);
10       
11        $conf=lire_config('clients/elm',array());
12       
13        $civilite=array();
14        if (in_array("civilite", $conf) and !in_array("obli_civilite", $conf)) {
15                $civ=lire_config('clients/elm_civ',array('m', 'mme'));
16                $civ_t=array();
17                foreach($civ as $v){
18                        // pas moyen de faire marcher array_merge ici
19                                array_push($civ_t, _T($v));
20                }
21                $civ_t = array_values($civ_t);
22                $civ_t = array_combine($civ_t, $civ_t);
23                $civilite=array(
24                        'saisie' => 'radio',
25                        'options' => array(
26                                'nom' => 'civilite',
27                                'label' => _T('contacts:label_civilite'),
28                                'datas' => $civ_t
29                        )
30                );
31        }elseif (in_array("civilite", $conf) and in_array("obli_civilite", $conf)) {
32                $civ=lire_config('clients/elm_civ',array('m', 'mme'));
33                $civ_t=array();
34                foreach($civ as $v){
35                        // pas moyen de faire marcher array_merge ici
36                                array_push($civ_t, _T($v));
37                }
38                $civ_t = array_values($civ_t);
39                $civ_t = array_combine($civ_t, $civ_t);
40                $civilite=array(
41                        'saisie' => 'radio',
42                        'options' => array(
43                                'nom' => 'civilite',
44                                'label' => _T('contacts:label_civilite'),
45                                'obligatoire' => 'oui',
46                                'datas' => $civ_t
47                        )
48                );
49        }
50       
51        $complement=array();
52        if (in_array("complement", $conf) and !in_array("obli_complement", $conf)) {
53                $complement=array(
54                        'saisie' => 'input',
55                        'options' => array(
56                                'nom' => 'complement',
57                                'label' => _T('coordonnees:label_complement'),
58                        )
59                );
60        }elseif (in_array("complement", $conf) and in_array("obli_complement", $conf)) {
61                $complement=array(
62                        'saisie' => 'input',
63                        'options' => array(
64                                'nom' => 'complement',
65                                'label' => _T('coordonnees:label_complement'),
66                                'obligatoire' => 'oui'
67                        )
68                );
69        }
70       
71        $numero=array();
72        if (in_array("numero", $conf) and !in_array("obli_numero", $conf)) {
73                $numero=array(
74                        'saisie' => 'input',
75                        'options' => array(
76                                'nom' => 'numero',
77                                'label' => _T('coordonnees:label_numero'),
78                        )
79                );
80        }elseif (in_array("numero", $conf) and in_array("obli_numero", $conf)) {
81                $numero=array(
82                        'saisie' => 'input',
83                        'options' => array(
84                                'nom' => 'numero',
85                                'label' => _T('coordonnees:label_numero'),
86                                'obligatoire' => 'oui'
87                        )
88                );
89        }
90       
91        $pays=array();
92        if (in_array("pays", $conf) and !in_array("obli_pays", $conf)) {
93                $pays=array(
94                        'saisie' => 'pays',
95                        'options' => array(
96                                'nom' => 'pays',                               
97                                'code_pays' => 'oui',
98                                'label' => _T('coordonnees:label_pays'),
99                        )
100                );
101        }elseif (in_array("pays", $conf) and in_array("obli_pays", $conf)) {
102                $pays=array(
103                        'saisie' => 'pays',
104                        'options' => array(
105                                'nom' => 'pays',                               
106                                'code_pays' => 'oui',
107                                'label' => _T('coordonnees:label_pays'),
108                                'obligatoire' => 'oui'
109                        )
110                );
111        }
112       
113        return array(
114                $civilite,
115                array(
116                        'saisie' => 'input',
117                        'options' => array(
118                                'nom' => 'prenom',
119                                'label' => _T('contacts:label_prenom'),
120                                'obligatoire' => 'oui'
121                        )
122                ),
123                array(
124                        'saisie' => 'input',
125                        'options' => array(
126                                'nom' => 'nom',
127                                'label' => _T('contacts:label_nom'),
128                                'obligatoire' => 'oui'
129                        )
130                ),
131                array(
132                        'saisie' => 'input',
133                        'options' => array(
134                                'nom' => 'mail_inscription',
135                                'label' => _T('contacts:label_email'),
136                                'obligatoire' => 'oui'
137                        ),
138                        'verifier' => array(
139                                'type' => 'email'
140                        )
141                ),
142                $numero,
143                array(
144                        'saisie' => 'input',
145                        'options' => array(
146                                'nom' => 'voie',
147                                'label' => _T('coordonnees:label_voie'),
148                                'obligatoire' => 'oui'
149                        )
150                ),
151                $complement,
152                array(
153                        'saisie' => 'input',
154                        'options' => array(
155                                'nom' => 'code_postal',
156                                'label' => _T('coordonnees:label_code_postal'),
157                                'obligatoire' => 'oui'
158                        )
159                ),
160                array(
161                        'saisie' => 'input',
162                        'options' => array(
163                                'nom' => 'ville',
164                                'label' => _T('coordonnees:label_ville'),
165                                'obligatoire' => 'oui'
166                        )
167                ),
168                $pays
169        );
170}
171
172function formulaires_inscription_client_charger_dist($retour=''){
173        // On récupère le formulaire classique d'inscription
174        $mode = tester_config(0);
175        $inscription_dist = charger_fonction('charger', 'formulaires/inscription');
176        $contexte = $inscription_dist($mode,'');
177       
178        return $contexte;
179}
180
181function formulaires_inscription_client_verifier_dist($retour=''){
182        // On crée un faux positif pour le nom car on le construira nous-même plus tard
183        set_request('nom_inscription', 'glop');
184       
185        // On récupère les erreurs du formulaire d'inscription classique
186        $mode = tester_config(0);
187        $inscription_dist = charger_fonction('verifier', 'formulaires/inscription');
188        $erreurs = $inscription_dist($mode,'');
189       
190        return $erreurs;
191}
192
193function formulaires_inscription_client_traiter_dist($retour=''){
194        // Si redirection demandée, on refuse le traitement en ajax
195        if ($retour) refuser_traiter_formulaire_ajax();
196       
197        // Le pseudo SPIP est construit
198        set_request('nom_inscription', trim(_request('prenom').' '._request('nom')));
199       
200        // On active le traitement du formulaire d'inscription classique, donc on crée un nouvel utilisateur
201        $mode = tester_config(0);
202        $inscription_dist = charger_fonction('traiter', 'formulaires/inscription');
203        $retours = $inscription_dist($mode,'');
204       
205        // On récupère l'auteur qu'on vient de créer avec l'email du form
206        if ($id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email = '.sql_quote(_request('mail_inscription')))){
207                // On ajoute des infos au contexte
208                set_request('objet', 'auteur');
209                set_request('id_objet', $id_auteur);
210                set_request('type', 'principale');
211               
212                // On crée un contact pour cet utilisateur
213                $editer_contact = charger_fonction('editer_contact', 'action/');
214                list($id_contact, $err) = $editer_contact('nouveau');
215                //On lie le contact à l'auteur
216                sql_insertq('spip_contacts_liens',array('id_objet' => $id_auteur,'objet' => 'auteur',"id_contact"=>$id_contact));
217                //assurer la compatibilite
218                sql_updateq('spip_contacts',array('id_auteur' => $id_auteur),"id_contact=".intval($id_contact));
219
220               
221                // On crée l'adresse
222                $editer_adresse = charger_fonction('editer_adresse', 'action/');
223                $editer_adresse('oui');
224               
225                // On crée le numero de tel
226                $editer_numero = charger_fonction('editer_numero', 'action/');
227                $editer_numero('oui');
228        }
229       
230        if ($retour) $retours['redirect'] = $retour;
231       
232        return $retours;
233}
234
235?>
Note: See TracBrowser for help on using the repository browser.