Changeset 48696 in spip-zone


Ignore:
Timestamp:
Jun 10, 2011, 2:36:54 PM (10 years ago)
Author:
brunobergot@…
Message:

et hop, voilà GIS 2 (qui comme l'indique son état est encore en dev)

Location:
_plugins_/gis/trunk
Files:
44 added
18 deleted
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/gis/trunk/base/gis.php

    r35038 r48696  
    11<?php
    2 /*
    3  * Spip Gis plugin
    4  * Insetar google maps en SPIP
    5  *
    6  * Autores :
    7  * Horacio Gonz‡lez, Berio Molina
    8  * (c) 2007 - Distribu’do baixo licencia GNU/GPL
    9  *
    10  */
    112
    12 global $tables_principales;
    13 global $tables_auxiliaires;
     3if (!defined("_ECRIRE_INC_VERSION")) return;
    144
    15 //taboa gis  ------------------------------------------
    16 $spip_gis = array(
    17         "id_gis"        => "bigint(21) NOT NULL",
    18         "id_article" => "int(11) NULL NULL",
    19         "id_rubrique" => "int(11) NULL NULL",
    20         "lat" => "float(21)  NULL NULL",
    21         "lonx" => "float(21)  NULL NULL",
    22         "zoom" => "tinyint(4)  NULL NULL",
    23         "pays" => "text NOT NULL DEFAULT ''",
    24         "code_pays" => "varchar(255) NOT NULL DEFAULT ''",
    25         "region" => "text NOT NULL DEFAULT ''",
    26         "ville" => "text NOT NULL DEFAULT ''",
    27         "code_postal" => "varchar(255) NOT NULL DEFAULT ''"
    28         );
     5function gis_declarer_tables_interfaces($interface){
     6        $interface['tables_jointures']['spip_gis'][] = 'gis_liens';
     7        $interface['tables_jointures']['spip_gis_liens'][] = 'gis';
     8        $interface['tables_jointures']['spip_articles'][] = 'gis_liens';
     9        $interface['tables_jointures']['spip_auteurs'][] = 'gis_liens';
     10        $interface['tables_jointures']['spip_breves'][] = 'gis_liens';
     11        $interface['tables_jointures']['spip_documents'][] = 'gis_liens';
     12        $interface['tables_jointures']['spip_groupes_mots'][] = 'gis_liens';
     13        $interface['tables_jointures']['spip_mots'][] = 'gis_liens';
     14        $interface['tables_jointures']['spip_rubriques'][] = 'gis_liens';
     15        $interface['tables_jointures']['spip_syndic'][] = 'gis_liens';
    2916       
    30 $spip_gis_key = array(
    31         "PRIMARY KEY" => "id_gis",
    32         "KEY id_article" => "id_article",
    33         "KEY id_rubrique" => "id_rubrique"
    34         );
    35 $spip_gis_join = array(
    36         "id_article"=>"id_article",
    37         "id_rubrique"=>"id_rubrique",
    38         );
     17        $interface['table_des_tables']['gis']='gis';
     18        $interface['table_des_tables']['gis_liens']='gis_liens';
    3919
    40 $tables_principales['spip_gis'] = array(
    41         'field' => &$spip_gis,
    42         'key' => &$spip_gis_key,
    43         'joint' => &$spip_gis_join
    44         );
    45 //------------------------------------------------------       
    46 //taboa gis_mots  --------------------------------------
    47 $spip_gis_mots = array(
    48         "id_gis"        => "bigint(21) NOT NULL",
    49         "id_mot" => "int(11) NULL NULL",
    50         "lat" => "float(21)  NULL NULL",
    51         "lonx" => "float(21)  NULL NULL",
    52         "zoom" => "tinyint(4)  NULL NULL"
    53         );
     20        // Titre pour url
     21        $interface['table_titre']['gis'] = "titre, '' AS lang";
    5422       
    55 $spip_gis_mots_key = array(
    56         "PRIMARY KEY" => "id_gis",
    57         "KEY id_mot" => "id_mot"
    58         );
    59 $spip_gis_mots_join = array(
    60         "id_mot"=>"id_mot"
    61         );
     23        return $interface;
     24}
    6225
    63 $tables_principales['spip_gis_mots'] = array(
    64         'field' => &$spip_gis_mots,
    65         'key' => &$spip_gis_mots_key,
    66         'joint' => &$spip_gis_most_join
    67         );
    68 //------------------------------------------------------       
    69 //on ajoute les kml à la table spip_types_documents  --------------------------------------
    70 $res = spip_query("SELECT extension FROM spip_types_documents WHERE extension='kml'");
    71 if (!$row = spip_fetch_array($res))
    72         spip_query("INSERT INTO `spip_types_documents` ( `id_type` , `titre` , `descriptif` , `extension` , `mime_type` , `inclus` , `upload` , `maj` )    VALUES ('', 'Google Earth Placemark', '', 'kml', 'application/vnd.google-earth.kml+xml', 'non', 'oui', NOW( ));");
     26function gis_declarer_tables_principales($tables_principales){
     27        $spip_gis = array(
     28                "id_gis" => "bigint(21) NOT NULL",
     29                "titre"         => "varchar(255) NOT NULL DEFAULT ''",
     30                "descriptif" => "text NOT NULL DEFAULT ''",
     31                "lat" => "float(21) NULL NULL",
     32                "lon" => "float(21) NULL NULL",
     33                "zoom" => "tinyint(4) NULL NULL",
     34                "adresse" => "text NOT NULL DEFAULT ''",
     35                "pays" => "text NOT NULL DEFAULT ''",
     36                "code_pays" => "varchar(255) NOT NULL DEFAULT ''",
     37                "region" => "text NOT NULL DEFAULT ''",
     38                "ville" => "text NOT NULL DEFAULT ''",
     39                "code_postal" => "varchar(255) NOT NULL DEFAULT ''"
     40                );
     41       
     42        $spip_gis_key = array(
     43                "PRIMARY KEY" => "id_gis");
     44       
     45        $tables_principales['spip_gis'] = array(
     46                'field' => &$spip_gis,
     47                'key' => &$spip_gis_key);
     48               
     49        return $tables_principales;
     50}
    7351
    74 //-- Relaci—ns ----------------------------------------------------
    75 global $table_des_tables;
    76 $table_des_tables['gis']='gis';
    77 $table_des_tables['gis_config']='gis_config';
    78 $table_des_tables['gis_mots']='gis_mots';
    79 //-- Jointures ----------------------------------------------------
    80 //Les jointures sont pas necessaires parce que le champs a utiliser comme criteres sont dejà
    81 //dans les tables de GIS
    82 //global $tables_jointures;
    83 //$tables_jointures['spip_articles'][]= 'gis';
    84 //$tables_jointures['spip_gis'][] = 'articles';
    85 //$tables_jointures['spip_rubriques'][]= 'gis';
    86 //$tables_jointures['spip_gis'][] = 'rubriques';
    87 //$tables_jointures['spip_mots'][]= 'gis_mots';
    88 //$tables_jointures['spip_gis_mots'][] = 'mots';
     52function gis_declarer_tables_auxiliaires($tables_auxiliaires){
     53        $spip_gis_liens = array(
     54                "id_gis"        => "bigint(21) NOT NULL",
     55                "objet"         => "VARCHAR (25) DEFAULT '' NOT NULL",
     56                "id_objet"      => "bigint(21) NOT NULL");
     57       
     58        $spip_gis_liens_key = array(
     59                "PRIMARY KEY"   => "id_gis,id_objet,objet",
     60                "KEY id_objet" => "id_gis");
     61       
     62        $tables_auxiliaires['spip_gis_liens'] = array(
     63                'field' => &$spip_gis_liens,
     64                'key' => &$spip_gis_liens_key);
     65       
     66        return $tables_auxiliaires;
     67}
     68
    8969?>
  • _plugins_/gis/trunk/base/gis_upgrade.php

    r35038 r48696  
    11<?php
    2 /*
    3  * Spip Gis plugin
    4  * Insetar google maps en SPIP
     2
     3include_spip('inc/meta');
     4
     5/**
     6 * Installation/maj des tables gis
    57 *
    6  * Autores :
    7  * Horacio Gonz‡lez, Berio Molina
    8  * (c) 2007 - Distribu’do baixo licencia GNU/GPL
    9  *
     8 * @param string $nom_meta_base_version
     9 * @param string $version_cible
    1010 */
    11 
    12         include_spip('inc/meta');
    13        
    14         function gis_upgrade($nom_meta_base_version,$version_cible){
    15                 $current_version = 0.0;
    16                 if (   (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
    17                                 || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
    18                        
    19                         if ($current_version==0.0){
    20                                 include_spip('base/gis');
    21                                 include_spip('base/create');
    22                                 creer_base();
    23                                 ecrire_meta($nom_meta_base_version,$current_version=$version_cible);
     11function gis_upgrade($nom_meta_base_version,$version_cible){
     12        $current_version = '0.0';
     13        if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
     14                        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
     15                // installation
     16                if (version_compare($current_version, '0.0','<=')){
     17                        include_spip('base/gis');
     18                        include_spip('base/create');
     19                        // creer les tables
     20                        creer_base();
     21                        ecrire_meta($nom_meta_base_version,$current_version=$version_cible,'non');
     22                }
     23                // maj depuis gis v1
     24                if (version_compare($current_version, '2.0','<')){
     25                        include_spip('base/gis');
     26                        include_spip('base/create');
     27                        creer_base();
     28                        // maj de la table gis
     29                        include_spip('base/abstract_sql');
     30                        // renommer le champ lonx en lon
     31                        sql_alter("TABLE spip_gis CHANGE lonx lon float(21) NULL NULL");
     32                        // creer les liens
     33                        include_spip('action/editer_gis');
     34                        $res = sql_select('*','spip_gis');
     35                        while ($row = sql_fetch($res)) {
     36                                if($row['id_article'] != 0)
     37                                        lier_gis($row['id_gis'], 'article', $row['id_article']);
     38                                if($row['id_rubrique'] != 0)
     39                                        lier_gis($row['id_gis'], 'article', $row['id_rubrique']);
    2440                        }
    25                         if (version_compare($current_version,"0.1.1","<")){
    26                                 spip_query("ALTER TABLE spip_gis ADD INDEX ( id_article )");
    27                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.1");
     41                        // virer les champs id_article et id_rubrique
     42                        sql_alter("TABLE spip_gis DROP id_article");
     43                        sql_alter("TABLE spip_gis DROP id_rubrique");
     44                        // virer les index id_article et id_rubrique
     45                        sql_alter("TABLE spip_gis DROP INDEX id_article");
     46                        sql_alter("TABLE spip_gis DROP INDEX id_rubrique");
     47                        // migrer le contenu de la table gis_mots
     48                        $res = sql_select('*','spip_gis_mots');
     49                        while ($row = sql_fetch($res)) {
     50                                $titre_mot = sql_getfetsel('titre','spip_mots','id_mot='.$row['id_mot']);
     51                                $c = array(
     52                                        'titre' => $titre_mot,
     53                                        'lat'=> $row['lat'],
     54                                        'lon' => $row['lonx'],
     55                                        'zoom' => $row['zoom']
     56                                );
     57                                $id_gis = insert_gis();
     58                                revisions_gis($id_gis,$c);
     59                                lier_gis($id_gis, 'mot', $row['id_mot']);
    2860                        }
    29                         if (version_compare($current_version,"0.1.2","<")){
    30                                 $key = "";
    31                                 $res = spip_query("SELECT name, value FROM spip_gis_config WHERE name='googlemapkey'");
    32                                 if ($row = spip_fetch_array($res))
    33                                         $key = $row['value'];
    34                                 ecrire_meta('geomap_googlemapkey',$key);
    35                                 spip_query("DROP TABLE spip_gis_config");
    36                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.2");
    37                         }
    38                         if (version_compare($current_version,"0.1.3","<")){
    39                                 spip_query("CREATE TABLE `spip_gis_mots` (
    40                                         `id_gis` bigint(21) NOT NULL auto_increment,
    41                                         `id_mot` int(11) default NULL,
    42                                         `lat` float default NULL,
    43                                         `lonx` float default NULL,
    44                                         `zoom` tinyint(4) default NULL,
    45                                         PRIMARY KEY  (`id_gis`)
    46                                 )");
    47                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.3");
    48                         }
    49                         if (version_compare($current_version,"0.1.4","<")){
    50                                 $res = spip_query("SELECT extension FROM spip_types_documents WHERE extension='kml'");
    51                                 if (!$row = spip_fetch_array($res))
    52                                         spip_query("INSERT INTO `spip_types_documents` ( `id_type` , `titre` , `descriptif` , `extension` , `mime_type` , `inclus` , `upload` , `maj` )    VALUES ('', 'Google Earth Placemark', '', 'kml', 'application/vnd.google-earth.kml+xml', 'non', 'oui', NOW( ));");
    53                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.4");
    54                         }
    55                         if (version_compare($current_version,"0.1.5","<")){
    56                                 spip_query("ALTER TABLE spip_gis ADD id_rubrique int(11) NULL NULL AFTER id_article");
    57                                 spip_query("ALTER TABLE spip_gis ADD INDEX ( id_rubrique )");
    58                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.5");
    59                         }
    60                         /*esto es para realizar los cambios de nombre de variables*/
    61                         if (version_compare($current_version,"0.1.6","<")){
    62                                 $value = "";
    63                                 $res = spip_query("SELECT name, value FROM spip_meta WHERE name='geomap_default_lat'");
    64                                 if ($row = spip_fetch_array($res)) {
    65                                         $value = $row['value'];
    66                                         ecrire_meta('gis_default_lat',$value);
    67                                 } else {
    68                                         effacer_meta('gis_default_lat');
    69                                 }
    70                                 $res = spip_query("SELECT name, value FROM spip_meta WHERE name='geomap_default_lonx'");
    71                                 if ($row = spip_fetch_array($res)) {
    72                                         $value = $row['value'];
    73                                         ecrire_meta('gis_default_lonx',$value);
    74                                 } else {
    75                                         effacer_meta('gis_default_lonx');
    76                                 }
    77                                 $res = spip_query("SELECT name, value FROM spip_meta WHERE name='geomap_default_zoom'");
    78                                 if ($row = spip_fetch_array($res)) {
    79                                         $value = $row['value'];
    80                                         ecrire_meta('gis_default_zoom',$value);
    81                                 } else {
    82                                         effacer_meta('gis_default_zoom');
    83                                 }
    84                                 effacer_meta("geomap_default_lat");
    85                                 effacer_meta("geomap_default_lonx");
    86                                 effacer_meta("geomap_default_zoom");
    87                                 ecrire_meta('gis_map', 'no');
    88                                 spip_query("ALTER TABLE spip_gis ADD zoom int(4) NULL NULL AFTER lonx");
    89                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.6");
    90                         }
    91                         if (version_compare($current_version,"0.1.7","<")){
    92                                 spip_query("ALTER TABLE spip_gis ADD pays text NOT NULL DEFAULT '' AFTER zoom");
    93                                 spip_query("ALTER TABLE spip_gis ADD code_pays varchar(255) NOT NULL DEFAULT '' AFTER pays");
    94                                 spip_query("ALTER TABLE spip_gis ADD region text NOT NULL DEFAULT '' AFTER code_pays");
    95                                 spip_query("ALTER TABLE spip_gis ADD ville text NOT NULL DEFAULT '' AFTER region");
    96                                 spip_query("ALTER TABLE spip_gis ADD code_postal varchar(255) NOT NULL DEFAULT '' AFTER ville");
    97                                 ecrire_meta($nom_meta_base_version,$current_version="0.1.7");
    98                         }
    99                         /*se encaga de trasladar las variables generales de geomap a gis*/
    100                         ecrire_metas();
     61                        // et virer la table gis_mots
     62                        sql_drop_table('spip_gis_mots');
     63                        ecrire_meta($nom_meta_base_version,$current_version="2.0",'non');
     64                }
     65                if (version_compare($current_version, '2.0.1','<')){
     66                        include_spip('base/gis');
     67                        include_spip('base/create');
     68                        // creer les tables
     69                        maj_tables(array('spip_gis'));
     70                        ecrire_meta($nom_meta_base_version,$current_version="2.0.1",'non');
    10171                }
    10272        }
    103        
    104         function gis_vider_tables($nom_meta_base_version) {
    105                 spip_query("DROP TABLE spip_gis");
    106                 spip_query("DROP TABLE spip_gis_mots");
    107                 effacer_meta($nom_meta_base_version);
    108                 ecrire_metas();
    109         }
     73}
     74
     75/**
     76 * Desinstallation/suppression des tables gis
     77 *
     78 * @param string $nom_meta_base_version
     79 */
     80function gis_vider_tables($nom_meta_base_version) {
     81        sql_drop_table("spip_gis");
     82        sql_drop_table("spip_gis_liens");
     83        effacer_meta($nom_meta_base_version);
     84}
    11085
    11186?>
  • _plugins_/gis/trunk/fonds/cfg_gis.html

    r35038 r48696  
     1<!-- titre=<:gis:cfg_titre_gis:> -->
     2<!-- logo=images/gis.png-->
     3<!-- icone=images/gis-24.png-->
     4<!-- descriptif=<:gis:cfg_descr_gis:> -->
     5<!-- autoriser=webmestre -->
     6<!-- refus=<:cfg:refus_configuration_webmestre:> -->
     7<!-- presentation=non -->
     8
    19#CACHE{0}
    2 
    3 [(#REM) titre=GIS]
    4 [(#REM) descriptif=
    5 <h4>Configuration du plugin GIS</h4>
    6 Choisissez dans quelles rubriques activer le plugin.
    7 ]
    8 
    9 <div class="formulaire_spip formulaire_editer formulaire_cfg">
    10 <form method="post"><div>
    11         [(#ENV{_cfg_}|form_hidden)]
    12         <ul>
    13         #SET{wichrub,#CONFIG{gis/rubriques_gis,#ARRAY{0,-1}}}
    14                 <li class="editer_api_carte_gis">
    15                         <label><:gis:api_carte:></label>
    16                         <div class="choix">
    17                                 <input type="radio" name="api_carte" class="radio" value="geomap" id="api_carte_geomap"[ (#ENV{api_carte}|=={geomap}|?{'checked="checked"'})] />
    18                                 <label for="api_carte_geomap"><:gis:api_carte_geomap:></label>
    19                         </div>
    20                         <div class="choix">
    21                                 <input type="radio" name="api_carte" class="radio" value="openlayer" id="api_carte_openlayer"[ (#ENV{api_carte}|=={openlayer}|?{'checked="checked"'})] />
    22                                 <label for="api_carte_openlayer"><:gis:api_carte_openlayer:></label>
    23                         </div>
    24                 </li>
    25                 <li class="editer_rubriques_gis">
    26                         <label for="rubriques_gis"><:gis:pages_prive:></label>
    27                         <p class="explications"><:gis:explication_pages_prive:></p>
    28                         <select name="rubriques_gis[]" multiple="multiple" size="9">
    29                                 <option value="-1"[ (#EVAL{-1}|in_array{#GET{wichrub}}|?{' selected="selected"'})]>Toutes</option>
    30                                 <BOUCLE_secteurs(RUBRIQUES) {racine} {par titre}{tout}>
    31                                 <option value="#ID_RUBRIQUE"[ (#ID_RUBRIQUE|in_array{#GET{wichrub}}|?{' selected="selected"'})]>
    32                                 Secteur #ID_RUBRIQUE : #TITRE
    33                                 </option>
    34                                 <BOUCLE_rubriques(RUBRIQUES) {id_parent} {par titre}{tout}>
    35                                 <option value="#ID_RUBRIQUE"[ (#ID_RUBRIQUE|in_array{#GET{wichrub}}|?{' selected="selected"'})]>
    36                                 &rarr; Rubrique #ID_RUBRIQUE : #TITRE
    37                                 </option>
    38                                 <BOUCLE_sous_rubriques(BOUCLE_rubriques)></BOUCLE_sous_rubriques>
    39                                 </BOUCLE_rubriques>
    40                                 </BOUCLE_secteurs>
    41                         </select>
    42                 </li>
    43                 <li class="editer_swfobject_gis">
    44                         <label><:gis:pages_public:></label>
    45                         <p class="explications"><:gis:explication_swfobject:></p>
    46                         <div class="choix">
    47                                 <input type="checkbox" name="swfobject" class="checkbox" value="non" id="swfobject_non"[ (#ENV{swfobject}|=={non}|?{'checked="checked"'})] />
    48                                 <label for="swfobject_non"><:gis:desactiver_swfobject:></label>
    49                         </div>
    50                 </li>
    51                 <li class="editer_geocoding_gis">
    52                         <label><:gis:geocoding:></label>
    53                         <p class="explications"><:gis:explication_geocoding:></p>
    54                         <div class="choix">
    55                                 <input type="checkbox" name="geocoding" class="checkbox" value="oui" id="geocoding"[ (#ENV{geocoding}|=={oui}|?{'checked="checked"'})] />
    56                                 <label for="geocoding"><:gis:activer_geocoding:></label>
    57                         </div>
    58                 </li>
    59         </ul>
    60         <fieldset>
    61                 <legend><:gis:parametres_formulaire:></legend>
    62                 <ul>
    63                         <li class="editer_rubrique_formulaire_gis">
    64                                 <label for="rubrique_cible"><:gis:rubrique_cible:></label>
    65                                 [<span class='erreur'>(#ENV**{erreurs}|table_valeur{rubrique_cible})</span>]
    66                                 <select name="rubrique_cible">
    67                                         <BOUCLE_r1(RUBRIQUES){racine}{par num titre}>
    68                                         <option value=''></option>
    69                                         <optgroup label="<:gis:secteur:> [(#TITRE|couper{40})]">
    70                                                 <option value="#ID_RUBRIQUE"[(#ENV{rubrique_cible}|=={#ID_RUBRIQUE}|?{' selected="selected"'})]>[(#TITRE|couper{40})] (<:gis:racine:>)</option>
    71                                                 <B_r2>
    72                                                 <option value="" class='mysteric_hr' disabled='disabled'><:gis:ou_choisir:></option>
    73                                                 <BOUCLE_r2(RUBRIQUES){id_parent}{par num titre}>
    74                                                         <option value="#ID_RUBRIQUE"[(#ENV{rubrique_cible}|=={#ID_RUBRIQUE}|?{' selected="selected"'})]>[(#TITRE|couper{40})]</option>
    75                                                 </BOUCLE_r2>
    76                                         </optgroup>
    77                                         </BOUCLE_r1>
    78                                 </select>
    79                         </li>
    80                         <li class="editer_statut_formulaire_gis">
    81                                 <label for="statut"><:gis:statut_articles:></label>
    82                                 [<span class='erreur'>(#ENV**{erreurs}|table_valeur{statut})</span>]
    83                                 <select name="statut">
    84                                         <option value='prepa'[(#ENV{statut}|=={prepa}|?{' selected="selected"'})]>En cours de rédaction</option>
    85                                         <option value='prop'[(#ENV{statut}|=={prop}|?{' selected="selected"'})]>Proposé</option>
    86                                         <option value='publie'[(#ENV{statut}|=={publie}|?{' selected="selected"'})]>Publié</option>
    87                                 </select>
    88                         </li>
    89                         <li class="editer_formats_documents[ (#ENV**{erreurs}|table_valeur{formats_documents}|?{'erreur'})]">
    90                                 <label for="formats_documents"><:gis:formats_documents:></label>
    91                                 [<span class='erreur'>(#ENV**{erreurs}|table_valeur{formats_documents})</span>]
    92                                 <p class="explications"><:gis:texte_formats_documents:></p>
    93                                 <input type="text" name="formats_documents" class="text" value="#ENV{formats_documents,'jpg,png,gif'}"  />
    94                         </li>
    95                 </ul>
    96         </fieldset>
    97 
    98         <p class="boutons">
    99                 <input type="submit" name="_cfg_ok" class="submit" value="<:valider:>" />
    100                 <input type="submit" name="_cfg_delete" class="submit" value="<:effacer:>" />
    101         </p>
    102 </div></form>
     10<div class="ajax">
     11#FORMULAIRE_CONFIG_GIS
    10312</div>
    104 #CFG_ARBO{gis}
  • _plugins_/gis/trunk/formulaires/editer_gis.html

    r40523 r48696  
    11#CACHE{0}
    2 <div id="formMap" name="formMap" style="width: 100%; height: 350px"></div>
     2<div id="map_[(#ENV{objet})]_[(#ENV{id_objet})]" name="formMap" style="width: 100%; height: 350px"></div>
    33<script type="text/javascript">
    4 //<![CDATA[
     4<!--
     5var form_map;
     6[(#ENV{recherhce}|!={non}|oui|et{#CONFIG{gis/geocoder}|oui})
     7[(#SET{geocoder,oui})]
     8var geocoder;]
     9
    510(function($){
     11       
     12        var maj_inputs = function(map,pos) {
     13                var zoom = map.getZoom();
     14                $("#champ_lat").val(pos.lat);
     15                $("#champ_lon").val(pos.lon);
     16                $("#champ_zoom").val(zoom);
     17        }
     18       
     19        [(#GET{geocoder}|oui)
     20        function geocode(address) {
     21                form_map.setCenterAndZoom(address.point, 15);
     22                geocode_marker = new mxn.Marker(address.point);
     23                var info = address.locality + ", " + address.region;
     24                geocode_marker.setInfoBubble(info);
     25                form_map.removeAllMarkers();
     26                form_map.addMarker(geocode_marker);
     27                geocode_marker.openBubble();
     28                maj_inputs(form_map,address.point);
     29                if(address.street != ''){
     30                        $('#champ_adresse').val(address.street)
     31                }
     32                if(address.postcode != ''){
     33                        $('#champ_code_postal').val(address.postcode)
     34                }
     35                if(address.locality != ''){
     36                        $('#champ_ville').val(address.locality)
     37                }
     38                if(address.region != ''){
     39                        $('#champ_region').val(address.region)
     40                }
     41                if(address.country != ''){
     42                        $('#champ_pays').val(address.country)
     43                }
     44        }]
    645
    7         var initMap = function() {
    8                 if (GBrowserIsCompatible()) {
    9                         // creer la carte
    10                         var map = new GMap2(document.getElementById("formMap"));
    11                         map.addControl(new GLargeMapControl());
    12                         map.addControl(new GMapTypeControl());
    13                         map.setCenter(new GLatLng([(#ENV**{lat})],[(#ENV**{lonx})]), [(#ENV**{zoom})], G_NORMAL_MAP);
    14                         [(#CONFIG{gis/geocoding}|oui)
    15                         // reverse geocoding
    16                         var geocode = function(lat,lonx) {
    17                                 var geocoder;
    18                                 geocoder = new GClientGeocoder();
    19                                 function showAddress(response) {
    20                                         if (!response || response.Status.code != 200) {
    21                                                 return false;
    22                                         } else {
    23                                                 $("#pays,#code_pays,#region,#ville,#code_postal").val("");
    24                                                 CountryName = '';
    25                                                 CountryNameCode = '';
    26                                                 AdministrativeAreaName = '';
    27                                                 LocalityName = '';
    28                                                 PostalCodeNumber = '';
    29                                                 place = response.Placemark[(#VAL{91}|chr)]0[(#VAL{93}|chr)];
    30                                                 $("#map_adresse").val(place.address);
    31                                                 if (Country = place.AddressDetails.Country){
    32                                                         if (CountryName = Country.CountryName)
    33                                                                 $("#pays").val(CountryName);
    34                                                         if (CountryNameCode = Country.CountryNameCode)
    35                                                                 $("#code_pays").val(CountryNameCode);
    36                                                         if (AdministrativeArea = Country.AdministrativeArea){
    37                                                                 if (AdministrativeAreaName = AdministrativeArea.AdministrativeAreaName)
    38                                                                         $("#region").val(AdministrativeAreaName);
    39                                                                 if ((SubAdministrativeArea = AdministrativeArea.SubAdministrativeArea) && (Locality = SubAdministrativeArea.Locality)){
    40                                                                         if (LocalityName = Locality.LocalityName)
    41                                                                                 $("#ville").val(LocalityName);
    42                                                                         if ((PostalCode = Locality.PostalCode) && (PostalCodeNumber = PostalCode.PostalCodeNumber))
    43                                                                                 $("#code_postal").val(PostalCodeNumber);
    44                                                                 }
    45                                                         }
    46                                                 }
    47                                         }
    48                                 }
    49                                 geocoder.getLocations(new GLatLng(lat,lonx), showAddress);
    50                         };]
    51                         // mettre a jour les coordonnees quand on clique la carte
    52                         GEvent.addListener(map, "click", function(overlay, point){
    53                                 map.clearOverlays();
    54                                 if (point) {
    55                                         map.addOverlay(new GMarker(point));
    56                                         map.panTo(point);
    57                                         jQuery("#formulaire_editer_gis #lat").val(point.y);
    58                                         jQuery("#formulaire_editer_gis #lonx").val(point.x);
    59                                         [(#CONFIG{gis/geocoding}|oui)
    60                                         geocode(point.y,point.x);]
    61                                 }
    62                         });
    63                         // mettre à jour le zoom quand on le modifie
    64                         GEvent.addListener(map, "zoomend", function(oldlevel, newlevel){
    65                                 jQuery("#formulaire_editer_gis #zoom").val(newlevel);
    66                         });
    67                         [(#ENV**{lat}|oui)
    68                         map.addOverlay(new GMarker(new GLatLng([(#ENV**{lat})],[(#ENV**{lonx})])));
    69                         map.setCenter(new GLatLng([(#ENV**{lat})],[(#ENV**{lonx})]));
    70                         [(#CONFIG{gis/geocoding}|oui)
    71                         geocode([(#ENV**{lat})],[(#ENV**{lonx})]);]
    72                         ]
    73                         [(#ENV**{recherche}|oui)
    74                         jQuery("#map_adresse").focus(function(){jQuery(this).val("");});
    75                         $(".rechercher_adresse #rechercher").css("cursor","pointer").click(function(){
    76                                 var adresse = $("#map_adresse").attr("value");
    77                                 var geocoder = new GClientGeocoder();
    78                                 if (geocoder) {
    79                                         geocoder.getLatLng(adresse, function(point) {
    80                                                 if (!point) {
    81                                                         alert(adresse + " not found");
    82                                                 } else {
    83                                                         map.setCenter(point);
    84                                                         map.clearOverlays();
    85                                                         marker = new GMarker(point,{draggable:true});
    86                                                         map.addOverlay(marker);
    87                                                         marker.openInfoWindowHtml(adresse);
    88                                                         [(#CONFIG{gis/geocoding}|oui)
    89                                                         geocode(point.lat(),point.lng());]
    90                                                         jQuery("#formulaire_editer_gis #lat").val(point.lat());
    91                                                         jQuery("#formulaire_editer_gis #lonx").val(point.lng());
    92                                                         jQuery("#formulaire_editer_gis #zoom").val(map.getZoom());
    93                                                         GEvent.addListener(marker, 'dragend', function(){
    94                                                                 var center = marker.getPoint();
    95                                                                 jQuery("#formulaire_editer_gis #lat").val(center.lat());
    96                                                                 jQuery("#formulaire_editer_gis #lonx").val(center.lng());
    97                                                                 [(#CONFIG{gis/geocoding}|oui)
    98                                                                 geocode(center.lat(),center.lng());]
    99                                                         });
    100                                                 }
    101                                         });
    102                                 }
     46        var init_map = function() {
     47                // creer la carte
     48                var map_container = 'map_[(#ENV{objet})]_[(#ENV{id_objet})]';
     49                form_map = new mxn.Mapstraction(map_container,'#CONFIG{gis/api,openlayers}');
     50                form_map.setCenterAndZoom(new mxn.LatLonPoint(#ENV{lat,#CONFIG{gis/lat,0}},#ENV{lon,#CONFIG{gis/lon,0}}),#ENV{zoom,#CONFIG{gis/zoom,0}});
     51                form_map.addControls({
     52                        pan: true,
     53                        zoom: '#CONFIG{gis/control,large}',
     54                        map_type: true
     55                });
     56               
     57                [(#GET{geocoder}|oui)
     58                // geocoder
     59                geocoder = new mxn.Geocoder('#CONFIG{gis/api,openlayers}',geocode);]
     60               
     61                [(#ENV{lat}|oui)
     62                point = new mxn.LatLonPoint([(#ENV{lat})],[(#ENV{lon})]);
     63                marker = new mxn.Marker(point);
     64                form_map.addMarker(marker);]
     65               
     66                // mettre a jour les coordonnees quand on clique la carte
     67                form_map.click.addHandler(function(name, source, args) {
     68                        var pos = args.location;
     69                        form_map.removeAllMarkers();
     70                        marker = new mxn.Marker(pos);
     71                        marker.setDraggable(true);
     72                        form_map.addMarker(marker);
     73                        form_map.setCenter(pos,{pan:true});
     74                        maj_inputs(form_map,pos);
     75                });
     76               
     77                // mettre à jour le zoom quand on le modifie
     78                form_map.changeZoom.addHandler(function(name, source, args) {
     79                        var zoom = source.getZoom();
     80                        $("#champ_zoom").val(zoom);
     81                });
     82               
     83                [(#GET{geocoder}|oui)
     84                // geocoder si clic...
     85                $('a#rechercher').css("cursor","pointer").click(function(){
     86                        var address = {};
     87                        address.address = $("#champ_geocoder").attr("value");
     88                        geocoder.geocode(address);
     89                });
     90
     91                // ne pas soumettre le formulaire si on presse Entree depuis le champ de recherche
     92                $('#champ_geocoder').keypress(function(e){
     93                        if (e.which == 13) {
     94                                $('a#rechercher').trigger("click");
    10395                                return false;
    104                         });
    105                         // ne pas soumettre le formulaire si on presse Entree depuis le champ de recherche
    106                         $('#map_adresse').keypress(function(e){
    107                                 if (e.which == 13) {
    108                                         $('a#rechercher').trigger("click");
    109                                         return false;
    110                                 }
    111                         });]
    112                 } else {
    113                         alert("Sorry, the Google Maps API is not compatible with this browser");
    114                 }
     96                        }
     97                });]
     98                [(#ENV{id_gis}|non|ou{#ENV{id_gis}|=={oui}}|et{#CONFIG{gis/geolocaliser_user_html5}|=={on}}|oui)
     99                gis_get_navigator_location(form_map,#ENV{zoom,#CONFIG{gis/zoom,0}});]
    115100        };
    116101
    117102        $(function(){
    118                 initMap();
    119                 onAjaxLoad(initMap);
     103                init_map();
     104                [(#ENV{ajaxload}|!={non}|oui)onAjaxLoad(init_map);]
    120105        });
    121106       
    122107})(jQuery);
    123 //]]>
     108-->
    124109</script>
    125 
    126110<div class="formulaire_spip formulaire_editer formulaire_editer_gis">
    127111        <!-- br class='spacer' / -->
     
    133117                parametre : url d'action ]
    134118                #ACTION_FORMULAIRE{#ENV{action}}
    135                 <input type='hidden' name='pays' id='pays' value='' />
    136                 <input type='hidden' name='code_pays' id='code_pays' value='' />
    137                 <input type='hidden' name='region' id='region' value='' />
    138                 <input type='hidden' name='ville' id='ville' value='' />
    139                 <input type='hidden' name='code_postal' id='code_postal' value='' />
    140                 <ul>[(#ENV{recherche}|oui)
     119                <ul>
     120                        [(#SAISIE{hidden,objet})]
     121                        [(#SAISIE{hidden,id_objet})]
     122                        [(#GET{geocoder}|oui)
    141123                        <li class="rechercher_adresse">
    142                                 <input type="text" class="text" name="map_adresse" id="map_adresse" value="<:gis:address:>" />
    143                                 <a id="rechercher"><:gis:label_address:></a>
     124                                <label for="champ_geocoder"><:gis:label_rechercher_address:></label>
     125                                <input type="text" class="text" name="champ_geocoder" id="champ_geocoder" value="" />
     126                                <a id="rechercher"><:info_rechercher:></a>
    144127                        </li>]
    145                         <li class="editer_lat obligatoire[ (#ENV**{erreurs}|table_valeur{lat}|oui)erreur]">
    146                                 <label for="lat">Latitude</label>
    147                                 <input type="text" name="lat" id="lat" class="text" value="[(#ENV**{lat})]" />
    148                         </li>
    149                         <li class="editer_lonx obligatoire[ (#ENV**{erreurs}|table_valeur{lonx}|oui)erreur]">
    150                                 <label for="lonx">Longitude</label>
    151                                 <input type="text" name="lonx" id="lonx" class="text" value="[(#ENV**{lonx})]" />
    152                         </li>
    153                         <li class="editer_zoom obligatoire[ (#ENV**{erreurs}|table_valeur{zoom}|oui)erreur]">
    154                                 <label for="zoom">Zoom</label>
    155                                 <input type="text" name="zoom" id="zoom" class="text" value="[(#ENV**{zoom})]" />
    156                         </li>
     128                        [(#SAISIE{input,lat,
     129                                label=<:gis:lat:>,
     130                                defaut=#CONFIG{gis/lat,0},
     131                                obligatoire=oui})]
     132                        [(#SAISIE{input,lon,
     133                                label=<:gis:lon:>,
     134                                defaut=#CONFIG{gis/lon,0},
     135                                obligatoire=oui})]
     136                        [(#SAISIE{input,zoom,
     137                                label=<:gis:zoom:>,
     138                                defaut=#CONFIG{gis/zoom,0},
     139                                size=2,
     140                                maxlength=2,
     141                                obligatoire=oui})]
     142                        [(#SAISIE{input,titre,
     143                                defaut=#INFO_TITRE{#OBJET,#ID_OBJET},
     144                                label=<:info_titre:>,
     145                                obligatoire=oui})]
     146                        [(#SAISIE{textarea,descriptif,
     147                                label=<:info_descriptif:>,
     148                                rows=5})]
     149                        [(#CONFIG{gis/adresse}|=={on}|?{#SET{input_type,input},#SET{input_type,hidden}})]
     150                        [(#SAISIE{#GET{input_type},adresse,
     151                                label=<:gis:label_adress:>})]
     152                        [(#SAISIE{#GET{input_type},code_postal,
     153                                label=<:gis:label_code_postal:>})]
     154                        [(#SAISIE{#GET{input_type},ville,
     155                                label=<:gis:label_ville:>})]
     156                        [(#SAISIE{#GET{input_type},region,
     157                                label=<:gis:label_region:>})]
     158                        [(#SAISIE{#GET{input_type},pays,
     159                                label=<:gis:label_pays:>})]
    157160                </ul>
    158161                [(#REM) ajouter les saisies supplementaires : extra et autre, a cet endroit ]
    159162                <!--extra-->
    160                 <p class='boutons'><input class='submit' type='submit' value='<:bouton_enregistrer:>' /></p>
     163                <p class='boutons'[ style="direction: (#LANG_DIR|=={ltr}|?{rtl,ltr})"]>
     164                        <input class='submit' type='submit' name='enregistrer' value='<:bouton_enregistrer:>' />[(#ENV{id_gis}|intval|oui)
     165                        <input class='submit link' type='submit' name='supprimer' value='<:lien_supprimer:>' />]
     166                </p>
    161167        </div></form>
    162168        ]
  • _plugins_/gis/trunk/formulaires/editer_gis.php

    r35038 r48696  
    11<?php
     2/**
     3 * Formulaire de création et d'édition d'un point géolocalisé
     4 */
    25
    3 function formulaires_editer_gis_charger_dist($id_article, $recherche='', $retour=''){
     6include_spip('inc/actions');
     7include_spip('inc/editer');
    48
    5         $valeurs = array(
    6                 'lat'=> '',
    7                 'lonx'=> '',
    8                 'zoom'=> '',
    9                 'recherche'=> $recherche,
    10                 'editable'=>true
    11         );
    12        
    13         $row = sql_fetsel("lat,lonx,zoom", "spip_gis", "id_article=$id_article");
    14         if ($row) {
    15                 $valeurs['lat'] = $row['lat'];
    16                 $valeurs['lonx'] = $row['lonx'];
    17                 $valeurs['zoom'] = $row['zoom'];
    18         }else{
    19                 $api_carte = lire_config('gis/api_carte');
    20                 $valeurs['lat'] = lire_config($api_carte.'/latitude');
    21                 $valeurs['lonx'] = lire_config($api_carte.'/longitude');
    22                 $valeurs['zoom'] = lire_config($api_carte.'/zoom');
    23 
    24         }
    25        
     9/**
     10 * Chargement des valeurs par défaut du formulaire
     11 *
     12 * @param int|string $id_gis Identifiant numérique du point ou 'new' pour un nouveau
     13 * @param string $objet Le type d'objet SPIP auquel il est attaché
     14 * @param int $id_objet L'id_objet de l'objet auquel il est attaché
     15 * @param string $retour L'url de retour
     16 * @param string $ajaxload initialiser la carte à chaque onAjaxLoad()
     17 */
     18function formulaires_editer_gis_charger_dist($id_gis='new', $objet='', $id_objet='', $retour='', $ajaxload='oui'){
     19        $valeurs = formulaires_editer_objet_charger('gis', $id_gis, '', '', $retour, '');
     20        $valeurs['objet'] = $objet;
     21        $valeurs['id_objet'] = $id_objet;
     22        $valeurs['ajaxload'] = $ajaxload;
    2623        return $valeurs;
    2724}
    2825
    29 
    30 function formulaires_editer_gis_verifier_dist($id_article, $recherche='', $retour=''){
    31 
    32         $erreurs = array();
    33 
     26/**
     27 * Vérification des valeurs du formulaire
     28 *
     29 * 4 champs sont obligatoires :
     30 * -* Son titre
     31 * -* Sa latitude
     32 * -* Sa longitude
     33 * -* Son niveau de zoom
     34 *
     35 * @param int|string $id_gis Identifiant numérique du point ou 'new' pour un nouveau
     36 * @param string $objet Le type d'objet SPIP auquel il est attaché
     37 * @param int $id_objet L'id_objet de l'objet auquel il est attaché
     38 * @param string $retour L'url de retour
     39 * @param string $ajaxload initialiser la carte à chaque onAjaxLoad()
     40 */
     41function formulaires_editer_gis_verifier_dist($id_gis='new', $objet='', $id_objet='', $retour='', $ajaxload='oui'){
     42        $erreurs = formulaires_editer_objet_verifier('gis', $id_gis,array('titre','lat','lon'));
    3443        return $erreurs;
    3544}
    3645
    37 
    38 function formulaires_editer_gis_traiter_dist($id_article, $recherche='', $retour=''){
    39         $res = array('editable'=>' ');
    40        
    41         // recuperation des donnees
    42         $lat = _request('lat');
    43         $lonx = _request('lonx');
    44         $zoom = _request('zoom');
    45        
    46         include_spip('base/abstract_sql');
    47        
    48         $c = array(
    49                 "id_article" => $id_article ,
    50                 "lat" => $lat,
    51                 "lonx" => $lonx,
    52                 "zoom" => $zoom
    53         );
    54        
    55         if(lire_config('gis/geocoding') == 'oui'){
    56                 $geocoding = array(
    57                         "pays" => _request('pays'),
    58                         "code_pays" => _request('code_pays'),
    59                         "region" => _request('region'),
    60                         "ville" => _request('ville'),
    61                         "code_postal" => _request('code_postal')
    62                 );
    63                 $c = array_merge($c,$geocoding);
     46/**
     47 * Traitement des valeurs du formulaire
     48 *
     49 * @param int|string $id_gis Identifiant numérique du point ou 'new' pour un nouveau
     50 * @param string $objet Le type d'objet SPIP auquel il est attaché
     51 * @param int $id_objet L'id_objet de l'objet auquel il est attaché
     52 * @param string $retour L'url de retour
     53 * @param string $ajaxload initialiser la carte à chaque onAjaxLoad()
     54 */
     55function formulaires_editer_gis_traiter_dist($id_gis='new', $objet='', $id_objet='', $retour='', $ajaxload='oui'){
     56        if (_request('supprimer')){
     57                include_spip('action/editer_gis');
     58                supprimer_gis($id_gis);
     59                $id_table_objet = id_table_objet($objet);
     60                if ($retour)
     61                        $res['redirect'] = parametre_url($retour,$id_table_objet,$id_objet);
     62                return $res;
     63        } else {
     64                return formulaires_editer_objet_traiter('gis', $id_gis, '', '', $retour, '');
    6465        }
    65        
    66         // mise a jour ou creation ?
    67         if ($id_gis = sql_getfetsel("id_gis", "spip_gis", "id_article=$id_article")) {
    68                 sql_updateq("spip_gis", $c, "id_gis=$id_gis");
    69                 $res['message_ok'] = _T('gis:coord_maj');
    70         }else{
    71                 sql_insertq("spip_gis", $c);
    72                 $res['message_ok'] = _T('gis:coord_enregistre');
    73         }
    74         if ($retour){
    75                 include_spip('inc/headers');
    76                 $res['redirect'] = $retour;
    77         }
    78        
    79         return $res;
    8066}
    8167
  • _plugins_/gis/trunk/gis_options.php

    r44669 r48696  
    11<?php
    2 /*
    3  * Spip Gis plugin
    4  * Insetar google maps en SPIP
    5  *
    6  * Autores :
    7  * Horacio Gonz‡lez, Berio Molina
    8  * (c) 2007 - Distribu’do baixo licencia GNU/GPL
    9  *
    10  */
    112
    12 include_spip('base/gis');
     3define('_DIR_LIB_GIS',_DIR_RACINE.'lib/h2fe2d58a-mxn-2.0.16/');
     4
     5$table_des_traitements['VILLE'][]= 'typo(extraire_multi(%s))';
     6$table_des_traitements['PAYS'][]= 'typo(extraire_multi(%s))';
    137
    148?>
  • _plugins_/gis/trunk/lang/gis_en.php

    r14699 r48696  
    11<?php
    22
    3 // This is a SPIP language file  --  Ceci est un fichier langue de SPIP nomme admin_lang genere le NOW()
    4 // langue / language = fr
    5 // Traduction -- Pierre FICHES <pierre.fiches@free.fr>
     3$GLOBALS[$GLOBALS['idx_lang']] = array(
     4        // B
     5        'bouton_lier' => 'Link this point',
     6        'bouton_supprimer_lien' => 'Remove this link',
     7        'bouton_supprimer_gis' => 'Delete this point permanently',
    68
    7 $GLOBALS[$GLOBALS['idx_lang']] = array(
    8 //elements de formulaire pour editer les coordonnees
    9 'clave_engadida' => 'Added key: ',
    10 'clic_mapa' => 'Clic on the map to change coordinates',
    11 'clic_desplegar' => 'unfold',
    12 'configurar_gis' => 'Configure Gis Plugin',
    13 'conseguir' => '(obtain)',
    14 'cambiar' => 'change coordinates',
    15 'boton_actualizar' => 'update',
    16 'default_geoloc' => 'Default position of maps:'
     9        // C
     10        "cfg_descr_gis" => "Geographic Information System.<br />Link to the documentation.",
     11        "cfg_inf_adresse" => "Displays additional address fields (country, city, state, address ...)",
     12        "cfg_inf_geolocaliser_user_html5" => "If the user's browser allows it, its approximate geographic location is retrieved to give the default position when creating a new point.",
     13        "cfg_inf_cloudmade" => "This API needs a key you can create on <a href='@url@'>the CloudMade website</a>.",
     14        "cfg_inf_geocoder" => "Enable search function in form.",
     15        "cfg_inf_google" => "This API needs a key you can create on <a href='@url@'>the GoogleMaps website</a>.",
     16        'cfg_lbl_adresse' => "Show address fields",
     17        "cfg_lbl_api" => "Geolocation API",
     18        "cfg_lbl_api_cloudmade" => "CloudMade",
     19        "cfg_lbl_api_google" => "Google Maps v2",
     20        "cfg_lbl_api_googlev3" => "Google Maps v3",
     21        "cfg_lbl_api_key_cloudmade" => "CloudMade API key",
     22        "cfg_lbl_api_key_google" => "GoogleMaps API key",
     23        "cfg_lbl_api_mapquest" => "MapQuest",
     24        "cfg_lbl_api_microsoft" => "Microsoft Bing",
     25        "cfg_lbl_api_multimap" => "MultiMap",
     26        "cfg_lbl_api_openlayers" => "OpenLayers",
     27        "cfg_lbl_api_openspace" => "OpenSpace",
     28        "cfg_lbl_api_yahoo" => "Yahoo",
     29        "cfg_lbl_geocoder" => "Geocoder",
     30        "cfg_lbl_geolocaliser_user_html5" => "At the creation step, center the map on the location of the user",
     31        "cfg_titre_gis" => "GIS",
     32       
     33        // E
     34        "editer_gis_editer" => "Edit this point",
     35        "editer_gis_explication" => "This page lists the whole geolocated points of the website.",
     36        "editer_gis_nouveau" => "Create a new point",
     37        "editer_gis_titre" => "The geolocated points",
     38        "erreur_recherche_pas_resultats" => "No point corresponds to the searched text.",
     39
     40        // F
     41        "formulaire_creer_gis" => "Create a new geolocated point :",
     42        "formulaire_modifier_gis" => "Modify the geolocated point :",
     43
     44        // I
     45        "icone_gis_tous" => "Geolocated points",
     46        "info_numero_gis" => "Point number",
     47        "info_id_objet" => "N&deg;",
     48        "info_liste_objets_gis" => "Objects attached to this point",
     49        "info_objet" => "Object",
     50        "info_supprimer_lien" => "Detach",
     51        "info_voir_fiche_objet" => "Go to page",
     52       
     53        // L
     54        "label_adress" => "Addresse",
     55        "label_code_postal" => "Postal code",
     56        "label_pays" => "Country",
     57        "label_rechercher_address" => "Search for an address",
     58        "label_rechercher_point" => "Search for a point",
     59        "label_region" => "Region",
     60        "label_ville" => "Town",
     61        "lat" => "Latitude",
     62        "lon" => "Longitude",
     63       
     64        "zoom" => "Zoom"
     65               
    1766);
    1867
  • _plugins_/gis/trunk/lang/gis_fr.php

    r40524 r48696  
    11<?php
    22
    3 // This is a SPIP language file  --  Ceci est un fichier langue de SPIP nomme admin_lang genere le NOW()
    4 // langue / language = fr
    5 // Traduction -- Pierre FICHES <pierre.fiches@free.fr>
     3$GLOBALS[$GLOBALS['idx_lang']] = array(
     4        //A
     5        'aucun_gis' => 'Aucun point',
     6        'aucun_objet' => 'Aucun objet',
     7       
     8        // B
     9        'bouton_lier' => 'Lier ce point',
     10        'bouton_supprimer_lien' => 'Supprimer ce lien',
     11        'bouton_supprimer_gis' => 'Supprimer d&eacute;finitivement ce point',
    612
    7 $GLOBALS[$GLOBALS['idx_lang']] = array(
     13        // C
     14        "cfg_descr_gis" => "Syst&egrave;me d'Information G&eacute;ographique.<br />Lien vers la documentation.",
     15        "cfg_inf_adresse" => "Affiche des champs suppl&eacute;mentaires d'adresse (pays, ville, r&eacute;gion, adresse...)",
     16        "cfg_inf_cloudmade" => "Cette API n&eacute;cessite une cl&eacute; &agrave; cr&eacute;er sur <a href='@url@'>le site de CloudMade</a>.",
     17        "cfg_inf_geocoder" => "Activer la fonction de recherche &agrave; partir d'une adresse dans le formulaire.",
     18        "cfg_inf_geolocaliser_user_html5" => "Si le navigateur de l'utilisateur le permet, son emplacement g&eacute;ographique approximatif est r&eacute;cup&eacute;r&eacute; pour donner la position par d&eacute;faut lors de la cr&eacute;ation d'un point.",
     19        "cfg_inf_google" => "Cette API n&eacute;cessite une cl&eacute; &agrave; cr&eacute;er sur <a href='@url@'>le site de GoogleMaps</a>.",
     20        "cfg_lbl_adresse" => "Afficher les champs d'adresse",
     21        "cfg_lbl_api" => "API de cartographie",
     22        "cfg_lbl_api_cloudmade" => "CloudMade",
     23        "cfg_lbl_api_google" => "Google Maps v2",
     24        "cfg_lbl_api_googlev3" => "Google Maps v3",
     25        "cfg_lbl_api_key_cloudmade" => "Cl&eacute; CloudMade",
     26        "cfg_lbl_api_key_google" => "Cl&eacute; GoogleMaps",
     27        "cfg_lbl_api_mapquest" => "MapQuest",
     28        "cfg_lbl_api_microsoft" => "Microsoft Bing",
     29        "cfg_lbl_api_multimap" => "MultiMap",
     30        "cfg_lbl_api_openlayers" => "OpenLayers",
     31        "cfg_lbl_api_openspace" => "OpenSpace",
     32        "cfg_lbl_api_yahoo" => "Yahoo",
     33        "cfg_lbl_geocoder" => "Geocoder",
     34        "cfg_lbl_geolocaliser_user_html5" => "Centrer la carte sur l'emplacement de l'utilisateur &agrave; la cr&eacute;ation",
     35        "cfg_titre_gis" => "GIS",
     36       
     37        // E
     38        "editer_gis_editer" => "Modifier ce point",
     39        "editer_gis_explication" => "Cette page liste l'ensemble des points g&eacute;olocalis&eacute;s du site.",
     40        "editer_gis_nouveau" => "Cr&eacute;er un nouveau point",
     41        "editer_gis_titre" => "Les points g&eacute;olocalis&eacute;s",
     42        "erreur_recherche_pas_resultats" => "Aucun point ne correspond &agrave; la recherche.",
    843
    9         //elements du formulaire CFG
     44        // F
     45        "formulaire_creer_gis" => "Cr&eacute;er un point g&eacute;olocalis&eacute; :",
     46        "formulaire_modifier_gis" => "Modifier le point g&eacute;olocalis&eacute; :",
     47
     48        // I
     49        "icone_gis_tous" => "Points g&eacute;olocalis&eacute;s",
     50        "info_numero_gis" => "Point num&eacute;ro",
     51        "info_id_objet" => "N&deg;",
     52        "info_liste_gis_objet" => "Points li&eacute;s &agrave; cet objet",
     53        "info_liste_objets_gis" => "Objets li&eacute;s &agrave; ce point",
     54        "info_objet" => "Objet",
     55        "info_supprimer_lien" => "D&eacute;tacher",
     56        "info_voir_fiche_objet" => "Voir la fiche",
     57
     58        // L
     59        "label_adress" => "Adresse",
     60        "label_code_postal" => "Code postal",
     61        "label_pays" => "Pays",
     62        "label_rechercher_address" => "Rechercher une adresse",
     63        "label_rechercher_point" => "Rechercher un point",
     64        "label_region" => "R&eacute;gion",
     65        "label_ville" => "Ville",
     66        "lat" => "Latitude",
     67        "lon" => "Longitude",
    1068       
    11         "activer_geocoding" => "Activer le geocoding",
    12         "api_carte" => "API des cartes",
    13         "api_carte_geomap" => "API Google Maps",
    14         "api_carte_openlayer" => "API Open Layers",
    15         "explication_geocoding" => "R&eacute;cup&eacute;rer automatiquement les informations des points (pays, ville, adresse, etc).",
    16         "explication_pages_prive" => "Choisissez les rubriques dans lesquelles le plugin sera disponible.",
    17         "explication_swfobject" => "D&eacute;sactiver l'insertion du script swf_object dans les pages publiques (si vous n'utilisez pas le lecteur de son dans les infobulles).",
    18         "desactiver_swfobject" => "D&eacute;sactiver swf_object",
    19         "formats_documents" => "Format des documents",
    20         "geocoding" => "Geocoding",
    21         "pages_public" => "Partie publique",
    22         "pages_prive" => "Partie priv&eacute;e",
    23         "parametres_formulaire" => "Param&egrave;tres du formulaire public",
    24         "rubrique_cible" => "Rubrique cible",
    25         "statut_articles" => "Statut des articles",
     69        //T
     70        'titre_bloc_creer_point' => 'Lier un nouveau point',
     71        'titre_bloc_points_lies' => 'Points liés',
     72        'titre_bloc_rechercher_point' => 'Rechercher un point',
    2673       
    27         //elements de formulaire pour editer les coordonnees
    28        
    29         "boton_actualizar" => "Actualiser",
    30         "bouton_supprimer" => "Supprimer",
    31         "cambiar" => "changer les coordonn&eacute;es",
    32         "clic_mapa" => "Cliquer sur la carte pour changer les coordonn&eacute;es",
    33         "clic_desplegar" => "d&eacute;plier",
    34         "coord" => "Coordonn&eacute;es",
    35         "coord_enregistre" => "Coordonn&eacute;es enregistr&eacute;es",
    36         "coord_maj" => "Coordonn&eacute;es mises &agrave; jour",
    37         "label_address" => "Rechercher",
    38         "label_ville" => "Ville",
    39         "label_pays" => "Pays",
    40        
    41         //elements du formulaire public
    42        
    43         "bouton_documents" => "Valider",
    44         "document_joint" => "Documents joints",
    45         "document_supprime" => "Document(s) supprim&eacute;(s)",
    46         "erreur_ajout_article" => "Erreur lors de l'ajout de l'article",
    47         "erreur_copie_impossible" => "Impossible de copier le document",
    48         "erreur_formats_acceptes" => "Formats accept&#233;s : @formats@.",
    49         "erreur_titre" => "Titre obligatoire",
    50         "erreur_texte" => "Veuillez entrer un texte",
    51         "erreur_upload" => "Erreur lors du chargement du fichier",
    52         "ok_formulaire_soumis" => "Votre article a &eacute;t&eacute; envoy&eacute; sur le site.",
    53        
    54         "configurar_gis" => "Configurer le Plugin Gis",
     74        "zoom" => "Zoom"
     75               
    5576);
    5677
  • _plugins_/gis/trunk/modeles/carte_gis.html

    r36687 r48696  
     1[(#REM)
     2
     3        Modele carte_gis
     4
     5        Parametres :
     6
     7        - id_carte_gis = 1                              id de la carte
     8        - lat = 48.3                                    latitude du centre de la carte
     9        - lon = -4.7                                    longitude du centre de la carte
     10        - zoom = 5                                              zoom de la carte
     11        - width = 100%                                  largeur de la carte, 100% par defaut
     12        - height = 400px                                hauteur de la carte, 400px par defaut
     13        - style = non                                   ne pas styler la carte
     14        - zoom_molette = non                    désactiver le zoom avec la molette de la souris, actif par defaut
     15        - type = carte                                  type de la carte : carte, satellite, relief ou hybride
     16        - control_zoom = large                  type de controles pour le zoom : large, small
     17        - control_pan = non                             ne pas afficher les controles de déplacement dans la carte
     18        - control_type = non                    ne pas afficher les controles de changement de type
     19        - no_control = oui                              ne pas afficher les controles de la carte
     20        - overview = oui                                afficher un mini carte de situation
     21        - scale = oui                                   afficher l'échelle de la carte
     22        - limit = 500                                   nombre max de marqueurs à afficher, 500 par defaut
     23        - objets = gis                                  type d'objets à afficher (fichier json/gis_xx qui génère la source de donnees)
     24        - autocenterandzoom = oui               centrer et zoomer la carte automatiquement pour afficher tous les marqueurs
     25        - kml = 12                                              kml à superposer à la carte (id_document ou url)
     26        - localiser_visiteur = oui              centrer la carte sur la position du visiteur (API geolocation HTML5)
     27
     28]
     29
    130[(#SET{width,#ENV{width,100%}})]
    231[(#SET{height,#ENV{height,400px}})]
    3 [(#SET{id_article,#ENV{id_article}})]
    4 <BOUCLE_rub(ARTICLES){id_article=#ENV{id_article}}>
    5 [(#SET{rub2,#ID_RUBRIQUE})]
    6 </BOUCLE_rub>
    7 [(#ENV{id_secteur}|non)
    8         [(#SET{id_rubrique,#ENV{id_rubrique,#GET{rub2}}})]
     32[(#SET{id,#ENV{id_carte_gis,1}})]
     33[(#REM) -- compat gis v1 -- ]
     34[(#SET{lat,#ENV{lat,#ENV{latit,#CONFIG{gis/lat,0}}}})]
     35[(#SET{lon,#ENV{lon,#ENV{lonxit,#CONFIG{gis/lon,0}}}})]
     36
     37[(#REM) 
     38        // todo
     39        {id_groupe}
     40        {recursive=#ENV{recursive}}
     41        {attente=#ENV{attente}}{ombre=#ENV{ombre}}{load_map=#ENV{load_map}}
     42        {id_a_ouvrir=#ENV{id_a_ouvrir}}{swfobject=#CONFIG{gis/swfobject,oui}}
     43       
     44        // pas documentes
     45        {control_move=#ENV{control_move}}{control_zoom=#ENV{control_zoom}}
     46       
     47        // done
     48       
     49        {latit}{lonxit}{zoom}{hauteur=#GET{height}}{largeur=#GET{width}}{id_carte_gis}{zoom_molette=#ENV{zoom_molette}}
     50        {control}{control_type=#ENV{control_type}}{type}{limit=#ENV{limit}}
     51        {id_rubrique=#GET{id_rubrique}}{id_secteur}{id_mot}{id_article}{id_auteur}{recherche}
    952]
    10 [(#INCLURE{fond=inc_public_map}{id_rubrique=#GET{id_rubrique}}{id_secteur}{id_mot}{id_groupe}{id_article}{id_auteur}{recherche}
    11 {latit}{lonxit}{zoom}{type}{id_carte_gis}{recursive=#ENV{recursive}}{limit=#ENV{limit}}{attente=#ENV{attente}}{ombre=#ENV{ombre}}{hauteur=#GET{height}}{largeur=#GET{width}}{load_map=#ENV{load_map}}
    12 {control}{control_type=#ENV{control_type}}{control_move=#ENV{control_move}}{control_zoom=#ENV{control_zoom}}{zoom_molette=#ENV{zoom_molette}}{id_a_ouvrir=#ENV{id_a_ouvrir}}{swfobject=#CONFIG{gis/swfobject,oui}})]
    1353
    14 <div id="map[(#ENV{id_carte_gis}|?{[(#ENV{id_carte_gis})],1})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[(#ENV{attente}|=={1}|oui)z-index: 0; ][width:(#GET{width});][ height:(#GET{height});]"]></div>
     54<div id="map[(#GET{id})]" class="carte_gis"[(#ENV{style}|!={'non'}|?{' '})style="[width:(#GET{width});][ height:(#GET{height});]"]></div>
    1555
     56<script type="text/javascript">
     57<!--
     58[(#CONFIG{gis/api}|=={cloudmade}|oui)
     59var cloudmade_key = '#CONFIG{gis/api_key_cloudmade}';]
     60
     61var map[(#GET{id})];
     62
     63(function($){
     64       
     65        var init_map[(#GET{id})] = function() {
     66                var map_container = 'map[(#GET{id})]';
     67                map[(#GET{id})] = new mxn.Mapstraction(map_container,'#CONFIG{gis/api,openlayers}');
     68               
     69                [(#ENV{zoom_molette}|!={non}|oui)
     70                map[(#GET{id})].enableScrollWheelZoom();]
     71               
     72                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint(#GET{lat},#GET{lon}),#ENV{zoom,#CONFIG{gis/zoom,0}});
     73
     74                [(#ENV{type}|oui)
     75                #SET{type,ROAD}
     76                [(#ENV{type}|=={'carte'}|oui) #SET{type,ROAD} ]
     77                [(#ENV{type}|=={'satellite'}|oui) #SET{type,SATELLITE} ]
     78                [(#ENV{type}|=={'hybride'}|oui) #SET{type,HYBRID} ]
     79                [(#ENV{type}|=={'relief'}|oui) #SET{type,PHYSICAL} ]
     80                map[(#GET{id})].setMapType([mxn.Mapstraction.(#GET{type})]);
     81                ]
     82
     83                [(#ENV{no_control}|!={oui}|oui)
     84                map[(#GET{id})].addControls({zoom: '[(#ENV{control_zoom,large})]'});]
     85       
     86                [(#ENV{overview}|oui)
     87                map[(#GET{id})].addControls({overview: true});]
     88       
     89                [(#ENV{scale}|oui)
     90                map[(#GET{id})].addControls({scale: true});]
     91       
     92                [(#ENV{control_type}|!={non}|oui)
     93                map[(#GET{id})].addControls({map_type: true});]
     94               
     95                [(#ENV{control_pan}|!={non}|oui)
     96                map[(#GET{id})].addControls({pan: true});]
     97
     98                jQuery.getJSON("[(#URL_PAGE{gis_json}|url_absolue)]",
     99                        {[
     100                                (#ENV{objet}|id_table_objet) : #ENV{id_objet},][
     101                                objets : "(#ENV{objets})",][
     102                                id_rubrique : (#ENV{id_rubrique}),][
     103                                id_secteur : (#ENV{id_secteur}),][
     104                                id_article : (#ENV{id_article}),][
     105                                id_breve : (#ENV{id_breve}),][
     106                                id_document : (#ENV{id_document}),][
     107                                id_mot : (#ENV{id_mot}),][
     108                                id_groupe : (#ENV{id_groupe}),][
     109                                id_auteur : (#ENV{id_auteur}),][
     110                                id_syndic : (#ENV{id_syndic}),][
     111                                id_forum : (#ENV{id_forum}),][
     112                                recherche : "(#ENV{recherche})",][
     113                                limit : (#ENV{limit,500})]
     114                        },
     115                        function(data) {
     116                                if (data){
     117                                        map[(#GET{id})].addJSON(data);
     118                                        [(#ENV{autocenterandzoom}|oui)
     119                                        var markers = map[(#GET{id})].markers;
     120                                        if (markers.length == 1){
     121                                                map[(#GET{id})].setCenterAndZoom(new mxn.LatLonPoint(markers[(#VAL{91}|chr)]0[(#VAL{93}|chr)].location.lat,markers[(#VAL{91}|chr)]0[(#VAL{93}|chr)].location.lon),#ENV{zoom,#CONFIG{gis/zoom,0}});
     122                                        } else {
     123                                                map[(#GET{id})].autoCenterAndZoom();
     124                                        }]
     125                                }
     126                        }
     127                );
     128               
     129                [(#ENV{kml}|oui)
     130                [(#ENV{kml}|intval|oui)
     131                map[(#GET{id})].addOverlay(['(#ENV{kml}|generer_url_entite{document}|url_absolue)']);]
     132                [(#ENV{kml}|intval|non)
     133                map[(#GET{id})].addOverlay(['(#ENV{kml})']);]
     134                ]
     135               
     136                [(#ENV{localiser_visiteur}|oui)
     137                gis_get_navigator_location(map[(#GET{id})],#ENV{zoom,#CONFIG{gis/zoom,0}});]
     138               
     139        }
     140
     141        $(function(){
     142                init_map[(#GET{id})]();
     143                onAjaxLoad(init_map[(#GET{id})]);
     144        });
     145
     146})(jQuery);
     147-->
     148</script>
  • _plugins_/gis/trunk/plugin.xml

    r48692 r48696  
    11<plugin>
    2 
    3  <nom>Escoitar Gis Plugin</nom>
    4  <icon></icon>
    5  <version>1.0.0</version>
    6  <version_base>0.1.7</version_base>
    7  <etat>stable</etat>
    8 
    9  <auteur>[Berio Molina->http://www.berio.alg-a.org], [Horaciogd->http://www.vhplab.net], [b_b->http://www.spip-contrib.net/b_b]</auteur>
    10 
    11  <description>
    12  <multi>[gl] Este plugin, xunto co plugin Google Map API, permite visualizar mapas GoogleMaps nas p&aacute;xinas p&uacute;blicas do sitio. Os artigos e as palabras chaves do sitio poden ser xeocalizadas por marcadores nos mapas.
    13 
    14 Este plugin engade duas t&aacute;boas sobre a base de datos. Unha chamada {{spip_gis}} e outra chamada {{spip_gis_mots}}
    15 
    16 [es]Este plugin, acoplado al plugin Google Map API, permite visualizar mapas GoogleMaps en las p&aacute;ginas p&uacute;blicas del sitio. Los art&iacute;culos y las palabras claves del sitio pueden ser geolocalizadas por marcadores en los mapas.
    17 
    18 Este plugin introduce dos tablas en la base de datos, una denominada {{spip_gis}} et l'autre {{spip_gis_mots}}
    19 
    20 [fr]Ce plugin, coupl&eacute; au plugin Google Map API permet d'afficher des cartes GoogleMaps sur les pages publiques du site. Les articles et mots-cl&eacute;s du site peuvent &ecirc;tre g&eacute;olocalis&eacute;s par des marqueurs sur les cartes.
    21 
    22 Ce plugin introduit deux tables dans la base de donn&eacute;es. L'une nomm&eacute;e {{spip_gis}} et l'autre {{spip_gis_mots}}
    23 
    24 [en]This plugin, associated with Google Map API plugin enables GoogleMaps' display on public site's pages. Articles and keywords can be geo-localised with marks on maps.
    25 
    26 This plugin adds two talbes to the database, one named {{spip_gis}} and the other {{spip_gis_mots}}.
    27  </multi>
    28  </description>
    29 
    30  <lien>http://www.spip-contrib.net/Plugin-Gis-escoitar</lien>
    31 
    32  <install>base/gis_upgrade.php</install>
    33 
    34  <options>gis_options.php</options>
    35 
    36  <prefix>gis</prefix>
     2        <nom>GIS</nom>
     3        <auteur>b_b, kent1</auteur>
     4        <version>2.0.3</version>
     5        <version_base>2.0.1</version_base>
     6        <licence>GNU/GPL</licence>
     7        <etat>dev</etat>
     8        <description>
     9                <multi>
     10                        [fr]GIS2 mapstraction
     11_ Icone de [mattrich->http://mattrich.deviantart.com/art/Picnic-101256405] sous licence CC BY-NC-SA
     12                        [en]GIS2 mapstraction
     13_ Icon from [mattrich->http://mattrich.deviantart.com/art/Picnic-101256405] under CC BY-NC-SA license
     14                </multi>
     15        </description>
     16        <lien></lien>
     17        <prefix>gis</prefix>
     18        <icon>images/gis.png</icon>
     19        <options>gis_options.php</options>
     20        <fonctions>gis_fonctions.php</fonctions>
     21        <install>base/gis_upgrade.php</install>
     22        <bouton id='gis_tous' parent='naviguer'>
     23            <icone>images/gis-24.png</icone>
     24            <titre>gis:icone_gis_tous</titre>
     25        </bouton>
     26        <bouton id='bando_gis_tous' parent='bando_edition'>
     27                <url>gis_tous</url>
     28            <icone>images/gis-16.png</icone>
     29            <titre>gis:icone_gis_tous</titre>
     30        </bouton>
    3731        <pipeline>
    38                 <nom>affichage_final</nom>
    39                 <action>affichage_final</action>
    40                 <inclure>gis_pipeline.php</inclure>
     32                <nom>declarer_tables_interfaces</nom>
     33                <inclure>base/gis.php</inclure>
     34        </pipeline>
     35        <pipeline>
     36                <nom>declarer_tables_principales</nom>
     37                <inclure>base/gis.php</inclure>
     38        </pipeline>
     39        <pipeline>
     40                <nom>declarer_tables_auxiliaires</nom>
     41                <inclure>base/gis.php</inclure>
     42        </pipeline>
     43        <pipeline>
     44                <nom>insert_head</nom>
     45                <action>inserer_javascript</action>
     46                <inclure>gis_pipelines.php</inclure>
     47        </pipeline>
     48        <pipeline>
     49                <nom>header_prive</nom>
     50                <action>inserer_javascript</action>
     51                <inclure>gis_pipelines.php</inclure>
    4152        </pipeline>
    4253        <pipeline>
    4354                <nom>affiche_milieu</nom>
    44                 <action>insertar_map</action>
    45                 <inclure>gis_pipeline.php</inclure>
     55                <inclure>gis_pipelines.php</inclure>
    4656        </pipeline>
    4757        <pipeline>
    48                 <nom>affiche_droite</nom>
    49                 <action>gismot</action>
    50                 <inclure>gis_pipeline.php</inclure>
     58                <nom>post_edition</nom>
     59                <inclure>gis_pipelines.php</inclure>
    5160        </pipeline>
     61        <pipeline>
     62                <nom>taches_generales_cron</nom>
     63                <inclure>gis_pipelines.php</inclure>
     64        </pipeline>
     65        <pipeline>
     66                <nom>rechercher_liste_des_champs</nom>
     67                <inclure>gis_pipelines.php</inclure>
     68        </pipeline>
     69        <utilise id="cfg" version="[1.12;]" />
     70        <utilise id="selecteur_generique" version="[1.12;]" />
     71        <necessite id="SPIP" version="[2.1.10;3.0.0-dev)" />
     72        <necessite id="saisies" version="[1.7.1;]" />
     73        <necessite id="spip_bonux" version="[1.8;]" />
     74        <necessite id="lib:h2fe2d58a-mxn-2.0.16" src="https://github.com/downloads/mapstraction/mxn/mxn-2.0.16.zip" />
    5275        <categorie>divers</categorie>
    53         <necessite id="SPIP" version="[1.9.0;]" />
    54         <necessite id='cfg' version='[1.10.4;]' />
    55         <chemin dir='' />
    5676</plugin>
Note: See TracChangeset for help on using the changeset viewer.