source: spip-zone/_plugins_/boussole/trunk/boussole_administrations.php @ 70161

Last change on this file since 70161 was 70161, checked in by eric@…, 7 years ago

Upgrade du schéma de base de données du plugin et mise au point et modernisation de la fonction d'upgrade.

  • Property svn:eol-style set to native
File size: 1.9 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5function boussole_upgrade($nom_meta_base_version, $version_cible){
6
7        $maj = array();
8
9        $maj['create'] = array(
10                array('maj_tables', array('spip_boussoles'))
11        );
12
13        // On ajoute la table des extras et on supprime toutes les boussoles
14        // Seule la boussole SPIP sera réinstallée.
15        // Pour les autres il faudra de toute façon adapter la boussole avant de la réinstaller
16        $maj['0.2'] = array(
17                array('maj_tables', array('spip_boussoles_extras')),
18                array('nettoyer_donnees_boussole')
19        );
20
21        include_spip('base/upgrade');
22        maj_plugin($nom_meta_base_version, $version_cible, $maj);
23
24        // On ajoute la boussole SPIP par defaut.
25        // Cependant on ne teste ni la validite du fichier xml fourni ni la bonne insertion en bdd
26        if (!isset($GLOBALS['meta']['boussole_infos_spip'])) {
27                include_spip('inc/deboussoler');
28                $xml = 'http://zone.spip.org/trac/spip-zone/export/HEAD/_galaxie_/boussole.spip.org/boussole_spip.xml';
29                $url = boussole_localiser_xml($xml);
30                list($ok, $message) = boussole_ajouter($url);
31        }
32}
33
34function boussole_vider_tables($nom_meta_base_version) {
35        // On nettoie les metas de mises a jour des boussoles
36        nettoyer_donnees_boussole(true);
37
38        // on efface ensuite la table et la meta habituelle designant la version du plugin
39        sql_drop_table("spip_boussoles");
40        sql_drop_table("spip_boussoles_extras");
41        effacer_meta($nom_meta_base_version);
42
43        spip_log('Désinstallation des tables du plugin Boussole','boussole' . _LOG_INFO);
44}
45
46function nettoyer_donnees_boussole($meta=false) {
47        $alias = array();
48
49        $akas_boussole = sql_allfetsel('aka_boussole', 'spip_boussoles', array(), 'aka_boussole');
50        if ($akas_boussole) {
51                foreach (array_map('reset', $akas_boussole) as $_aka_boussole) {
52                        $alias[] = 'boussole_infos_' . $_aka_boussole;
53                }
54                sql_delete('spip_meta', sql_in('nom', $alias));
55        }
56
57        if (!$meta)
58                sql_delete('spip_boussoles');
59
60}
61?>
Note: See TracBrowser for help on using the repository browser.