Browse Source

quelques reports des evolutions de la branche v2 entre r51054 et r60879 : a tester.

v3
guy.cesaro@gmail.com 11 years ago
parent
commit
9e3d1c01f7
  1. 19
      .gitattributes
  2. 96
      action/editer_gis.php
  3. 2
      action/editer_lien_gis.php
  4. 2
      action/supprimer_gis.php
  5. 5
      base/gis.php
  6. 64
      crud/gis.php
  7. 4
      formulaires/configurer_gis.html
  8. 92
      gis_autoriser.php
  9. 107
      gis_fonctions.php
  10. 3
      gis_options.php
  11. 26
      gis_pipelines.php
  12. BIN
      images/openlayers/dark/blank.gif
  13. BIN
      images/openlayers/dark/cloud-popup-relative.png
  14. BIN
      images/openlayers/dark/east-mini.png
  15. BIN
      images/openlayers/dark/layer-switcher-maximize.png
  16. BIN
      images/openlayers/dark/layer-switcher-minimize.png
  17. BIN
      images/openlayers/dark/north-mini.png
  18. BIN
      images/openlayers/dark/slider.png
  19. BIN
      images/openlayers/dark/south-mini.png
  20. BIN
      images/openlayers/dark/west-mini.png
  21. BIN
      images/openlayers/dark/zoom-minus-mini.png
  22. BIN
      images/openlayers/dark/zoom-panel.png
  23. BIN
      images/openlayers/dark/zoom-plus-mini.png
  24. BIN
      images/openlayers/dark/zoom-world-mini.png
  25. BIN
      images/openlayers/dark/zoombar.png
  26. 114
      inc/gis_xmlrpc.php
  27. 6
      javascript/gis.js
  28. 2
      json/gis.html
  29. 8
      json/gis_articles.html
  30. 1
      json/gis_articles_plus_sites.html
  31. 8
      json/gis_auteurs.html
  32. 20
      json/gis_evenements.html
  33. 8
      json/gis_mots.html
  34. 8
      json/gis_rubriques.html
  35. 20
      json/gis_sites.html
  36. 9
      lang/gis_fr.php
  37. 62
      modeles/carte_gis.html
  38. 2
      modeles/carte_gis_preview.html
  39. 11
      paquet.xml

19
.gitattributes vendored

@ -5,6 +5,7 @@ action/editer_lien_gis.php -text
action/kml_infos.php -text
action/supprimer_gis.php -text
base/gis.php -text
crud/gis.php -text
formulaires/configurer_gis.html -text
formulaires/configurer_gis.php -text
formulaires/editer_gis.html -text
@ -23,14 +24,32 @@ images/gis-16.png -text
images/gis-24.png -text
images/gis.png -text
images/marker.png -text
images/openlayers/dark/blank.gif -text
images/openlayers/dark/cloud-popup-relative.png -text
images/openlayers/dark/east-mini.png -text
images/openlayers/dark/layer-switcher-maximize.png -text
images/openlayers/dark/layer-switcher-minimize.png -text
images/openlayers/dark/north-mini.png -text
images/openlayers/dark/slider.png -text
images/openlayers/dark/south-mini.png -text
images/openlayers/dark/west-mini.png -text
images/openlayers/dark/zoom-minus-mini.png -text
images/openlayers/dark/zoom-panel.png -text
images/openlayers/dark/zoom-plus-mini.png -text
images/openlayers/dark/zoom-world-mini.png -text
images/openlayers/dark/zoombar.png -text
inc/gis_xmlrpc.php -text
inc/iptc.php -text
inc/kml_infos.php -text
javascript/gis.js -text
json/gis.html -text
json/gis_articles.html -text
json/gis_articles_plus_sites.html -text
json/gis_auteurs.html -text
json/gis_evenements.html -text
json/gis_mots.html -text
json/gis_rubriques.html -text
json/gis_sites.html -text
lang/gis.xml -text
lang/gis_en.php -text
lang/gis_es.php -text

96
action/editer_gis.php

