source: spip-zone/_plugins_/spipicious_jquery/base/spipicious_upgrade.php @ 52375

Last change on this file since 52375 was 52375, checked in by kent1@…, 10 years ago

On se prend pas le choux sur la balise auteur du plugin.xml ... Erational est auteur et basta...

Une erreur sur l'upgrade (un include manquant)

On incrémente un chouilla la version

File size: 6.2 KB
Line 
1<?php
2
3/**
4 * spip.icio.us
5 * Gestion de tags lies aux auteurs
6 *
7 * Auteurs :
8 * kent1 (kent1@arscenic.info)
9 * Erational
10 *
11 * © 2007-2011 - Distribue sous licence GNU/GPL
12 *
13 */
14
15
16function spipicious_upgrade($nom_meta_base_version,$version_cible){
17        $current_version = 0.0;
18        if ((!isset($GLOBALS['meta'][$nom_meta_base_version]) )
19                        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
20                include_spip('base/spipicious');
21                include_spip('base/create');
22                if (version_compare($current_version,'0.0','<=')){
23                        creer_base();
24                        ecrire_meta($nom_meta_base_version,$current_version=$version_base,'non');
25
26                        /**
27                         * On crée un groupe de mots dédié qui servira à la configuration
28                         * On active les mots clés dans le site si ce n'est déjà fait
29                         * On active une configuration du plugin par défaut
30                         */
31                        $titre_groupe = '- Tags -';
32                        $id_groupe = sql_getfetsel('id_groupe','spip_groupes_mots','titre='.sql_quote($titre_groupe));
33                        if(!$id_groupe){
34                                $id_groupe = sql_insertq('spip_groupes_mots',array('titre' => $titre_groupe,'tables_liees' => 'articles','minirezo'=>'oui','comite'=>'oui','forum'=>'oui'));
35                        }
36                        if($GLOBALS['meta']['config_precise_groupes'] == 'non'){
37                                ecrire_meta('config_precise_groupes','oui','oui');
38                        }
39                        if($GLOBALS['meta']['articles_mots'] == 'non'){
40                                ecrire_meta('articles_mots','oui','oui');
41                        }
42                        $config_spipicious = array('people' => array('0minirezo'),'groupe_mot' => $id_groupe);
43                        ecrire_meta('spipicious',serialize($config_spipicious),'oui');
44                        echo _T('spipicious:message_installation_activation');
45                }
46                if(version_compare($current_version,'0.2','<')){
47                        sql_alter("TABLE `spip_spipicious` ADD PRIMARY KEY (`id_mot`) ");
48                        sql_alter("TABLE `spip_spipicious` ADD KEY (`id_auteur`) ");
49                        sql_alter("TABLE `spip_spipicious` ADD maj timestamp AFTER position ");
50                        echo _T('spipicious:message_upgrade_database',array('version'=>0.2));
51                        ecrire_meta($nom_meta_base_version,$current_version=0.2,'non');
52                }
53                if(version_compare($current_version,'0.3','<')){
54                        sql_alter("TABLE `spip_spipicious` ADD id_rubrique bigint(21) NOT NULL AFTER`id_article` ");
55                        sql_alter("TABLE `spip_spipicious` ADD id_document bigint(21) NOT NULL AFTER`id_rubrique` ");
56                        echo _T('spipicious:message_upgrade_database',array('version'=>0.3));
57                        ecrire_meta($nom_meta_base_version,$current_version=0.3,'non');
58                }
59                if(version_compare($current_version,'0.4','<')){
60                        $desc = sql_showtable("spip_spipicious", true);
61                        if (isset($desc['PRIMARY KEY']['id_mot'])){
62                                sql_alter("TABLE `spip_spipicious` DROP PRIMARY KEY (`id_mot`) ");
63                                sql_alter("TABLE `spip_spipicious` ADD KEY (`id_mot`) ");
64                        }
65                        $desc_mots_docs = sql_showtable("spip_mots_documents", true);
66                        if(!isset($desc_mots_docs['field']['id_mot'])){
67                                include_spip('base/create');
68                                include_spip('base/abstract_sql');
69                                creer_base();
70                                echo "Creation de la table spip_mots_documents<br/>";
71                        }
72                        echo _T('spipicious:message_upgrade_database',array('version'=>0.4));
73                        ecrire_meta($nom_meta_base_version,$current_version=0.4,'non');
74                }
75                if(version_compare($current_version,'0.5','<')){
76                        sql_alter("TABLE `spip_spipicious` ADD id_syndic bigint(21) NOT NULL AFTER`id_document` ");
77                        sql_alter("TABLE `spip_spipicious` ADD id_evenement bigint(21) NOT NULL AFTER`id_syndic` ");
78                        echo _T('spipicious:message_upgrade_database',array('version'=>0.5));
79                        ecrire_meta($nom_meta_base_version,$current_version=0.5,'non');
80                }
81                if(version_compare($current_version,'0.6','<')){
82                        sql_alter("TABLE `spip_spipicious` ADD id_objet bigint(21) NOT NULL AFTER `id_auteur` ");
83                        sql_alter("TABLE `spip_spipicious` ADD objet VARCHAR (25) DEFAULT '' NOT NULL AFTER `id_objet` ");
84                        spipicious_id_objet_objet_upgrade();
85                        sql_alter("TABLE `spip_spipicious` DROP PRIMARY KEY");
86                        sql_alter("TABLE `spip_spipicious` ADD PRIMARY KEY (`id_mot`,`id_auteur`,`id_objet`,`objet`)");
87                        sql_alter("TABLE `spip_spipicious` DROP COLUMN `id_article`");
88                        sql_alter("TABLE `spip_spipicious` DROP COLUMN `id_document`");
89                        sql_alter("TABLE `spip_spipicious` DROP COLUMN `id_rubrique`");
90                        sql_alter("TABLE `spip_spipicious` DROP COLUMN `id_syndic`");
91                        sql_alter("TABLE `spip_spipicious` DROP COLUMN `id_evenement`");
92                        echo _T('spipicious:message_upgrade_database',array('version'=>0.6));
93                        ecrire_meta($nom_meta_base_version,$current_version=0.6,'non');
94                }
95                if(version_compare($current_version,'0.6.1','<')){
96                        $id_groupe = lire_config('spipicious/groupe_mot');
97                        if($id_groupe){
98                                sql_updateq('spip_groupes_mots',array('tables_liees' => 'articles','minirezo'=>'oui','comite'=>'oui','forum'=>'oui'),'id_groupe='.$id_groupe);
99                        }
100                        ecrire_meta($nom_meta_base_version,$current_version='0.6.1','non');
101                }
102                if(version_compare($current_version,'0.6.2','<')){
103                        maj_tables(array('spip_spipicious'));
104                        $spipicious = sql_select('*','spip_spipicious');
105                        while($iter = sql_fetch($spipicious)){
106                                $table = table_objet_sql($iter['objet']);
107                                $id_table_objet = id_table_objet($iter['objet']);
108                                $objet = sql_fetsel('*',$table,$id_table_objet.'='.intval($iter['id_objet']));
109                                if(isset($objet['statut']) && $objet['statut'] != 'publie'){
110                                        sql_updateq('spip_spipicious',array('statut'=>'prop'),'id_objet='.intval($iter['id_objet'].' AND objet='.sql_quote($iter['objet'])));
111                                }else if(!is_array($objet)){
112                                        sql_updateq('spip_spipicious',array('statut'=>'prop'),'id_objet='.intval($iter['id_objet'].' AND objet='.sql_quote($iter['objet'])));
113                                }
114                        }
115                        ecrire_meta($nom_meta_base_version,$current_version='0.6.2','non');
116                }
117                ecrire_metas();
118        }
119}
120
121function spipicious_vider_tables($nom_meta_version_base) {
122        sql_drop_table("spip_spipicious");
123        effacer_meta($nom_meta_version_base);
124        effacer_meta('spipicious');
125        ecrire_metas();
126}
127
128
129/**
130 * Reunir en un seul champs id_objet/objet
131 */
132function spipicious_id_objet_objet_upgrade () {
133        // Recopier les donnees avec le coupe id_objet / objet
134        foreach (array('article', 'rubrique', 'document', 'evenement', 'syndic') as $liste => $l) {
135                $s = sql_select('*', 'spip_spipicious','id_'.$l.' > 0');
136                while ($t = sql_fetch($s)) {
137                        $t['id_objet'] = $t["id_$l"];
138                        $t['objet'] = $l;
139                        sql_updateq('spip_spipicious',$t,'id_'.$l.' = '.intval($t['id_'.$l]).' AND id_mot='.intval($t['id_mot'].' AND id_auteur='.intval($t{'id_auteur'})));
140                }
141        }
142}
143?>
Note: See TracBrowser for help on using the repository browser.