Changeset 60882 in spip-zone for _plugins_/gis/trunk/action/editer_gis.php
- Timestamp:
- May 3, 2012, 2:49:11 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/gis/trunk/action/editer_gis.php
r53652 r60882 2 2 3 3 if (!defined("_ECRIRE_INC_VERSION")) return; 4 5 include_spip('inc/autoriser'); 4 6 5 7 function action_editer_gis_dist($arg=null) { … … 18 20 } 19 21 22 /** 23 * Fonction d'insertion d'un gis vide 24 * 25 * @return int/false $id_gis : l'identifiant numérique du point ou false en cas de non création 26 */ 20 27 function insert_gis() { 21 $champs = array(); 22 23 // Envoyer aux plugins 24 $champs = pipeline('pre_insertion', array( 25 'args' => array( 26 'table' => 'spip_gis', 27 ), 28 'data' => $champs 29 )); 30 31 $id_gis = sql_insertq("spip_gis", $champs); 32 return $id_gis; 28 if(autoriser('creer','gis')){ 29 $champs = array(); 30 31 // Envoyer aux plugins 32 $champs = pipeline('pre_insertion', array( 33 'args' => array( 34 'table' => 'spip_gis', 35 ), 36 'data' => $champs 37 )); 38 39 $id_gis = sql_insertq("spip_gis", $champs); 40 41 pipeline('post_insertion', 42 array( 43 'args' => array( 44 'table' => 'spip_gis', 45 'id_objet' => $id_gis 46 ), 47 'data' => $champs 48 ) 49 ); 50 return $id_gis; 51 }else{ 52 return false; 53 } 33 54 } 34 55 35 // Enregistrer certaines modifications d'un gis 56 /** 57 * Enregistrer certaines modifications d'un gis 58 * 59 * @param int $id_gis : l'identifiant numérique du point 60 * @param array $c : un array des valeurs à mettre en base (par défaut false, on récupère les valeurs passées en dans le POST) 61 */ 36 62 function revisions_gis($id_gis, $c=false) { 63 $err = ''; 37 64 // recuperer les champs dans POST s'ils ne sont pas transmis 38 65 if ($c === false) { … … 54 81 $c); 55 82 56 if(intval(_request('id_objet')) && _request('objet')) 57 lier_gis($id_gis, _request('objet'), _request('id_objet')); 83 if ((intval(_request('id_objet')) && _request('objet')) OR (intval($c['id_objet']) && $c['objet'])) { 84 $objet = _request('objet') ? _request('objet') : $c['objet']; 85 $id_objet = _request('id_objet') ? _request('id_objet') : $c['id_objet']; 86 lier_gis($id_gis, $objet, $id_objet); 87 } 88 89 return $err; 58 90 } 59 91 … … 64 96 * @param string $objet Le type de l'objet à lier 65 97 * @param int $id_objet L'identifiant numérique de l'objet lié 98 * 99 * @return bool : true si la liaison s'est bien passée, false à l'inverse 66 100 */ 67 101 function lier_gis($id_gis, $objet, $id_objet){ … … 70 104 AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite 71 105 AND !sql_getfetsel("id_gis", "spip_gis_liens", "id_gis=$id_gis AND id_objet=$id_objet AND objet=".sql_quote($objet)) 106 AND autoriser('lier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet)) 72 107 ) { 73 108 sql_insertq('spip_gis_liens', … … 75 110 'id_objet' => $id_objet, 76 111 'objet' => $objet)); 112 include_spip('inc/invalideur'); 113 suivre_invalideur("id='id_gis/$id_gis'"); 114 return true; 77 115 } 116 return false; 78 117 } 79 118 … … 84 123 * @param string $objet Le type de l'objet à lier 85 124 * @param int $id_objet L'identifiant numérique de l'objet lié 125 * 126 * @return bool : true si la suppression de la liaison s'est bien passée, false à l'inverse 86 127 */ 87 128 function delier_gis($id_gis, $objet, $id_objet){ … … 89 130 if ($id_objet AND $id_gis 90 131 AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite 132 AND autoriser('delier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet)) 91 133 ) { 92 134 sql_delete('spip_gis_liens', "id_gis=$id_gis AND id_objet=$id_objet AND objet=". sql_quote($objet)); 135 include_spip('inc/invalideur'); 136 suivre_invalideur("id='id_gis/$id_gis'"); 137 return true; 93 138 } 94 include_spip('inc/invalideur'); 95 suivre_invalideur("id='id_gis/$id_gis'"); 139 return false; 96 140 } 97 141 142 /** 143 * Supprimer définitivement un point géolocalisé 144 * 145 * @param int $id_gis identifiant numérique du point 146 * @return 0/false 0 si réussite, false dans le cas ou le point n'existe pas 147 */ 98 148 function supprimer_gis($id_gis){ 99 if (intval($id_gis)){ 149 $valide = sql_getfetsel('id_gis','spip_gis','id_gis='.intval($id_gis)); 150 if($valide && autoriser('supprimer','gis',$valide)){ 100 151 sql_delete("spip_gis_liens", "id_gis=".intval($id_gis)); 101 152 sql_delete("spip_gis", "id_gis=".intval($id_gis)); 153 $id_gis = 0; 154 include_spip('inc/invalideur'); 155 suivre_invalideur("id='id_gis/$id_gis'"); 156 return $id_gis; 102 157 } 103 $id_gis = 0; 104 include_spip('inc/invalideur'); 105 suivre_invalideur("id='id_gis/$id_gis'"); 106 return $id_gis; 158 return false; 107 159 } 108 160
Note: See TracChangeset
for help on using the changeset viewer.