@ -2,6 +2,8 @@
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/autoriser');
function action_editer_gis_dist($arg=null) {
if (is_null($arg)){
$securiser_action = charger_fonction('securiser_action', 'inc');
@ -17,23 +19,48 @@ function action_editer_gis_dist($arg=null) {
return array($id_gis,$err);
}
/**
* Fonction d'insertion d'un gis vide
*
* @return int/false $id_gis : l'identifiant numérique du point ou false en cas de non création
*/
function insert_gis() {
$champs = array();
// Envoyer aux plugins
$champs = pipeline('pre_insertion', array(
'args' => array(
'table' => 'spip_gis',
),
'data' => $champs
));
$id_gis = sql_insertq("spip_gis", $champs);
return $id_gis;
if(autoriser('creer','gis')){
$champs = array();
// Envoyer aux plugins
$champs = pipeline('pre_insertion', array(
'args' => array(
'table' => 'spip_gis',
),
'data' => $champs
));
$id_gis = sql_insertq("spip_gis", $champs);
pipeline('post_insertion',
array(
'args' => array(
'table' => 'spip_gis',
'id_objet' => $id_gis
),
'data' => $champs
)
);
return $id_gis;
}else{
return false;
}
}
// Enregistrer certaines modifications d'un gis
/**
* Enregistrer certaines modifications d'un gis
*
* @param int $id_gis : l'identifiant numérique du point
* @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)
*/
function revisions_gis($id_gis, $c=false) {
$err = '';
// recuperer les champs dans POST s'ils ne sont pas transmis
if ($c === false) {
$c = array();
@ -53,8 +80,13 @@ function revisions_gis($id_gis, $c=false) {
),
$c);
if(intval(_request('id_objet')) && _request('objet'))
lier_gis($id_gis, _request('objet'), _request('id_objet'));
if ((intval(_request('id_objet')) && _request('objet')) OR (intval($c['id_objet']) && $c['objet'])) {
$objet = _request('objet') ? _request('objet') : $c['objet'];
$id_objet = _request('id_objet') ? _request('id_objet') : $c['id_objet'];
lier_gis($id_gis, $objet, $id_objet);
}
return $err;
}
/**
@ -63,18 +95,25 @@ function revisions_gis($id_gis, $c=false) {
* @param int $id_gis identifiant numérique du point
* @param string $objet Le type de l'objet à lier
* @param int $id_objet L'identifiant numérique de l'objet lié
*
* @return bool : true si la liaison s'est bien passée, false à l'inverse
*/
function lier_gis($id_gis, $objet, $id_objet){
//$objet = objet_type($objet);
if ($id_objet AND $id_gis
AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite
AND !sql_getfetsel("id_gis", "spip_gis_liens", "id_gis=$id_gis AND id_objet=$id_objet AND objet=".sql_quote($objet))
AND autoriser('lier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))
) {
sql_insertq('spip_gis_liens',
array('id_gis' => $id_gis,
'id_objet' => $id_objet,
'objet' => $objet));
include_spip('inc/invalideur');
suivre_invalideur("id='id_gis/$id_gis'");
return true;
}
return false;
}
/**
@ -83,27 +122,40 @@ function lier_gis($id_gis, $objet, $id_objet){
* @param int $id_gis identifiant numérique du point
* @param string $objet Le type de l'objet à lier
* @param int $id_objet L'identifiant numérique de l'objet lié
*
* @return bool : true si la suppression de la liaison s'est bien passée, false à l'inverse
*/
function delier_gis($id_gis, $objet, $id_objet){
//$objet = objet_type($objet);
if ($id_objet AND $id_gis
AND preg_match('/^[a-z0-9_]+$/i', $objet) # securite
AND autoriser('delier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))
) {
sql_delete('spip_gis_liens', "id_gis=$id_gis AND id_objet=$id_objet AND objet=". sql_quote($objet));
include_spip('inc/invalideur');
suivre_invalideur("id='id_gis/$id_gis'");
return true;
}
include_spip('inc/invalideur');
suivre_invalideur("id='id_gis/$id_gis'");
return false;
}
/**
* Supprimer définitivement un point géolocalisé
*
* @param int $id_gis identifiant numérique du point
* @return 0/false 0 si réussite, false dans le cas ou le point n'existe pas
*/
function supprimer_gis($id_gis){
if (intval($id_gis)){
$valide = sql_getfetsel('id_gis','spip_gis','id_gis='.intval($id_gis));
if($valide && autoriser('supprimer','gis',$valide)){
sql_delete("spip_gis_liens", "id_gis=".intval($id_gis));
sql_delete("spip_gis", "id_gis=".intval($id_gis));
$id_gis = 0;
include_spip('inc/invalideur');
suivre_invalideur("id='id_gis/$id_gis'");
return $id_gis;
}
$id_gis = 0;
include_spip('inc/invalideur');
suivre_invalideur("id='id_gis/$id_gis'");
return $id_gis;
return false;
}
?>

2
action/editer_lien_gis.php

@ -9,7 +9,7 @@ function action_editer_lien_gis_dist(){
list($action,$id_gis, $objet, $id_objet) = explode('/',$arg);
include_spip('inc/autoriser');
if (intval($id_gis) AND autoriser('modifier','gis',$id_gis,null,null)){
if (intval($id_gis) AND autoriser('lier','gis',$id_gis,$GLOBALS['visiteur_session'],array('objet' => $objet,'id_objet'=>$id_objet))){
include_spip('action/editer_gis');
if ($action == 'lier')
lier_gis($id_gis, $objet, $id_objet);

2
action/supprimer_gis.php

@ -10,7 +10,7 @@ function action_supprimer_gis_dist(){
list($id_gis) = preg_split(',[^0-9],',$arg);
include_spip('inc/autoriser');
if (intval($id_gis) AND autoriser('supprimer','gis',$id_gis,null,null)){
if (intval($id_gis) AND autoriser('supprimer','gis',$id_gis)){
include_spip("action/editer_gis");
supprimer_gis($id_gis);
}

5
base/gis.php

@ -17,6 +17,11 @@ function gis_declarer_tables_interfaces($interface){
$interface['table_des_tables']['gis']='gis';
$interface['table_des_tables']['gis_liens']='gis_liens';
// Traitements typo et raccourcis
$interface['table_des_traitements']['DESCRIPTIF_GIS'][]= _TRAITEMENT_RACCOURCIS;
$interface['table_des_traitements']['VILLE'][]= 'typo(extraire_multi(%s))';
$interface['table_des_traitements']['PAYS'][]= 'typo(extraire_multi(%s))';
return $interface;
}

64
crud/gis.php

@ -0,0 +1,64 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('action/editer_gis');
/**
* Interface C(r)UD pour GIS
*/
/**
* Create :
* Crée un point géolocalisé
*
* @param $dummy
* @param array $set : Le contenu des champs à mettre en base
* @return array : un array avec (bool) success, (string) message et (array) result indiquant l'id créé
*/
function crud_gis_create_dist($dummy,$set=null){
if ($id = insert_gis()){
list($e,$ok) = revisions_gis($id,$set);
}
else{
$e = _L('create error');
}
return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
}
/**
* Update :
* Met à jour un point géolocalisé
*
* @param $dummy
* @param array $set : Le contenu des champs à mettre en base
* @return array : un array avec (bool) success, (string) message et (array) result indiquant l'id créé
*/
function crud_gis_update_dist($id,$set=null){
$id_gis = sql_getfetsel('id_gis','spip_gis','id_gis='.intval($id));
if(!$id_gis){
$e = _T('gis:erreur_gis_inconnu',array('id'=>$id));
}else if(autoriser('modifier','gis',$id)){
list($e,$ok) = revisions_gis($id,$set);
}else{
$e = _L('update error');
}
return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
}
/**
* Delete :
* Supprime un point géolocalisé
*
* @param $dummy
* @param int $id : L'identifiant numérique du point à supprimer
* @return array : un array avec (bool) success, (string) message et (array) result indiquant l'id supprimé
*/
function crud_gis_delete_dist($id){
if(autoriser('supprimer','gis',$id)){
list($e,$ok) = supprimer_gis($id);
}
return array('success'=>$e?false:true,'message'=>$e?$e:$ok,'result'=>array('id'=>$id));
}
?>

4
formulaires/configurer_gis.html

@ -131,6 +131,8 @@
var init_config = function() {
var map;
var map_container = 'map_config';
// ne pas doublonner la carte quand on passe plusieurs fois dans ajaxload, pas propre mais bon...
$('#map_config').empty();
map = new mxn.Mapstraction(map_container,'[(#REM|gis_api_utilisee)]');
map.setCenterAndZoom(new mxn.LatLonPoint(#ENV{lat,0},#ENV{lon,0}),#ENV{zoom,0});
// Pour l'API Openlayers, la methode n'existe pas
@ -170,7 +172,7 @@
}
var geocoders = ['cartociudad','google','googlev3','yandex'];
var geocoders = ['cartociudad','google','googlev3','yandex','openlayers'];
var show_geocoder = function(){
if(($.inArray($('#champ_api').val(),geocoders) >= 0) && $('li.editer_geocoder').is(':hidden')){

92
gis_autoriser.php

@ -1,9 +1,44 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
function gis_autoriser(){};
/**
* Autorisation a modifier le logo d'un point
* Si on est autorisé à modifier le point en question
*
* @param string $faire L'action
* @param string $type Le type d'objet
* @param int $id L'identifiant numérique de l'objet
* @param array $qui Les informations de session de l'auteur
* @param array $opt Des options
* @return boolean true/false
*/
function autoriser_gis_iconifier_dist($faire,$quoi){
return autoriser('modifier','gis',$id,$qui,$opts);
}
/**
* Autorisation a modifier un point
* Avoir un statut dans les 3 fournis par SPIP
* (On n'a pas d'auteur pour un point ...)
*
* @param string $faire L'action
* @param string $type Le type d'objet
* @param int $id L'identifiant numérique de l'objet
* @param array $qui Les informations de session de l'auteur
* @param array $opt Des options
* @return boolean true/false
*/
function autoriser_gis_modifier_dist($faire,$quoi,$id,$qui,$opts){
return (in_array($qui['statut'],array('0minirezo','1comite','6forum')));
}
/**
* Autorisation a creer un point
* Avoir un statut dans les 3 fournis par SPIP
* (On n'a pas d'auteur pour un point ...)
*
* @param string $faire L'action
* @param string $type Le type d'objet
@ -12,8 +47,61 @@ function gis_autoriser(){};
* @param array $opt Des options
* @return boolean true/false
*/
function autoriser_gis_iconifier_dist($faire,$quoi,$id,$qui,$opts){
return (($qui['statut'] == '0minirezo') AND !$qui['restreint']);
function autoriser_gis_creer_dist($faire,$quoi,$id,$qui,$opts){
return (in_array($qui['statut'],array('0minirezo','1comite','6forum')));
}
/**
* Autorisation a lier un point d'un objet
* Un auteur peut lier un point à un autre objet que s'il peut modifier l'objet à lier en question
*
* @param string $faire L'action
* @param string $type Le type d'objet
* @param int $id L'identifiant numérique de l'objet
* @param array $qui Les informations de session de l'auteur
* @param array $opt Des options
* @return boolean true/false
*/
function autoriser_gis_lier_dist($faire,$quoi,$id,$qui,$opts){
if(is_array($opts) && isset($opts['objet']) && isset($opts['id_objet'])){
return autoriser('modifier',$opts['objet'],$opts['id_objet'],$qui);
}
return false;
}
/**
* Autorisation a délier un point d'un objet
* Un auteur peut délier un point à un autre objet que s'il peut modifier l'objet à lier en question
*
* @param string $faire L'action
* @param string $type Le type d'objet
* @param int $id L'identifiant numérique de l'objet
* @param array $qui Les informations de session de l'auteur
* @param array $opt Des options
* @return boolean true/false
*/
function autoriser_gis_delier_dist($faire,$quoi,$id,$qui,$opts){
return autoriser('lier','gis',$id,$qui,$opts);
}
/**
* Autorisation a supprimer un point
* Un auteur peut supprimer un point s'il peut délier tous les objets et modifier le point
*
* @param string $faire L'action
* @param string $type Le type d'objet
* @param int $id L'identifiant numérique de l'objet
* @param array $qui Les informations de session de l'auteur
* @param array $opt Des options
* @return boolean true/false
*/
function autoriser_gis_supprimer_dist($faire,$quoi,$id,$qui,$opts){
$liaisons = sql_select('*','spip_gis_liens','id_gis='.intval($id));
while($liaison = sql_fetch($liaisons)){
if(!autoriser('delier','gis',$liaison['id_gis'],$qui,$liaison)){
return false;
}
}
return autoriser('modifier','gis',$id,$qui,$opts);
}
?>

107
gis_fonctions.php

@ -76,37 +76,66 @@ function distance($from,$to,$miles=false) {
function critere_gis_dist($idb, &$boucles, $crit) {
$boucle = &$boucles[$idb];
$id = $boucle->primary;
$id_table = $boucle->id_table; // articles
$primary = $boucle->primary; // id_article
$objet = objet_type($id_table); // article
// exclure l'élément en cours des résultats
$id_gis = calculer_argument_precedent($idb,$id, $boucles);
$boucle->where[]= array("'!='", "'$boucle->id_table." . "$id'", $id_gis);
// récupérer les paramètres du critère
$op='';
$params = $crit->param;
$type = array_shift($params);
$type = $type[0]->texte;
if(preg_match(',^(\w+)([<>=]+)([0-9]+)$,',$type,$r)){
$type=$r[1];
$op=$r[2];
$op_val=$r[3];
if ($id_table == 'gis') {
// exclure l'élément en cours des résultats
$id_gis = calculer_argument_precedent($idb,$primary, $boucles);
$boucle->where[]= array("'!='", "'$boucle->id_table." . "$primary'", $id_gis);
// récupérer les paramètres du critère
$op='';
$params = $crit->param;
$type = array_shift($params);
$type = $type[0]->texte;
if(preg_match(',^(\w+)([<>=]+)([0-9]+)$,',$type,$r)){
$type=$r[1];
$op=$r[2];
$op_val=$r[3];
}
if ($op)
$boucle->having[]= array("'".$op."'", "'".$type."'",$op_val);
// récupérer lat/lon du point de la boucle englobante
$lat = calculer_argument_precedent($idb,'lat', $boucles);
$lon = calculer_argument_precedent($idb,'lon', $boucles);
// http://www.awelty.fr/developpement-web/php/
// http://www.movable-type.co.uk/scripts/latlong-db.html
// http://code.google.com/intl/fr/apis/maps/articles/geospatial.html#geospatial
$select = "(6371 * acos( cos( radians(\".$lat.\") ) * cos( radians( gis.lat ) ) * cos( radians( gis.lon ) - radians(\".$lon.\") ) + sin( radians(\".$lat.\") ) * sin( radians( gis.lat ) ) ) ) AS distance";
$order = "'distance'";
$boucle->select[]= $select;
$boucle->order[]= $order;
} else {
// ajouter tous les champs du point au select
// et les suffixer pour lever toute ambiguite avec des champs homonymes
$boucle->select[]= 'gis.titre AS titre_gis';
$boucle->select[]= 'gis.descriptif AS descriptif_gis';
$boucle->select[]= 'gis.adresse AS adresse_gis';
$boucle->select[]= 'gis.pays AS pays_gis';
$boucle->select[]= 'gis.code_pays AS code_pays_gis';
$boucle->select[]= 'gis.region AS region_gis';
$boucle->select[]= 'gis.ville AS ville_gis';
$boucle->select[]= 'gis.code_postal AS code_postal_gis';
// jointure sur spip_gis_liens/spip_gis
// cf plugin notation
// $boucle->join["surnom (as) table de liaison"] = array("surnom de la table a lier", "cle primaire de la table de liaison", "identifiant a lier", "type d'objet de l'identifiant");
$boucle->from['gis_liens'] = 'spip_gis_liens';
$boucle->join['gis_liens']= array("'$id_table'","'id_objet'","'$primary'","'gis_liens.objet='.sql_quote('$objet')");
$boucle->from['gis'] = 'spip_gis';
$boucle->join['gis']= array("'gis_liens'","'id_gis'");
// bien renvoyer tous les points qui son attachés à l'objet
$boucle->group[] = 'gis_liens.id_gis';
// ajouter gis aux jointures et spécifier les jointures explicites pour pouvoir utiliser les balises de la table de jointure
// permet de passer dans trouver_champ_exterieur() depuis index_tables_en_pile()
// cf http://article.gmane.org/gmane.comp.web.spip.zone/6628
$boucle->jointures[] = 'gis';
$boucle->jointures_explicites = 'gis_liens gis';
}
if ($op)
$boucle->having[]= array("'".$op."'", "'".$type."'",$op_val);
// récupérer lat/lon du point de la boucle englobante
$lat = calculer_argument_precedent($idb,'lat', $boucles);
$lon = calculer_argument_precedent($idb,'lon', $boucles);
// http://www.awelty.fr/developpement-web/php/
// http://www.movable-type.co.uk/scripts/latlong-db.html
// http://code.google.com/intl/fr/apis/maps/articles/geospatial.html#geospatial
$select = "(6371 * acos( cos( radians(\".$lat.\") ) * cos( radians( gis.lat ) ) * cos( radians( gis.lon ) - radians(\".$lon.\") ) + sin( radians(\".$lat.\") ) * sin( radians( gis.lat ) ) ) ) AS distance";
$order = "'distance'";
$boucle->select[]= $select;
$boucle->order[]= $order;
}
@ -120,6 +149,26 @@ function balise_distance_dist($p) {
return rindex_pile($p, 'distance', 'gis');
}
/**
* Balise #TITRE_GIS : retourne le titre du point
* Necessite le critere {gis} sur la boucle
*
* @param unknown_type $p
*/
function balise_titre_gis_dist($p) {
return rindex_pile($p, 'titre_gis', 'gis');
}
/**
* Balise #DESCRIPTIF_GIS : retourne le descriptif du point
* Necessite le critere {gis} sur la boucle
*
* @param unknown_type $p
*/
function balise_descriptif_gis_dist($p) {
return rindex_pile($p, 'descriptif_gis', 'gis');
}
/**
* Définition de l'API à utiliser en prenant compte les defines
*/

3
gis_options.php

@ -4,9 +4,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
define('_DIR_LIB_GIS','lib/mxn-gis-2.2.2/');
$table_des_traitements['VILLE'][]= 'typo(extraire_multi(%s))';
$table_des_traitements['PAYS'][]= 'typo(extraire_multi(%s))';
$GLOBALS['logo_libelles']['id_gis'] = _T('gis:libelle_logo_gis');
?>

26
gis_pipelines.php

@ -38,7 +38,7 @@ function gis_inserer_javascript($flux){
$flux .="\n".'<script type="text/javascript" src="http://api-maps.yandex.ru/1.1/index.xml?key='.$config['api_key_yandex'].'"></script>'."\n";
// insertion de la lib mapstraction
if(in_array($config['api'],array('cartociudad','google','googlev3','yandex'))){
if(in_array($config['api'],array('cartociudad','google','googlev3','yandex','openlayers'))){
$geocoder = ($config['geocoder']) ? ',[geocoder]' : '';
}else{
$geocoder = '';
@ -281,4 +281,28 @@ function gis_taches_generales_cron($taches_generales){
return $taches_generales;
}
/**
* Insertion dans le pipeline xmlrpc_methodes (xmlrpc)
* Ajout de méthodes xml-rpc spécifiques à GIS
*
* @param array $flux : un array des methodes déjà présentes, fonctionnant sous la forme :
* -* clé = nom de la méthode;
* -* valeur = le nom de la fonction à appeler;
* @return array $flux : l'array complété avec nos nouvelles méthodes
*/
function gis_xmlrpc_methodes($flux){
$flux['spip.liste_gis'] = 'spip_liste_gis';
$flux['spip.lire_gis'] = 'spip_lire_gis';
return $flux;
}
/**
* Insertion dans le pipeline xmlrpc_server_class (xmlrpc)
* Ajout de fonctions spécifiques utilisés par le serveur xml-rpc
*/
function gis_xmlrpc_server_class($flux){
include_spip('inc/gis_xmlrpc');
return $flux;
}
?>

BIN
images/openlayers/dark/blank.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 B

BIN
images/openlayers/dark/cloud-popup-relative.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
images/openlayers/dark/east-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

BIN
images/openlayers/dark/layer-switcher-maximize.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 B

BIN
images/openlayers/dark/layer-switcher-minimize.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

BIN
images/openlayers/dark/north-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

BIN
images/openlayers/dark/slider.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

BIN
images/openlayers/dark/south-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 B

BIN
images/openlayers/dark/west-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 B

BIN
images/openlayers/dark/zoom-minus-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

BIN
images/openlayers/dark/zoom-panel.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

BIN
images/openlayers/dark/zoom-plus-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

BIN
images/openlayers/dark/zoom-world-mini.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 B

BIN
images/openlayers/dark/zoombar.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 B

114
inc/gis_xmlrpc.php

@ -0,0 +1,114 @@
<?php
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Récupère la liste des points géolocalisés
*
* Arguments possibles :
* -* login string
* -* pass string
* -* objet string : le type d'objets liés
* -* id_objet int : l'identifiant numérique de l'objet lié
* -* where array : conditions à ajouter dans la clause where du select
* -* tri array : les éléments de tri
* -** Si 'distance' dans le tri
* -*** lat float : la latitude à partir de laquelle chercher
* -*** lon float : la longitude à partir de laquelle chercher
* -* limite int : le nombre d'éléments maximum à retourner
*/
function spip_liste_gis($args) {
global $spip_xmlrpc_serveur;
if(!$spip_xmlrpc_serveur)
return false;
$objet = 'gis';
$what[] = 'gis.id_gis';
$from = 'spip_gis as gis LEFT JOIN spip_gis_liens as lien ON gis.id_gis=lien.id_gis';
$where = is_array($args['where']) ? $args['where'] : array();
$order = is_array($args['tri']) ? $args['tri'] : array();
if((intval($args['id_objet']) > 0) && $args['objet']){
$where[] = 'lien.id_objet='.intval($args['id_objet']).' AND lien.objet='.sql_quote($args['objet']);
}
if(in_array('distance',$order)){
$distance = true;
$lat = $args['lat'];
$lon = $args['lon'];
if(!is_numeric($lon) OR !is_numeric($lat)){
$erreur = _T('gis:erreur_xmlrpc_lat_lon');
return new IXR_Error(-32601, attribut_html($erreur));
}else{
$what[] = "(6371 * acos( cos( radians(\"$lat\") ) * cos( radians( gis.lat ) ) * cos( radians( gis.lon ) - radians(\"$lon\") ) + sin( radians(\"$lat\") ) * sin( radians( gis.lat ) ) ) ) AS distance";
}
}
/**
* Une recherche
*/
if(is_string($args['recherche']) AND strlen($args['recherche']) > 3){
$prepare_recherche = charger_fonction('prepare_recherche', 'inc');
list($rech_select, $rech_where) = $prepare_recherche($args['recherche'], $objet.'s', $where);
$what[] = $rech_select;
$from .= ' INNER JOIN spip_resultats AS resultats ON ( resultats.id = gis.id_gis ) ';
$where[] = 'resultats.'.$rech_where;
}
$points_struct = array();
if($points = sql_select($what,$from,$where,'',$order,$args['limite'])){
while($point = sql_fetch($points)){
$struct=array();
$args['id_gis'] = $point['id_gis'];
/**
* On utilise la fonction geodiv_lire_media pour éviter de dupliquer trop de code
*/
$struct = spip_lire_gis($args);
if($distance)
$struct['distance'] = $point['distance'];
$points_struct[] = $struct;
}
}
return $points_struct;
}
/**
* Récupère le contenu d'un point géolocalisé
*
* Arguments possibles :
* -* login
* -* pass
* -* id_gis (Obligatoire)
*/
function spip_lire_gis($args){
global $spip_xmlrpc_serveur;
if(!$spip_xmlrpc_serveur)
return false;
if(!intval($args['id_gis']) > 0){
$erreur = _T('xmlrpc:erreur_identifiant',array('objet'=>'gis'));
return new IXR_Error(-32601, attribut_html($erreur));
}
$args_gis = array('objet'=>'gis','id_objet'=>$args['id_gis']);
$res = $spip_xmlrpc_serveur->read($args_gis);
if(!$res)
return $spip_xmlrpc_serveur->error;
if(autoriser('modifier','gis',$args['id_gis'],$GLOBALS['visiteur_session']))
$res['result'][0]['modifiable'] = 1;
else
$res['result'][0]['modifiable'] = 0;
$logo = quete_logo('id_gis','on', $res['result'][0]['id_gis'], '', false);
if(is_array($logo))
$res['result'][0]['logo'] = url_absolue($logo[0]);
$gis_struct = $res['result'][0];
$gis_struct = array_map('texte_backend',$gis_struct);
return $gis_struct;
}
?>

6
javascript/gis.js

@ -8,7 +8,7 @@ var gis_get_navigator_location = function(map,zoom){
function gis_close_infowindows(map) {
var map = eval('map'+ map);
for (i in map.markers) {
for (var i = 0; i < map.markers.length; i++) {
map.markers[i].closeBubble();
}
}
@ -16,7 +16,7 @@ function gis_close_infowindows(map) {
function gis_focus_marker(id, map) {
var mxn = eval('map'+ map);
gis_close_infowindows(map);
for (i in mxn.markers) {
for (var i = 0; i < mxn.markers.length; i++) {
if (mxn.markers[i].attributes.marker == id) {
mxn.setCenter(mxn.markers[i].location);
mxn.markers[i].openBubble();
@ -26,7 +26,7 @@ function gis_focus_marker(id, map) {
function gis_autofocus_marker(map) {
var mxn = eval('map'+ map);
for (i in mxn.markers) {
for (var i = 0; i < mxn.markers.length; i++) {
mxn.markers[i].openInfoBubble.addHandler(function(name, source, args) {
gis_close_infowindows(map);
});

2
json/gis.html

@ -2,7 +2,7 @@
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE|supprimer_numero|json_encode)],
"title":[(#TITRE*|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]

8
json/gis_articles.html

@ -1,9 +1,9 @@
<BOUCLE_art(ARTICLES){id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_article}{","}>
<BOUCLE_art(ARTICLES){gis}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE|sinon{#_art:TITRE}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF|sinon{#_art:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
"title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]
[(#LOGO_GIS|non)
@ -17,4 +17,4 @@
[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
"icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)],
"icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)]
]}</BOUCLE_gis></BOUCLE_art>
]}</BOUCLE_art>

1
json/gis_articles_plus_sites.html

@ -0,0 +1 @@
#INCLURE{fond=json/gis_articles,env}#INCLURE{fond=json/gis_sites,env}

8
json/gis_auteurs.html

@ -1,9 +1,9 @@
<BOUCLE_auteurs(AUTEURS){id_article ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_auteur}{","}>
<BOUCLE_auteurs(AUTEURS){gis}{id_article ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE|sinon{#_auteurs:NOM}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF|sinon{#_auteurs:BIO}|json_encode)][(#SET{logo_doc,''})]
"title":[(#TITRE_GIS*|sinon{#NOM*}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF_GIS|sinon{#BIO}|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]
[(#LOGO_GIS|non)
@ -17,4 +17,4 @@
[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
"icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)],
"icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)]
]}</BOUCLE_gis></BOUCLE_auteurs>
]}</BOUCLE_auteurs>

20
json/gis_evenements.html

@ -0,0 +1,20 @@
<BOUCLE_events(EVENEMENTS){gis}{id_evenement ?}{id_article ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{id_auteur ?}{recherche ?}{0, #ENV{limit}}{","}>
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]
[(#LOGO_GIS|non)
[(#CHEMIN{images/marker_defaut.png}|oui)
[(#SET{logo_doc,#CHEMIN{images/marker_defaut.png}|image_passe_partout{32,32}|image_recadre{32,32}})]
]]
[(#GET{logo_doc}|oui)
#SET{icon_w,#GET{logo_doc}|extraire_attribut{src}|largeur}
#SET{icon_h,#GET{logo_doc}|extraire_attribut{src}|hauteur}
#SET{icon_anchorPoint,''}
[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
"icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)],
"icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)]
]}</BOUCLE_events>

8
json/gis_mots.html

@ -1,9 +1,9 @@
<BOUCLE_mots(MOTS){id_mot ?}{id_groupe ?}{id_article ?}{id_rubrique ?}{id_breve ?}{id_syndic ?}{id_forum ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_mot}{","}>
<BOUCLE_mots(MOTS){gis}{id_mot ?}{id_groupe ?}{id_article ?}{id_rubrique ?}{id_breve ?}{id_syndic ?}{id_forum ?}{recherche ?}{0, #ENV{limit}}{","}>
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE|sinon{#_mots:TITRE}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF|sinon{#_mots:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
"title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]
[(#LOGO_GIS|non)
@ -17,4 +17,4 @@
[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
"icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)],
"icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)]
]}</BOUCLE_gis></BOUCLE_mots>
]}</BOUCLE_mots>

8
json/gis_rubriques.html

@ -1,9 +1,9 @@
<BOUCLE_rub(RUBRIQUES){id_rubrique ?}{id_secteur ?}{id_parent?=#ENV{id_parent}}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}><BOUCLE_gis(GIS){id_rubrique}{","}>
<BOUCLE_rub(RUBRIQUES){gis}{id_rubrique ?}{id_secteur ?}{id_parent?=#ENV{id_parent}}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}>
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE|sinon{#_rub:TITRE}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF|sinon{#_rub:DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
"title":[(#TITRE_GIS*|sinon{#TITRE*}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]
[(#LOGO_GIS|non)
@ -17,4 +17,4 @@
[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
"icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)],
"icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)]
]}</BOUCLE_gis></BOUCLE_rub>
]}</BOUCLE_rub>

20
json/gis_sites.html

@ -0,0 +1,20 @@
<BOUCLE_sit(SITES){gis}{id_syndic ?}{id_rubrique ?}{id_secteur ?}{id_mot ?}{recherche ?}{0, #ENV{limit}}{","}>
{"type": "Feature",
"geometry": {"type": "Point", "coordinates": [#LON, #LAT]},
"id":"#ID_GIS",
"title":[(#TITRE_GIS*|sinon{#NOM_SITE*}|supprimer_numero|json_encode)],
"description":[(#DESCRIPTIF_GIS|sinon{#DESCRIPTIF}|json_encode)][(#SET{logo_doc,''})]
[(#LOGO_GIS|oui)
[(#SET{logo_doc,#LOGO_GIS|image_passe_partout{32,32}|image_recadre{32,32}})]]
[(#LOGO_GIS|non)
[(#CHEMIN{images/marker_defaut.png}|oui)
[(#SET{logo_doc,#CHEMIN{images/marker_defaut.png}|image_passe_partout{32,32}|image_recadre{32,32}})]
]]
[(#GET{logo_doc}|oui)
#SET{icon_w,#GET{logo_doc}|extraire_attribut{src}|largeur}
#SET{icon_h,#GET{logo_doc}|extraire_attribut{src}|hauteur}
#SET{icon_anchorPoint,''}
[,"icon": (#GET{logo_doc}|extraire_attribut{src}|url_absolue|json_encode)],
"icon_size": [(#VAL{91}|chr)]#GET{icon_w},#GET{icon_h}[(#VAL{93}|chr)],
"icon_anchor": [(#VAL{91}|chr)][(#GET{icon_w}|div{2})],[(#GET{icon_h})][(#VAL{93}|chr)]
]}</BOUCLE_sit>

9
lang/gis_fr.php

@ -15,13 +15,13 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'bouton_supprimer_lien' => 'Supprimer ce lien',
// C
'cfg_descr_gis' => 'Système d\'Information Géographique.<br /><a href="http://www.spip-contrib.net/3887">Accéder la documentation</a>.',
'cfg_descr_gis' => 'Système d\'Information Géographique.<br /><a href="http://www.spip-contrib.net/3887" class="spip_out">Accéder la documentation</a>.',
'cfg_inf_adresse' => 'Affiche des champs supplémentaires d\'adresse (pays, ville, région, adresse...)',
'cfg_inf_cloudmade' => 'Cette API nécessite une clé à créer sur <a href=\'@url@\'>le site de CloudMade</a>.',
'cfg_inf_cloudmade' => 'Cette API nécessite une clé à créer sur <a href=\'@url@\' class="spip_out">le site de CloudMade</a>.',
'cfg_inf_geocoder' => 'Activer les fonctions du geocoder (recherche à partir d\'une adresse, récupération de l\'adresse à partir des coordonnées).',
'cfg_inf_geolocaliser_user_html5' => 'Si le navigateur de l\'utilisateur le permet, son emplacement géographique approximatif est récupéré pour donner la position par défaut lors de la création d\'un point.',
'cfg_inf_google' => 'Cette API nécessite une clé à créer sur <a href=\'@url@\'>le site de GoogleMaps</a>.',
'cfg_inf_yandex' => 'Cette API nécessite une clé à créer sur <a href=\'@url@\'>le site de Yandex</a>.',
'cfg_inf_google' => 'Cette API nécessite une clé à créer sur <a href=\'@url@\' class="spip_out">le site de GoogleMaps</a>.',
'cfg_inf_yandex' => 'Cette API nécessite une clé à créer sur <a href=\'@url@\' class="spip_out">le site de Yandex</a>.',
'cfg_lbl_activer_objets' => 'Activer la géolocalisation sur les contenus :',
'cfg_lbl_adresse' => 'Afficher les champs d\'adresse',
'cfg_lbl_api' => 'API de cartographie',
@ -51,6 +51,7 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'editer_gis_nouveau' => 'Créer un nouveau point',
'editer_gis_titre' => 'Les points géolocalisés',
'erreur_recherche_pas_resultats' => 'Aucun point ne correspond à la recherche.',
'erreur_xmlrpc_lat_lon' => 'La latitude et la longitude doivent être passées en argument',
'explication_api_forcee' => 'L\'API est imposée par un autre plugin ou squelette.',
'explication_maptype_force' => 'Le fond cartographique est imposé par un autre plugin ou squelette.',

62
modeles/carte_gis.html

@ -30,6 +30,7 @@
- kml = 12 kml à superposer à la carte (id_document ou url)
- localize_visitor|localiser_visiteur = oui centrer la carte sur la position du visiteur (API geolocation HTML5)
- point = non si elle vaut "non" cette option n'affichera pas de points du tout (utile pour n'afficher qu'un kml par exemple)
- ajaxload = non si elle vaut "non" cette option désactive l'init de la carte sur l'event ajaxload
]
@ -111,40 +112,51 @@ var map[(#GET{id})];
catch(err) {
;
}
#SET{map_controls,#ARRAY}
[(#ENV{no_control,#ENV{aucun_controle}}|!={oui}|oui)
map[(#GET{id})].addControls({zoom: '[(#ENV{control_zoom,large})]'});]
[(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{zoom,#ENV{control_zoom,large}}}})]
]
[(#ENV{overview}|oui)
map[(#GET{id})].addControls({overview: true});]
[(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{overview,true}}})]
]
[(#ENV{scale}|oui)
map[(#GET{id})].addControls({scale: true});]
[(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{scale,true}}})]
]
[(#ENV{control_type,#ENV{controle_type}}|!={non}|oui)
map[(#GET{id})].addControls({map_type: true});]
[(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{map_type,true}}})]
]
[(#ENV{control_pan,#ENV{controle_pan}}|!={non}|oui)
[(#SET{map_controls,#GET{map_controls}|array_merge{#ARRAY{pan,true}}})]
]
map[(#GET{id})].addControls([(#GET{map_controls}|json_encode)]);
[(#ENV{control_pan,#ENV{controle_pan}}|!={non}|oui)
map[(#GET{id})].addControls({pan: true});]
[(#ENV{point}|!={non}|oui)
jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]",
{[
objets : "(#ENV{objets,#ENV{class}})",][
id_rubrique : (#ENV{id_rubrique}),][
id_secteur : (#ENV{id_secteur}),][
id_parent : (#ENV{id_parent}),][
id_article : (#ENV{id_article}),][
id_breve : (#ENV{id_breve}),][
id_document : (#ENV{id_document}),][
id_mot : (#ENV{id_mot}),][
id_groupe : (#ENV{id_groupe}),][
id_auteur : (#ENV{id_auteur}),][
id_syndic : (#ENV{id_syndic}),][
id_forum : (#ENV{id_forum}),][
id_gis : (#ENV{id_gis}),][
objets : "(#ENV{objets,#ENV{class}}|trim)",][
id_rubrique : (#ENV{id_rubrique}|trim),][
id_secteur : (#ENV{id_secteur}|trim),][
id_parent : (#ENV{id_parent}|trim),][
id_article : (#ENV{id_article}|trim),][
id_breve : (#ENV{id_breve}|trim),][
id_document : (#ENV{id_document}|trim),][
id_mot : (#ENV{id_mot}|trim),][
id_groupe : (#ENV{id_groupe}|trim),][
id_auteur : (#ENV{id_auteur}|trim),][
id_syndic : (#ENV{id_syndic}|trim),][
id_forum : (#ENV{id_forum}|trim),][
id_evenement : (#ENV{id_evenement}|trim),][
id_gis : (#ENV{id_gis}|trim),][
recherche : "(#ENV{recherche})",][
limit : (#ENV{limit,#ENV{limite,500}})]
mots : (#ENV{mots}|?{[(#ENV{mots}|trim|json_encode)],''}),][
limit : (#ENV{limit,#ENV{limite,500}}|trim)]
},
function(data) {
if (data){
@ -184,7 +196,7 @@ var map[(#GET{id})];
$(function(){
init_map[(#GET{id})]();
onAjaxLoad(init_map[(#GET{id})]);
[(#ENV{ajaxload}|!={non}|oui)onAjaxLoad(init_map[(#GET{id})]);]
});
})(jQuery);

2
modeles/carte_gis_preview.html

@ -11,6 +11,8 @@ var cloudmade_key = '#CONFIG{gis/api_key_cloudmade}';]
var map_preview;
var map_preview_container = 'map_preview';
var marker;
// ne pas doublonner la carte quand on passe plusieurs fois dans ajaxload, pas propre mais bon...
$('#map_preview').empty();
map_preview = new mxn.Mapstraction(map_preview_container,'[(#REM|gis_api_utilisee)]');
// Pour l'API Openlayers, la methode n'existe pas
try {

11
paquet.xml

@ -1,7 +1,7 @@
<paquet
prefix="gis"
categorie="divers"
version="3.2.3"
version="3.3.0"
schema="2.0.2"
etat="test"
compatibilite="[3.0.0-dev;3.0.*["
@ -73,7 +73,14 @@
nom="saisies_autonomes"
inclure="gis_pipelines.php"
/>
<pipeline
nom="xmlrpc_methodes"
inclure="gis_pipelines.php"
/>
<pipeline
nom="xmlrpc_server_class"
inclure="gis_pipelines.php"
/>
<menu nom="gis_tous" titre="gis:icone_gis_tous" parent="menu_edition" icone="images/gis-16.png" />
<menu nom="configurer_gis" titre="gis:cfg_titre_gis" parent="menu_configuration" icone="images/gis-16.png" />
<menu nom="gis_nouveau" titre="gis:editer_gis_nouveau" parent="outils_rapides" icone="images/gis-new-16.png" action="gis_edit" parametres="new=oui" />

Loading…
Cancel
Save