source: plugins_spip/diogene_complements/diogene_geo/diogene_geo_pipelines.php @ 4244

Last change on this file since 4244 was 4244, checked in by kent1, 10 years ago

On suit diogene et les modifs de pipelines

File size: 3.4 KB
Line 
1<?php
2
3function diogene_geo_diogene_avant_formulaire($flux){
4        if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('geo',unserialize($flux['args']['champs_ajoutes']))){
5        $flux['data'] .= recuperer_fond('prive/diogene_geo_avant_formulaire', $flux['args']);
6        }
7    return $flux;
8}
9
10function diogene_geo_diogene_ajouter_saisies($flux){
11        $id_article = $flux['args']['contexte']['id_article'];
12        if(is_array(unserialize($flux['args']['champs_ajoutes'])) && in_array('geo',unserialize($flux['args']['champs_ajoutes']))){
13                if($id_article){
14                        if(intval($id_article)){
15                                $valeurs_gis = sql_fetsel("lat,lonx,zoom","spip_gis","id_article=$id_article");
16                                if(is_array($valeurs_gis)){
17                                        $flux['args']['contexte'] = array_merge($flux['args']['contexte'],$valeurs_gis);
18                                }
19                        }
20                $flux['data'] .= recuperer_fond('formulaires/diogene_ajouter_medias_geo',$flux['args']['contexte']);
21                }
22        }
23    return $flux;
24    }
25
26function diogene_geo_diogene_traiter($flux){
27        if($flux['args']['action']=='modifier'){
28
29                $id_objet = $flux['args']['id_objet'];
30                $type = $flux['args']['type'];
31                $table  = $flux['args']['table'];
32                $id_table_objet = id_table_objet($type);
33                if(($lat = _request('lat')) && ($lng = _request('lonx')) && (!$non_localisable = _request('non_localisable'))){
34                        // On crée l'array pour l'update et pour la création des coordonnées
35                        $zoom = _request('zoom') ? _request('zoom') : lire_config('geomap/zoom');
36
37                        $coords = array(
38                                        $id_table_objet=> $id_objet,
39                                        'lat'=> $lat,
40                                        'lonx' => $lng,
41                                        'zoom' => $zoom
42                                );
43
44                        if(lire_config('gis/geocoding') == 'oui'){
45                                $geocoding = array(
46                                        "pays" => _request('pays'),
47                                        "code_pays" => _request('code_pays'),
48                                        "region" => _request('region'),
49                                        "ville" => _request('ville'),
50                                        "code_postal" => _request('code_postal')
51                                );
52                                $coords = array_merge($coords,$geocoding);
53                        }
54
55                        $coords_existantes = sql_getfetsel("id_gis","spip_gis","$id_table_objet = $id_objet");
56                        if($coords_existantes){
57                                // Des coordonnées sont déjà définies pour cet article
58                                // => on les update
59                                sql_updateq("spip_gis",$coords,"id_gis = $coords_existantes");
60                        }
61                        else{
62                                // Aucune coordonnée n'est définie pour cet article
63                                // => on les crées
64                                $id_gis = sql_insertq("spip_gis",$coords);
65                        }
66                }
67                set_request('non_localisable',$non_localisable);
68        }
69        return $flux;
70}
71
72function diogene_geo_diogene_verifier($flux){
73        spip_log("DIOGENE_GEO : Verification des champs géographiques");
74
75        $id_article = _request('id_article');
76        $erreurs = &$flux['args']['erreurs'];
77
78        if((!$erreur['lat']) && ($lat = _request('lat'))){
79                if((!empty($lat)) && !is_numeric($lat)){
80                        $erreurs['lat'] = _T('diogene:valeur_pas_float',array('champs'=> _T('diogene_geo:latitude')));
81                }
82        }
83        if((!$erreur['lonx']) && ($lonx = _request('lonx'))){
84                if((!empty($lonx)) && !is_numeric($lonx)){
85                        $erreurs['lonx'] = _T('diogene:valeur_pas_float',array('champs'=> _T('diogene_geo:longitude')));
86                }
87        }
88        if((!$erreur['zoom']) && ($zoom = _request('zoom'))){
89                if((!empty($zoom)) && !is_numeric($zoom)){
90                        $erreurs['zoom'] = _T('diogene:valeur_pas_int',array('champs'=>_T('diogene_geo:zoom')));
91                }
92        }
93        return $flux;
94}
95
96function diogene_geo_diogene_charger($flux){
97        $flux['data']['non_localisable'] = _request('non_localisable');
98        return $flux;
99}
100
101function diogene_geo_diogene_champs_sup($flux){
102        $flux['article']['geo'] = _T('diogene_geo:form_legend');
103        $flux['rubrique']['geo'] = _T('diogene_geo:form_legend');
104        return $flux;
105}
106?>
Note: See TracBrowser for help on using the repository browser.