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