[PLUGINS] ~maj globale
[lhc/web/www.git] / www / plugins / gis / action / kml_infos.php
1 <?php
2
3 if (!defined('_ECRIRE_INC_VERSION')) {
4 return;
5 }
6
7 include_spip('inc/charsets'); # pour le nom de fichier
8 include_spip('inc/actions');
9
10 function action_kml_infos_dist() {
11 global $redirect;
12
13 $securiser_action = charger_fonction('securiser_action', 'inc');
14 $arg = $securiser_action();
15
16 if (!preg_match(',^(-?)(\d+)\W(\w+)\W?(\d*)\W?(\d*)$,', $arg, $r)) {
17 spip_log('action_kml_infos_dist incompris: ' . $arg);
18 $redirect = urldecode(_request('redirect'));
19 return;
20 } else {
21 action_kml_infos_post($r);
22 }
23 }
24
25 function action_kml_infos_post($r) {
26 list(, $sign, $id_objet, $objet, $id_document, $suite) = $r;
27
28 if (intval($id_document)) {
29 $recuperer_info = charger_fonction('kml_infos', 'inc');
30 $infos = $recuperer_info($id_document);
31 if ($infos) {
32 include_spip('inc/documents');
33 $fichier = sql_getfetsel('fichier', 'spip_documents', 'id_document='.intval($id_document));
34 if (is_numeric($latitude = $infos['latitude']) and is_numeric($longitude = $infos['longitude'])) {
35 $c = array(
36 'titre' => $infos['titre'] ? $infos['titre'] : basename($fichier),
37 'lat'=> $latitude,
38 'lon' => $longitude,
39 'zoom' => $config['zoom'] ? $config['zoom'] :'4'
40 );
41
42 include_spip('action/editer_gis');
43
44 if ($id_gis = sql_getfetsel('G.id_gis', 'spip_gis AS G LEFT JOIN spip_gis_liens AS T ON T.id_gis=G.id_gis', 'T.id_objet=' . intval($id_document) . " AND T.objet='document'")) {
45 // Des coordonnées sont déjà définies pour ce document => on les update
46 revisions_gis($id_gis, $c);
47 spip_log("GIS EXIFS : Update des coordonnées depuis EXIFS pour le document $id_document => id_gis = $id_gis", 'gis');
48 } else {
49 // Aucune coordonnée n'est définie pour ce document => on les crées
50 $id_gis = insert_gis();
51 revisions_gis($id_gis, $c);
52 lier_gis($id_gis, 'document', $id_document);
53 spip_log("GIS EXIFS : Création des coordonnées depuis EXIFS pour le document $id_document => id_gis = $id_gis", 'gis');
54 }
55 }
56 unset($infos['longitude']);
57 unset($infos['latitude']);
58 if (count($infos) > 0) {
59 include_spip('action/editer_document');
60 document_modifier($id_document, $infos);
61 }
62 }
63 }
64 $redirect = urldecode(_request('redirect'));
65 return $redirect;
66 }