[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins / gis / formulaires / editer_gis.php
1 <?php
2
3 if (!defined('_ECRIRE_INC_VERSION')) {
4 return;
5 }
6
7 /**
8 * Formulaire de création et d'édition d'un point géolocalisé
9 */
10
11 include_spip('inc/actions');
12 include_spip('inc/editer');
13
14 /**
15 * Chargement des valeurs par défaut du formulaire
16 *
17 * @param int|string $id_gis Identifiant numérique du point ou 'new' pour un nouveau
18 * @param string $objet Le type d'objet SPIP auquel il est attaché
19 * @param int $id_objet L'id_objet de l'objet auquel il est attaché
20 * @param string $retour L'url de retour
21 * @param string $ajaxload initialiser la carte à chaque onAjaxLoad()
22 * @param array $options TODO à documenter, voir avec l'auteur de https://zone.spip.org/trac/spip-zone/changeset/53906
23 */
24 function formulaires_editer_gis_charger_dist($id_gis = 'new', $objet = '', $id_objet = '', $retour = '', $ajaxload = 'oui', $options = '') {
25 $valeurs = formulaires_editer_objet_charger('gis', $id_gis, '', '', $retour, '');
26 $valeurs['objet'] = $objet;
27 $valeurs['id_objet'] = $id_objet;
28 $valeurs['ajaxload'] = $ajaxload;
29 /* Traitement des options */
30 /* peut etre a envoyer dans une fonction generique de verification des options */
31 if (is_array($options)) {
32 if (is_string($options['titre'])) {
33 $valeurs['titre']=$options['titre'];
34 }
35 if (!$valeurs['lat'] and is_numeric($options['lat'])) {
36 $valeurs['lat']=$options['lat'];
37 }
38 if (!$valeurs['lon'] and is_numeric($options['lon'])) {
39 $valeurs['lon']=$options['lon'];
40 }
41 if (!$valeurs['zoom'] and is_numeric($options['zoom']) && intval($options['zoom']) == $options['zoom']) {
42 $valeurs['zoom']=$options['zoom'];
43 }
44 /* Bounding Box */
45 if (is_numeric($options['sw_lat'])) {
46 $valeurs['sw_lat']=$options['sw_lat'];
47 }
48 if (is_numeric($options['sw_lon'])) {
49 $valeurs['sw_lon']=$options['sw_lon'];
50 }
51 if (is_numeric($options['ne_lat'])) {
52 $valeurs['ne_lat']=$options['ne_lat'];
53 }
54 if (is_numeric($options['ne_lon'])) {
55 $valeurs['ne_lon']=$options['ne_lon'];
56 }
57 }
58 return $valeurs;
59 }
60
61 /**
62 * Vérification des valeurs du formulaire
63 *
64 * 4 champs sont obligatoires :
65 * -* Son titre
66 * -* Sa latitude
67 * -* Sa longitude
68 * -* Son niveau de zoom
69 *
70 * @param int|string $id_gis Identifiant numérique du point ou 'new' pour un nouveau
71 * @param string $objet Le type d'objet SPIP auquel il est attaché
72 * @param int $id_objet L'id_objet de l'objet auquel il est attaché
73 * @param string $retour L'url de retour
74 * @param string $ajaxload initialiser la carte à chaque onAjaxLoad()
75 * @param array $options ???
76 */
77 function formulaires_editer_gis_verifier_dist($id_gis = 'new', $objet = '', $id_objet = '', $retour = '', $ajaxload = 'oui', $options = '') {
78 $erreurs = formulaires_editer_objet_verifier('gis', $id_gis, array('titre', 'lat', 'lon', 'zoom'));
79 return $erreurs;
80 }
81
82 /**
83 * Traitement des valeurs du formulaire
84 *
85 * @param int|string $id_gis Identifiant numérique du point ou 'new' pour un nouveau
86 * @param string $objet Le type d'objet SPIP auquel il est attaché
87 * @param int $id_objet L'id_objet de l'objet auquel il est attaché
88 * @param string $retour L'url de retour
89 * @param string $ajaxload initialiser la carte à chaque onAjaxLoad()
90 * @param array $options ???
91 */
92 function formulaires_editer_gis_traiter_dist($id_gis = 'new', $objet = '', $id_objet = '', $retour = '', $ajaxload = 'oui', $options = '') {
93 if (_request('supprimer')) {
94 include_spip('action/editer_gis');
95 supprimer_gis($id_gis);
96 $id_table_objet = id_table_objet($objet);
97 if ($retour) {
98 $res['redirect'] = parametre_url($retour, $id_table_objet, $id_objet);
99 }
100 return $res;
101 } else {
102 return formulaires_editer_objet_traiter('gis', $id_gis, '', '', $retour, '');
103 }
104 }