source: spip-zone/_plugins_/clients/formulaires/editer_client.php @ 54260

Last change on this file since 54260 was 54260, checked in by cam.lafit@…, 8 years ago

Suite de r54230

  • des inclusions manquantes
File size: 7.6 KB
Line 
1<?php
2
3// Sécurité
4if (!defined('_ECRIRE_INC_VERSION')) return;
5
6include_spip('inc/config');
7
8function formulaires_editer_client_saisies_dist($id_auteur, $retour=''){
9        $conf=lire_config('clients/elm',array());
10       
11        $civilite=array();
12        $type_c = lire_config('clients/type_civ','i');
13       
14        if($type_c == 'c'){             
15                $civ=lire_config('clients/elm_civ',array('madame', 'monsieur'));       
16                $civ_t=array();
17                if (in_array("civilite", $conf) and !in_array("obli_civilite", $conf)) {               
18                        foreach($civ as $v){
19                                array_push($civ_t, "<:clients:label_$v:>");
20                        }
21                        $civ_t = array_combine($civ, $civ_t);
22                        $civilite=array(
23                                'saisie' => 'radio',
24                                'options' => array(
25                                        'nom' => 'civilite',
26                                        'label' => _T('contacts:label_civilite'),
27                                        'datas' => $civ_t
28                                )
29                        );
30                }elseif (in_array("civilite", $conf) and in_array("obli_civilite", $conf)) {
31                        foreach($civ as $v){
32                                array_push($civ_t, "<:clients:label_$v:>");
33                        }
34                        $civ_t = array_combine($civ, $civ_t);
35                        $civilite=array(
36                                'saisie' => 'radio',
37                                'options' => array(
38                                        'nom' => 'civilite',
39                                        'label' => _T('contacts:label_civilite'),
40                                        'obligatoire' => 'oui',
41                                        'datas' => $civ_t
42                                )
43                        );
44                }
45        }else{
46                if (in_array("civilite", $conf) and !in_array("obli_civilite", $conf)) {
47                        $civilite=array(
48                                'saisie' => 'input',
49                                'options' => array(
50                                        'nom' => 'civilite',
51                                        'label' => _T('contacts:label_civilite')
52                                )
53                        );
54                }elseif (in_array("civilite", $conf) and in_array("obli_civilite", $conf)) {
55                        $civilite=array(
56                                'saisie' => 'input',
57                                'options' => array(
58                                        'nom' => 'civilite',
59                                        'label' => _T('contacts:label_civilite'),
60                                        'obligatoire' => 'oui'
61                                )
62                        );
63                }
64        }
65       
66        $complement=array();
67        if (in_array("complement", $conf) and !in_array("obli_complement", $conf)) {
68                $complement=array(
69                        'saisie' => 'input',
70                        'options' => array(
71                                'nom' => 'complement',
72                                'label' => _T('coordonnees:label_complement'),
73                        )
74                );
75        }elseif (in_array("complement", $conf) and in_array("obli_complement", $conf)) {
76                $complement=array(
77                        'saisie' => 'input',
78                        'options' => array(
79                                'nom' => 'complement',
80                                'label' => _T('coordonnees:label_complement'),
81                                'obligatoire' => 'oui'
82                        )
83                );
84        }
85       
86        $numero=array();
87        if (in_array("numero", $conf) and !in_array("obli_numero", $conf)) {
88                $numero=array(
89                        'saisie' => 'input',
90                        'options' => array(
91                                'nom' => 'numero',
92                                'label' => _T('coordonnees:label_numero'),
93                        )
94                );
95        }elseif (in_array("numero", $conf) and in_array("obli_numero", $conf)) {
96                $numero=array(
97                        'saisie' => 'input',
98                        'options' => array(
99                                'nom' => 'numero',
100                                'label' => _T('coordonnees:label_numero'),
101                                'obligatoire' => 'oui'
102                        )
103                );
104        }
105       
106        $pays=array();
107        if (in_array("pays", $conf) and !in_array("obli_pays", $conf)) {
108                $pays=array(
109                        'saisie' => 'pays',
110                        'options' => array(
111                                'nom' => 'pays',                               
112                                'code_pays' => 'oui',
113                                'label' => _T('coordonnees:label_pays'),
114                        )
115                );
116        }elseif (in_array("pays", $conf) and in_array("obli_pays", $conf)) {
117                $pays=array(
118                        'saisie' => 'pays',
119                        'options' => array(
120                                'nom' => 'pays',                               
121                                'code_pays' => 'oui',
122                                'label' => _T('coordonnees:label_pays'),
123                                'obligatoire' => 'oui'
124                        )
125                );
126        }
127       
128        return array(
129                $civilite,
130                array(
131                        'saisie' => 'input',
132                        'options' => array(
133                                'nom' => 'prenom',
134                                'label' => _T('contacts:label_prenom'),
135                                'obligatoire' => 'oui'
136                        )
137                ),
138                array(
139                        'saisie' => 'input',
140                        'options' => array(
141                                'nom' => 'nom',
142                                'label' => _T('contacts:label_nom'),
143                                'obligatoire' => 'oui'
144                        )
145                ),
146                array(
147                        'saisie' => 'input',
148                        'options' => array(
149                                'nom' => 'email_rien',
150                                'label' => _T('contacts:label_email'),
151                                'disable' => 'oui',
152                        ),
153                        'verifier' => array(
154                                'type' => 'email'
155                        )
156                ),
157                $numero,
158                array(
159                        'saisie' => 'input',
160                        'options' => array(
161                                'nom' => 'voie',
162                                'label' => _T('coordonnees:label_voie'),
163                                'obligatoire' => 'oui'
164                        )
165                ),
166                $complement,
167                array(
168                        'saisie' => 'input',
169                        'options' => array(
170                                'nom' => 'code_postal',
171                                'label' => _T('coordonnees:label_code_postal'),
172                                'obligatoire' => 'oui'
173                        )
174                ),
175                array(
176                        'saisie' => 'input',
177                        'options' => array(
178                                'nom' => 'ville',
179                                'label' => _T('coordonnees:label_ville'),
180                                'obligatoire' => 'oui'
181                        )
182                ),
183                $pays
184        );
185}
186
187function formulaires_editer_client_charger_dist($id_auteur, $retour=''){
188        include_spip('inc/session');
189        $contexte = array();
190       
191        // On vérifie qu'il y a un client correct (auteur+contact+adresse) quelque part
192        if (
193                $id_auteur > 0
194                and $email = sql_getfetsel('email', 'spip_auteurs', 'id_auteur = '.intval($id_auteur))
195                and $contact = sql_fetsel(
196                        '*',
197                        'spip_contacts_liens LEFT JOIN spip_contacts USING(id_contact)',
198                        array(
199                                'objet = '.sql_quote('auteur'),
200                                'id_objet = '.intval($id_auteur)
201                        )
202                )
203        ){
204                $contexte['email_rien'] = $email;
205                foreach ($contact as $cle=>$valeur) {
206                        $contexte[$cle] = $valeur;
207                }
208               
209                // S'il y a une adresse principale, on charge les infos
210                if ($adresse = sql_fetsel(
211                        '*',
212                        'spip_adresses_liens LEFT JOIN spip_adresses USING(id_adresse)',
213                        array(
214                                'objet = '.sql_quote('auteur'),
215                                'id_objet = '.intval($id_auteur),
216                                'type = '.sql_quote('principale')
217                        )
218                ))
219                        $contexte = array_merge($contexte, $adresse);
220                       
221                // S'il y a un numero principale, on charge les infos
222                if ($numero = sql_fetsel(
223                        '*',
224                        'spip_numeros_liens LEFT JOIN spip_numeros USING(id_numero)',
225                        array(
226                                'objet = '.sql_quote('auteur'),
227                                'id_objet = '.intval($id_auteur),
228                                'type = '.sql_quote('principal')
229                        )
230                ))
231                        $contexte = array_merge($contexte, $numero);
232        }
233        // Sinon rien
234        else{
235                $contexte['editable'] = false;
236        }
237       
238        return $contexte;
239}
240
241function formulaires_editer_client_verifier_dist($id_auteur, $retour=''){
242        $erreurs = array();
243       
244        return $erreurs;
245}
246
247function formulaires_editer_client_traiter_dist($id_auteur, $retour=''){
248        // Si redirection demandée, on refuse le traitement en ajax
249        if ($retour) refuser_traiter_formulaire_ajax();
250       
251        $retours = array();
252       
253        // On modifie le contact
254        $id_contact = sql_getfetsel(
255                'id_contact',
256                'spip_contacts_liens',
257                'objet = '.sql_quote('auteur').' and id_objet = '.$id_auteur
258        );
259        $editer_contact = charger_fonction('editer_contact', 'action/');
260        $editer_contact($id_contact);
261       
262        // Le pseudo SPIP est construit
263        set_request('nom', trim(_request('prenom').' '._request('nom'))); 
264       
265        // On modifie l'auteur
266        $editer_auteur = charger_fonction('editer_auteur', 'action/');
267        $editer_auteur($id_auteur);
268       
269        // On modifie l'adresse
270        $id_adresse = sql_getfetsel(
271                'id_adresse',
272                'spip_adresses_liens',
273                array(
274                        'objet = '.sql_quote('auteur'),
275                        'id_objet = '.$id_auteur,
276                        'type = '.sql_quote('principale')
277                )
278        );
279        // S'il n'y a pas d'adresse principale, on la crée
280        if (!$id_adresse){
281                $id_adresse = 'oui';
282                set_request('objet', 'auteur');
283                set_request('id_objet', $id_auteur);
284                set_request('type', 'principale');
285        }
286       
287        $editer_adresse = charger_fonction('editer_adresse', 'action/');
288        $editer_adresse($id_adresse);
289       
290        // On modifie le numero
291        $id_numero = sql_getfetsel(
292                'id_numero',
293                'spip_numeros_liens',
294                array(
295                        'objet = '.sql_quote('auteur'),
296                        'id_objet = '.$id_auteur,
297                        'type = '.sql_quote('principal')
298                )
299        );
300       
301        // S'il n'y a pas de numero de telephone principale, on le crée
302        if (!$id_numero){
303                $id_numero = 'oui';
304                set_request('objet', 'auteur');
305                set_request('id_objet', $id_auteur);
306                set_request('type', 'principal');
307        }
308       
309        $editer_numero = charger_fonction('editer_numero', 'action/');
310        $editer_numero($id_numero);
311       
312        // Quand on reste sur la même page, on peut toujours éditer après
313        $retours['editable'] = true;
314       
315        // Si on demande une redirection
316        if ($retour) $retours['redirect'] = $retour;
317       
318        return $retours;
319}
320
321?>
Note: See TracBrowser for help on using the repository browser.