4 if (!defined('_ECRIRE_INC_VERSION')) return;
7 * Installation/maj des tables gis
9 * @param string $nom_meta_base_version
10 * @param string $version_cible
12 function gis_upgrade($nom_meta_base_version, $version_cible){
15 // Première installation
16 $maj['create'] = array(
17 array('maj_tables', array('spip_gis')),
18 array('maj_tables', array('spip_gis_liens')),
21 // Mise à jour depuis GIS 1
23 // On ajoute la nouvelle table
24 array('maj_tables', array('spip_gis_liens')),
25 // On renomme le champ #LONX en #LON
26 array('sql_alter', 'TABLE spip_gis CHANGE lonx lon float(21) NULL NULL'),
27 // On déplace les liaisons articles, rubriques et mots
28 array('gis_upgrade_2_0'),
29 // Virer les champs id_article et id_rubrique
30 array('sql_alter', 'TABLE spip_gis DROP id_article'),
31 array('sql_alter', 'TABLE spip_gis DROP id_rubrique'),
32 // Virer les index id_article et id_rubrique
33 array('sql_alter', 'TABLE spip_gis DROP INDEX id_article'),
34 array('sql_alter', 'TABLE spip_gis DROP INDEX id_rubrique'),
35 // Virer la table pour les mots
36 array('sql_drop_table', 'spip_gis_mots'),
39 // Des nouveaux champs
40 $maj['2.0.1'] = array(
41 array('maj_tables', array('spip_gis')),
44 // Augmenter la précision des champs de coordonnées
45 $maj['2.0.2'] = array(
46 array('sql_alter', 'TABLE spip_gis CHANGE lat lat DOUBLE NULL NULL'),
47 array('sql_alter', 'TABLE spip_gis CHANGE lon lon DOUBLE NULL NULL'),
50 include_spip('base/upgrade');
51 maj_plugin($nom_meta_base_version, $version_cible, $maj);
54 function gis_upgrade_2_0(){
55 include_spip('action/editer_gis');
57 // On déplace les liaisons articles et rubriques
58 $res = sql_select('*','spip_gis');
59 while ($row = sql_fetch($res)) {
60 if($row['id_article'] != 0)
61 lier_gis($row['id_gis'], 'article', $row['id_article']);
62 if($row['id_rubrique'] != 0)
63 lier_gis($row['id_gis'], 'article', $row['id_rubrique']);
66 // On déplace les liaisons mots
67 $res = sql_select('*','spip_gis_mots');
68 while ($row = sql_fetch($res)) {
69 $titre_mot = sql_getfetsel('titre','spip_mots','id_mot='.$row['id_mot']);
71 'titre' => $titre_mot,
73 'lon' => $row['lonx'],
74 'zoom' => $row['zoom']
76 $id_gis = insert_gis();
77 revisions_gis($id_gis,$c);
78 lier_gis($id_gis, 'mot', $row['id_mot']);
83 * Desinstallation/suppression des tables gis
85 * @param string $nom_meta_base_version
87 function gis_vider_tables($nom_meta_base_version) {
88 sql_drop_table("spip_gis");
89 sql_drop_table("spip_gis_liens");
90 effacer_meta($nom_meta_base_version);