source: spip-zone/_plugins_/spip_geoportail/action/geoportail_editer_objet.php @ 44063

Last change on this file since 44063 was 44063, checked in by jean-marc.viglino@…, 9 years ago

[MAJ] Réorganisation du code.

File size: 2.7 KB
Line 
1<?php
2/**
3* Plugin SPIP Geoportail
4*
5* @author:
6* Jean-Marc Viglino (ign.fr)
7*
8* Copyright (c) 2010
9* Logiciel distribue sous licence GNU/GPL.
10*
11* Action securisee pour modifier une geoposition
12*
13**/
14if (!defined("_ECRIRE_INC_VERSION")) return "{error:'inc_version'}";
15include_spip('base/abstract_sql');
16include_spip('inc/geoupload');
17include_spip('public/geoportail_boucles');
18               
19function action_geoportail_editer_objet_dist()
20{       //header("Content-Type: text/json; charset:UTF-8; ");
21        #HTTP_HEADER{Content-Type: text/json; }
22
23        include_spip('inc/compat_192');
24        // Une modification ?
25        if (isset($_POST['valider']) || isset($_POST['supprimer']))
26        {       $lon = _request('lon');
27                $lat = _request('lat');
28                $zone = _request('idzone');
29                $zoom = _request('zoom');
30                $action = 'modifier';
31                $alon = addslashes(geoportail_longitude($lon));
32                $alat = addslashes(geoportail_latitude($lat));
33                // Quoi modifier
34                if ($lon && $lat && $zone)
35                {       $objet = _request ('objet');
36                        $id = _request ('id_objet');
37                        if ($objet == 'auteur') $action = 'positionner';
38                }
39                else
40                {       echo "{error:null, lon:'', lat:'', alon:'-', alat:'-', id_dep:'', id_com:'', nom_com:'' }";
41                        return;
42                }
43                // Rechercher la commune la plus proche
44                geoportail_chercher_adm ($lon, $lat, $adm);
45                if ($adm)
46                {       $id_dep = $adm['id_dep'];
47                        $id_com = $adm['id_com'];
48                        $nom_com = $adm['name'];
49                }
50                else $nom_com = $id_dep = $id_com = "";
51               
52                // Verifier que l'action est securisee
53                $securiser_action = charger_fonction('securiser_action','inc');
54                $securiser_action();
55
56                // Traiter
57                if ($id)
58                {       if (autoriser($action, $objet, $id))
59                        {       if (isset($_POST['valider']))
60                                {       $row = spip_fetch_array(spip_query("SELECT * FROM spip_geopositions WHERE id_objet='$id' AND objet='$objet'"));
61                                        if ($row)
62                                        {       
63                                                spip_query("UPDATE spip_geopositions SET "
64                                                        ."lon=$lon,lat=$lat,zoom=$zoom,zone='$zone',id_dep='$id_dep',id_com='$id_com'"
65                                                        ."WHERE id_geoposition=".$row['id_geoposition']." AND id_objet=$id AND objet='$objet'");
66                                        }
67                                        else
68                                        {       $id_position = sql_insert("spip_geopositions",
69                                                        "(id_objet, objet, lon, lat, zoom, zone, id_dep, id_com)",
70                                                        "($id, '$objet', $lon, $lat, $zoom, '$zone', '$id_dep', '$id_com')"
71                                                );
72                                        }
73                                }
74                                else if (isset($_POST['supprimer']))
75                                {       spip_query("DELETE FROM spip_geopositions WHERE id_objet='$id' AND objet='$objet'");
76                                        $alat=$alon='-';
77                                        $id_dep = $id_com = $nom_com = '';
78                                }
79                                echo "{ error:null, lon:$lon, lat:$lat, alon:'$alon', alat:'$alat', id_dep:'$id_dep', id_com:'$id_com', nom_com:\"$nom_com\" }";
80                        }
81                        else echo "{ error:\"". _T('geoportail:pas_autoriser') ."\"}";
82                }
83                else echo "{error:'objet'}";
84        }
85        else echo "{error:'action'}";
86}
87
88?>
Note: See TracBrowser for help on using the repository browser.