source: spip-zone/_core_/plugins/mots/mots_administrations.php @ 71848

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

Sur les traces de http://core.spip.org/projects/spip/repository/revisions/20410 , ajouter un index nécessite ADD INDEX, pas seulement ADD.

File size: 3.7 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2013                                                *
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**/
18if (!defined('_ECRIRE_INC_VERSION')) return;
19
20/**
21 * Installation/maj des tables mots et groupes de mots...
22 *
23 * @param string $nom_meta_base_version
24 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
25 * @param string $version_cible
26 *     Version du schéma de données dans ce plugin (déclaré dans paquet.xml)
27 * @return void
28 */
29function mots_upgrade($nom_meta_base_version,$version_cible){
30
31        // cas particulier :
32        // si plugin pas installe mais que la table existe
33        // considerer que c'est un upgrade depuis v 1.0.0
34        // pour gerer l'historique des installations SPIP <=2.1
35        if (!isset($GLOBALS['meta'][$nom_meta_base_version])){
36                $trouver_table = charger_fonction('trouver_table','base');
37                if ($desc = $trouver_table('spip_mots')
38                  AND isset($desc['exist'])
39                  AND $desc = $trouver_table('spip_mots_articles')
40                        AND isset($desc['exist'])){
41                        ecrire_meta($nom_meta_base_version,'1.0.0');
42                }
43                // si pas de table en base, on fera une simple creation de base
44        }
45
46        $maj = array();
47        $maj['create'] = array(
48                array('maj_tables',array('spip_groupes_mots','spip_mots','spip_mots_liens')),
49        );
50        $maj['1.0.0'] = array(
51                array('maj_tables',array('spip_groupes_mots','spip_mots','spip_mots_liens')),
52        );
53        include_spip('maj/svn10000');
54        $maj['2.0.0'] = array(
55                array('maj_liens','mot'), // creer la table liens
56                array('maj_liens','mot','breve'),
57                array('sql_drop_table',"spip_mots_breves"),
58                array('maj_liens','mot','rubrique'),
59                array('sql_drop_table',"spip_mots_rubriques"),
60                array('maj_liens','mot','syndic'),
61                array('sql_drop_table',"spip_mots_syndic"),
62                array('maj_liens','mot','forum'),
63                array('sql_drop_table',"spip_mots_forum"),
64                array('maj_liens','mot','auteur'),
65                array('sql_drop_table',"spip_mots_auteurs"),
66                array('maj_liens','mot','document'),
67                array('sql_drop_table',"spip_mots_documents"),
68                array('maj_liens','mot','article'),
69                array('sql_drop_table',"spip_mots_articles"),
70        );
71        $maj['2.0.1'] = array(
72                array('sql_updateq',"spip_mots_liens",array('objet'=>'site'),"objet='syndic'"),
73        );
74        $maj['2.1.0'] = array(
75                array('sql_alter',"TABLE spip_mots_liens ADD INDEX id_objet (id_objet)"),
76                array('sql_alter',"TABLE spip_mots_liens ADD INDEX objet (objet)"),
77        );
78        $maj['2.1.1'] = array(
79                array('sql_alter',"TABLE spip_mots ADD INDEX id_groupe (id_groupe)")
80        );
81       
82        include_spip('base/upgrade');
83        maj_plugin($nom_meta_base_version, $version_cible, $maj);
84}
85
86
87/**
88 * Désinstallation/suppression des tables mots et groupes de mots
89 *
90 * @param string $nom_meta_base_version
91 *     Nom de la meta informant de la version du schéma de données du plugin installé dans SPIP
92 * @return void
93 */
94function mots_vider_tables($nom_meta_base_version) {
95        sql_drop_table("spip_mots");
96        sql_drop_table("spip_groupes_mots");
97        sql_drop_table("spip_mots_liens");
98       
99        effacer_meta('articles_mots');
100        effacer_meta('config_precise_groupes');
101       
102        effacer_meta($nom_meta_base_version);
103}
104
105?>
Note: See TracBrowser for help on using the repository browser.