source: spip-zone/_plugins_/coordonnees/trunk/formulaires/editer_adresse.php @ 70506

Last change on this file since 70506 was 70506, checked in by tcharlss@…, 7 years ago

Pour charger les saisies des formulaires d'édition, on utilise la fonction "formulaires_editer_xxx_saisies_dist" au lieu d'utiliser un fichier yaml.
Merci à Rastapopoulos pour l'indication.

File size: 4.9 KB
Line 
1<?php
2/**
3 * Plugin Coordonnees
4 * Licence GPL (c) 2010 - Marcimat / Ateliers CYM
5 */
6
7if (!defined('_ECRIRE_INC_VERSION')) return;
8
9include_spip('inc/actions');
10include_spip('inc/editer');
11
12/**
13 * Definition des saisies du formulaire
14 */
15function formulaires_editer_adresse_saisies_dist(){
16        $saisies = array (
17                array (
18                        'saisie' => 'input',
19                        'options' => array (
20                                'nom' => 'titre',
21                                'label' => _T('adresse:label_titre'),
22                                'placeholder' => _T('adresse:placeholder_titre'),
23                                'obligatoire' => 'oui'
24                        )
25                ),
26                array (
27                        'saisie' => 'selection',
28                        'options' => array (
29                                'nom' => 'type',
30                                'label' => _T('adresse:label_type'),
31                                'obligatoire' => 'oui',
32                                'datas' => array (
33                                        'home' => _T('adresse:type_adr_home'),
34                                        'work' => _T('adresse:type_adr_work'),
35                                        'dom'=> _T('adresse:type_adr_dom'),
36                                        'pref' => _T('adresse:type_adr_pref'),
37                                        'postal' => _T('adresse:type_adr_postal'),
38                                        'intl' => _T('adresse:type_adr_intl'),
39                                        'parcel' => _T('adresse:type_adr_parcel')
40                                )
41                        )
42                ),
43                array (
44                        'saisie' => 'input',
45                        'options' => array (
46                                'nom' => 'voie',
47                                'label' => _T('adresse:label_voie'),
48                                'obligatoire' => 'oui'
49                        )
50                ),
51                array (
52                        'saisie' => 'input',
53                        'options' => array (
54                                'nom' => 'complement',
55                                'label' => _T('adresse:label_complement'),
56                                'placeholder' => _T('adresse:placeholder_complement')
57                        )
58                ),
59                array (
60                        'saisie' => 'input',
61                        'options' => array (
62                                'nom' => 'boite_postale',
63                                'label' => _T('adresse:label_boite_postale'),
64                        )
65                ),
66                array (
67                        'saisie' => 'input',
68                        'options' => array (
69                                'nom' => 'code_postal',
70                                'label' => _T('adresse:label_code_postal'),
71                                'obligatoire' => 'oui',
72                                'verifier' => array (
73                                        'type' => 'code_postal'
74                                )
75                        )
76                ),
77                array (
78                        'saisie' => 'input',
79                        'options' => array (
80                                'nom' => 'region',
81                                'label' => _T('adresse:label_region')
82                        )
83                ),
84                array (
85                        'saisie' => 'input',
86                        'options' => array (
87                                'nom' => 'ville',
88                                'label' => _T('adresse:label_ville'),
89                                'obligatoire' => 'oui',
90                        )
91                ),
92                array (
93                        'saisie' => 'pays',
94                        'options' => array (
95                                'nom' => 'pays',
96                                'label' => _T('adresse:label_pays'),
97                                'obligatoire' => 'oui',
98                                'class' => 'chosen',
99                                'defaut' => 'FR',
100                                'code_pays' => 'oui'
101                        )
102                ),
103        );
104        return $saisies;
105}
106
107/**
108 * Identifier le formulaire en faisant abstraction des parametres qui ne representent pas l'objet edite
109 */
110function formulaires_editer_adresse_identifier_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
111        return serialize(array(intval($id_adresse), $associer_objet));
112}
113
114/**
115 * Declarer les champs postes et y integrer les valeurs par defaut
116 */
117function formulaires_editer_adresse_charger_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
118        $valeurs = formulaires_editer_objet_charger('adresse',$id_adresse,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
119
120        // valeur de la saisie "type" dans la table de liens
121        if ( $associer_objet ) {
122                list($objet, $id_objet) = explode('|', $associer_objet);
123                $valeurs['type'] = sql_getfetsel('type', 'spip_adresses_liens', 'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_adresse='.intval($id_adresse) );
124        }
125
126        return $valeurs;
127}
128
129/**
130 * Verifier les champs postes et signaler d'eventuelles erreurs
131 */
132function formulaires_editer_adresse_verifier_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
133        // verification generique
134        $erreurs = formulaires_editer_objet_verifier('adresse',$id_adresse);
135
136        // verifier qu'il y a au moins le code ou la boite postale
137        if ( strlen(_request('code_postal')==0) AND strlen(_request('boite_postale'))==0 ) {
138                $erreurs['boite_postale'] = _T('adresse:erreur_code_boite_postal');
139                $erreurs['code_postal'] = '&nbsp;';
140        }
141
142        return $erreurs;
143}
144
145/**
146 * Traiter les champs postes
147 */
148function formulaires_editer_adresse_traiter_dist($id_adresse='new', $retour='', $associer_objet='', $lier_trad=0, $config_fonc='', $row=array(), $hidden=''){
149        $res = formulaires_editer_objet_traiter('adresse',$id_adresse,'',$lier_trad,$retour,$config_fonc,$row,$hidden);
150 
151        // Un lien a prendre en compte ?
152        if ($associer_objet AND $id_adresse = $res['id_adresse']) {
153                list($objet, $id_objet) = explode('|', $associer_objet);
154                if ($objet AND $id_objet AND autoriser('modifier', $objet, $id_objet)) {
155                        include_spip('action/editer_liens');
156                        objet_associer(array('adresse' => $id_adresse), array($objet => $id_objet));
157                        if (isset($res['redirect'])) {
158                                $res['redirect'] = parametre_url ($res['redirect'], 'id_adresse', '', '&');
159                        }
160                }
161                // remplir le champ "type" dans la table de liens
162                if ( $type = _request('type') ) {
163                        sql_updateq('spip_adresses_liens',
164                                array('type' => $type),
165                                'objet='.sql_quote($objet).' AND id_objet='.intval($id_objet).' AND id_adresse='.intval($id_adresse)
166                        );
167                }
168        }
169        return $res;
170
171}
172
173
174?>
Note: See TracBrowser for help on using the repository browser.