1 | <?php |
---|
2 | |
---|
3 | /***************************************************************************\ |
---|
4 | * SPIP, Systeme de publication pour l'internet * |
---|
5 | * * |
---|
6 | * Copyright (c) 2001-2015 * |
---|
7 | * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James * |
---|
8 | * * |
---|
9 | * Ce programme est un logiciel libre distribue sous licence GNU/GPL. * |
---|
10 | * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. * |
---|
11 | \***************************************************************************/ |
---|
12 | |
---|
13 | /** |
---|
14 | * Fichier gérant l'installation et désinstallation du plugin |
---|
15 | * |
---|
16 | * @package SPIP\Mots\Installation |
---|
17 | **/ |
---|
18 | if (!defined('_ECRIRE_INC_VERSION')) { |
---|
19 | return; |
---|
20 | } |
---|
21 | |
---|
22 | /** |
---|
23 | * Installation/maj des tables mots et groupes de mots... |
---|
24 | * |
---|
25 | * @param string $nom_meta_base_version |
---|
26 | * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP |
---|
27 | * @param string $version_cible |
---|
28 | * Version du schéma de données dans ce plugin (déclaré dans paquet.xml) |
---|
29 | * @return void |
---|
30 | */ |
---|
31 | function mots_upgrade($nom_meta_base_version, $version_cible) { |
---|
32 | |
---|
33 | // cas particulier : |
---|
34 | // si plugin pas installe mais que la table existe |
---|
35 | // considerer que c'est un upgrade depuis v 1.0.0 |
---|
36 | // pour gerer l'historique des installations SPIP <=2.1 |
---|
37 | if (!isset($GLOBALS['meta'][$nom_meta_base_version])) { |
---|
38 | $trouver_table = charger_fonction('trouver_table', 'base'); |
---|
39 | if ($desc = $trouver_table('spip_mots') |
---|
40 | AND isset($desc['exist']) AND $desc['exist'] |
---|
41 | AND $desc = $trouver_table('spip_mots_articles') |
---|
42 | AND isset($desc['exist']) AND $desc['exist'] |
---|
43 | ) { |
---|
44 | ecrire_meta($nom_meta_base_version, '1.0.0'); |
---|
45 | } |
---|
46 | // si pas de table en base, on fera une simple creation de base |
---|
47 | } |
---|
48 | |
---|
49 | $maj = array(); |
---|
50 | $maj['create'] = array( |
---|
51 | array('maj_tables', array('spip_groupes_mots', 'spip_mots', 'spip_mots_liens')), |
---|
52 | ); |
---|
53 | $maj['1.0.0'] = array( |
---|
54 | array('maj_tables', array('spip_groupes_mots', 'spip_mots', 'spip_mots_liens')), |
---|
55 | ); |
---|
56 | include_spip('maj/svn10000'); |
---|
57 | $maj['2.0.0'] = array( |
---|
58 | array('maj_liens', 'mot'), // creer la table liens |
---|
59 | array('maj_liens', 'mot', 'breve'), |
---|
60 | array('sql_drop_table', "spip_mots_breves"), |
---|
61 | array('maj_liens', 'mot', 'rubrique'), |
---|
62 | array('sql_drop_table', "spip_mots_rubriques"), |
---|
63 | array('maj_liens', 'mot', 'syndic'), |
---|
64 | array('sql_drop_table', "spip_mots_syndic"), |
---|
65 | array('maj_liens', 'mot', 'forum'), |
---|
66 | array('sql_drop_table', "spip_mots_forum"), |
---|
67 | array('maj_liens', 'mot', 'auteur'), |
---|
68 | array('sql_drop_table', "spip_mots_auteurs"), |
---|
69 | array('maj_liens', 'mot', 'document'), |
---|
70 | array('sql_drop_table', "spip_mots_documents"), |
---|
71 | array('maj_liens', 'mot', 'article'), |
---|
72 | array('sql_drop_table', "spip_mots_articles"), |
---|
73 | ); |
---|
74 | $maj['2.0.1'] = array( |
---|
75 | array('sql_updateq', "spip_mots_liens", array('objet' => 'site'), "objet='syndic'"), |
---|
76 | ); |
---|
77 | $maj['2.1.0'] = array( |
---|
78 | array('sql_alter', "TABLE spip_mots_liens ADD INDEX id_objet (id_objet)"), |
---|
79 | array('sql_alter', "TABLE spip_mots_liens ADD INDEX objet (objet)"), |
---|
80 | ); |
---|
81 | $maj['2.1.1'] = array( |
---|
82 | array('sql_alter', "TABLE spip_mots ADD INDEX id_groupe (id_groupe)") |
---|
83 | ); |
---|
84 | |
---|
85 | include_spip('base/upgrade'); |
---|
86 | maj_plugin($nom_meta_base_version, $version_cible, $maj); |
---|
87 | } |
---|
88 | |
---|
89 | |
---|
90 | /** |
---|
91 | * Désinstallation/suppression des tables mots et groupes de mots |
---|
92 | * |
---|
93 | * @param string $nom_meta_base_version |
---|
94 | * Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP |
---|
95 | * @return void |
---|
96 | */ |
---|
97 | function mots_vider_tables($nom_meta_base_version) { |
---|
98 | sql_drop_table("spip_mots"); |
---|
99 | sql_drop_table("spip_groupes_mots"); |
---|
100 | sql_drop_table("spip_mots_liens"); |
---|
101 | |
---|
102 | effacer_meta('articles_mots'); |
---|
103 | effacer_meta('config_precise_groupes'); |
---|
104 | |
---|
105 | effacer_meta($nom_meta_base_version); |
---|
106 | } |
---|
107 | |
---|
108 | ?> |
---|