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

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

Civilités plus adaptées à C&O

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