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

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

Configuration et gestion supplémentaire :

  • portable de type "portable" et de titre "Portable"
  • fax de type "fax" et de titre "Fax"
File size: 8.3 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6include_spip('inc/config');
7include_spip('inc/filtres');
8
9function formulaires_inscription_client_saisies_dist($retour=''){
10        $mode = tester_config(0);
11       
12        $conf=lire_config('clients/elm',array());
13       
14        $civilite=array();     
15        $type_c = lire_config('clients/type_civ','i');
16       
17        if($type_c == 'c'){
18                $civ=lire_config('clients/elm_civ',array('madame', 'monsieur'));
19                $civ_t=array();
20                if (in_array("civilite", $conf) and !in_array("obli_civilite", $conf)) {               
21                        foreach($civ as $v){
22                                array_push($civ_t, "<:clients:label_$v:>");
23                        }
24                        $civ_t = array_combine($civ, $civ_t);
25                        $civilite=array(
26                                'saisie' => 'radio',
27                                'options' => array(
28                                        'nom' => 'civilite',
29                                        'label' => _T('contacts:label_civilite'),
30                                        'datas' => $civ_t
31                                )
32                        );
33                }elseif (in_array("civilite", $conf) and in_array("obli_civilite", $conf)) {
34                        foreach($civ as $v){
35                                array_push($civ_t, "<:clients:label_$v:>");
36                        }
37                        $civ_t = array_combine($civ, $civ_t);
38                        $civilite=array(
39                                'saisie' => 'radio',
40                                'options' => array(
41                                        'nom' => 'civilite',
42                                        'label' => _T('contacts:label_civilite'),
43                                        'obligatoire' => 'oui',
44                                        'datas' => $civ_t
45                                )
46                        );
47                }
48        }else{
49                if (in_array("civilite", $conf) and !in_array("obli_civilite", $conf)) {
50                        $civilite=array(
51                                'saisie' => 'input',
52                                'options' => array(
53                                        'nom' => 'civilite',
54                                        'label' => _T('contacts:label_civilite')
55                                )
56                        );
57                }elseif (in_array("civilite", $conf) and in_array("obli_civilite", $conf)) {
58                        $civilite=array(
59                                'saisie' => 'input',
60                                'options' => array(
61                                        'nom' => 'civilite',
62                                        'label' => _T('contacts:label_civilite'),
63                                        'obligatoire' => 'oui'
64                                )
65                        );
66                }
67        }
68       
69        $numero=array();
70        if (in_array("numero", $conf) and !in_array("obli_numero", $conf)) {
71                $numero=array(
72                        'saisie' => 'input',
73                        'options' => array(
74                                'nom' => 'numero',
75                                'label' => _T('coordonnees:label_numero'),
76                        )
77                );
78        }elseif (in_array("numero", $conf) and in_array("obli_numero", $conf)) {
79                $numero=array(
80                        'saisie' => 'input',
81                        'options' => array(
82                                'nom' => 'numero',
83                                'label' => _T('coordonnees:label_numero'),
84                                'obligatoire' => 'oui'
85                        )
86                );
87        }
88       
89        $portable=array();
90        if (in_array("portable", $conf) and !in_array("obli_portable", $conf)) {
91                $portable=array(
92                        'saisie' => 'input',
93                        'options' => array(
94                                'nom' => 'portable',
95                                'label' => _T('clients:label_portable')
96                        )
97                );
98        }elseif (in_array("portable", $conf) and in_array("obli_portable", $conf)) {
99                $portable=array(
100                        'saisie' => 'input',
101                        'options' => array(
102                                'nom' => 'portable',
103                                'label' => _T('clients:label_portable'),
104                                'obligatoire' => 'oui'
105                        )
106                );
107        }
108
109        $fax=array();
110        if (in_array("fax", $conf) and !in_array("obli_fax", $conf)) {
111                $fax=array(
112                        'saisie' => 'input',
113                        'options' => array(
114                                'nom' => 'fax',
115                                'label' => _T('clients:label_fax')
116                        )
117                );
118        }elseif (in_array("fax", $conf) and in_array("obli_fax", $conf)) {
119                $fax=array(
120                        'saisie' => 'input',
121                        'options' => array(
122                                'nom' => 'fax',
123                                'label' => _T('clients:label_fax'),
124                                'obligatoire' => 'oui'
125                        )
126                );
127        }
128
129        $complement=array();
130        if (in_array("complement", $conf) and !in_array("obli_complement", $conf)) {
131                $complement=array(
132                        'saisie' => 'input',
133                        'options' => array(
134                                'nom' => 'complement',
135                                'label' => _T('coordonnees:label_complement'),
136                        )
137                );
138        }elseif (in_array("complement", $conf) and in_array("obli_complement", $conf)) {
139                $complement=array(
140                        'saisie' => 'input',
141                        'options' => array(
142                                'nom' => 'complement',
143                                'label' => _T('coordonnees:label_complement'),
144                                'obligatoire' => 'oui'
145                        )
146                );
147        }
148       
149        $pays=array();
150        if (in_array("pays", $conf) and !in_array("obli_pays", $conf)) {
151                $pays=array(
152                        'saisie' => 'pays',
153                        'options' => array(
154                                'nom' => 'pays',                               
155                                'code_pays' => 'oui',
156                                'label' => _T('coordonnees:label_pays'),
157                        )
158                );
159        }elseif (in_array("pays", $conf) and in_array("obli_pays", $conf)) {
160                $pays=array(
161                        'saisie' => 'pays',
162                        'options' => array(
163                                'nom' => 'pays',                               
164                                'code_pays' => 'oui',
165                                'label' => _T('coordonnees:label_pays'),
166                                'obligatoire' => 'oui'
167                        )
168                );
169        }
170       
171        return array(
172                $civilite,
173                array(
174                        'saisie' => 'input',
175                        'options' => array(
176                                'nom' => 'prenom',
177                                'label' => _T('contacts:label_prenom'),
178                                'obligatoire' => 'oui'
179                        )
180                ),
181                array(
182                        'saisie' => 'input',
183                        'options' => array(
184                                'nom' => 'nom',
185                                'label' => _T('contacts:label_nom'),
186                                'obligatoire' => 'oui'
187                        )
188                ),
189                array(
190                        'saisie' => 'input',
191                        'options' => array(
192                                'nom' => 'mail_inscription',
193                                'label' => _T('contacts:label_email'),
194                                'obligatoire' => 'oui'
195                        ),
196                        'verifier' => array(
197                                'type' => 'email'
198                        )
199                ),
200                $numero,
201                $portable,
202                $fax,
203                array(
204                        'saisie' => 'input',
205                        'options' => array(
206                                'nom' => 'voie',
207                                'label' => _T('coordonnees:label_voie'),
208                                'obligatoire' => 'oui'
209                        )
210                ),
211                $complement,
212                array(
213                        'saisie' => 'input',
214                        'options' => array(
215                                'nom' => 'code_postal',
216                                'label' => _T('coordonnees:label_code_postal'),
217                                'obligatoire' => 'oui'
218                        )
219                ),
220                array(
221                        'saisie' => 'input',
222                        'options' => array(
223                                'nom' => 'ville',
224                                'label' => _T('coordonnees:label_ville'),
225                                'obligatoire' => 'oui'
226                        )
227                ),
228                $pays
229        );
230}
231
232function formulaires_inscription_client_charger_dist($retour=''){
233        // On récupère le formulaire classique d'inscription
234        $mode = tester_config(0);
235        $inscription_dist = charger_fonction('charger', 'formulaires/inscription');
236        $contexte = $inscription_dist($mode,'');
237       
238        return $contexte;
239}
240
241function formulaires_inscription_client_verifier_dist($retour=''){
242        // On crée un faux positif pour le nom car on le construira nous-même plus tard
243        set_request('nom_inscription', 'glop');
244       
245        // On récupère les erreurs du formulaire d'inscription classique
246        $mode = tester_config(0);
247        $inscription_dist = charger_fonction('verifier', 'formulaires/inscription');
248        $erreurs = $inscription_dist($mode,'');
249       
250        return $erreurs;
251}
252
253function formulaires_inscription_client_traiter_dist($retour=''){
254        // Si redirection demandée, on refuse le traitement en ajax
255        if ($retour) refuser_traiter_formulaire_ajax();
256       
257        // Le pseudo SPIP est construit
258        set_request('nom_inscription', trim(_request('prenom').' '._request('nom')));
259       
260        // On active le traitement du formulaire d'inscription classique, donc on crée un nouvel utilisateur
261        $mode = tester_config(0);
262        $inscription_dist = charger_fonction('traiter', 'formulaires/inscription');
263        $retours = $inscription_dist($mode,'');
264       
265        // On récupère l'auteur qu'on vient de créer avec l'email du form
266        if ($id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'email = '.sql_quote(_request('mail_inscription')))){
267                // On ajoute des infos au contexte
268                set_request('objet', 'auteur');
269                set_request('id_objet', $id_auteur);
270                set_request('type', 'principale');
271               
272                // On crée un contact pour cet utilisateur
273                $editer_contact = charger_fonction('editer_contact', 'action/');
274                list($id_contact, $err) = $editer_contact('nouveau');
275                //On lie le contact à l'auteur
276                sql_insertq('spip_contacts_liens',array('id_objet' => $id_auteur,'objet' => 'auteur',"id_contact"=>$id_contact));
277                //assurer la compatibilite
278                sql_updateq('spip_contacts',array('id_auteur' => $id_auteur),"id_contact=".intval($id_contact));
279
280               
281                // On crée l'adresse
282                $editer_adresse = charger_fonction('editer_adresse', 'action/');
283                $editer_adresse('oui');
284               
285                // On crée le numero de tel
286                set_request('type', 'principal');
287                $editer_numero = charger_fonction('editer_numero', 'action/');
288                $editer_numero('oui');
289               
290                // On crée le portable
291                if(_request('portable')){
292                        // on stocke cette donnee
293                        $numero = _request('numero');
294                        set_request('numero', _request('portable'));                                   
295                        set_request('type', 'portable');                       
296                        set_request('titre', 'Portable');
297                       
298                        $editer_portable = charger_fonction('editer_numero', 'action/');
299                        $editer_portable('oui');               
300                }
301       
302                // On crée le fax
303                if(_request('fax')){
304                        // on stocke cette donnee si elle ne l'est pas deja
305                        $numero ? '' : $numero = _request('numero');
306                        set_request('numero', _request('fax'));
307                        set_request('type', 'fax');                     
308                        set_request('titre', 'Fax');
309                                                               
310                        $editer_fax = charger_fonction('editer_numero', 'action/');
311                        $editer_fax('oui');             
312                }               
313        }
314       
315        // si necessaire on replace la bonne donnee dans l'environnement
316        $numero ? set_request('numero', $numero) : '';
317       
318        if ($retour) $retours['redirect'] = $retour;
319       
320        return $retours;
321}
322
323?>
Note: See TracBrowser for help on using the repository browser.