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

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

Mise au point de la base de données
Mise au point des modes serveur et client

  • Property svn:eol-style set to native
File size: 2.3 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5/**
6 * Installation du schéma de données propre au plugin en tenant compte des évolutions
7 *
8 * @param $nom_meta_base_version
9 * @param $version_cible
10 */
11function boussole_upgrade($nom_meta_base_version, $version_cible){
12
13        $maj = array();
14
15        $maj['create'] = array(
16                array('maj_tables', array('spip_boussoles', 'spip_boussoles_extras'))
17        );
18
19        // On ajoute la table des extras et on supprime toutes les boussoles
20        // Seule la boussole SPIP sera réinstallée par défaut.
21        // Pour les autres il faudra de toute façon adapter la boussole avant de les réinstaller
22        $maj['0.2'] = array(
23                array('maj_tables', array('spip_boussoles_extras')),
24                array('nettoyer_donnees_boussole')
25        );
26
27        include_spip('base/upgrade');
28        maj_plugin($nom_meta_base_version, $version_cible, $maj);
29
30        // On ajoute la boussole SPIP par defaut.
31        if (!isset($GLOBALS['meta']['boussole_infos_spip'])) {
32                include_spip('inc/deboussoler');
33                list($ok, $message) = boussole_ajouter('spip', 'spip');
34                if (!$ok)
35                        spip_log("Administrations - Erreur lors de l'ajout de la boussole spip : " . $message, 'boussole' . _LOG_ERREUR);
36                else
37                        spip_log("Administrations - Ajout de la boussole spip ok", 'boussole' . _LOG_INFO);
38        }
39
40        spip_log('Installation des tables du plugin','boussole' . _LOG_INFO);
41
42}
43
44/**
45 * Suppression de l'ensemble du schéma de données propre au plugin
46 *
47 * @param $nom_meta_base_version
48 */
49function boussole_vider_tables($nom_meta_base_version) {
50        // On nettoie les metas de mises a jour des boussoles
51        nettoyer_donnees_boussole();
52
53        // on efface ensuite la table et la meta habituelle designant la version du plugin
54        sql_drop_table("spip_boussoles");
55        sql_drop_table("spip_boussoles_extras");
56        effacer_meta($nom_meta_base_version);
57
58        spip_log('Désinstallation des tables du plugin','boussole' . _LOG_INFO);
59}
60
61/**
62 * Suppression de l'ensemble des données des tables et metas propres au plugin boussole
63 *
64 */
65function nettoyer_donnees_boussole() {
66        $alias = array();
67
68        $akas_boussole = sql_allfetsel('aka_boussole', 'spip_boussoles', array(), 'aka_boussole');
69        if ($akas_boussole) {
70                foreach (array_map('reset', $akas_boussole) as $_aka_boussole) {
71                        $alias[] = 'boussole_infos_' . $_aka_boussole;
72                }
73                sql_delete('spip_meta', sql_in('nom', $alias));
74        }
75
76        sql_delete('spip_boussoles');
77}
78
79?>
Note: See TracBrowser for help on using the repository browser.