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

Last change on this file since 3106 was 3106, checked in by kent1, 12 years ago

On commence à penser à gérer plusieurs types d'objets

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