source: plugins/agenda/1_9_2/base/agenda_upgrade.php @ 10

Last change on this file since 10 was 10, checked in by guille, 17 years ago

Plugins Necesarios

File size: 4.3 KB
Line 
1<?php
2       
3        $GLOBALS['agenda_base_version'] = 0.13;
4        function Agenda_verifier_base(){
5                $version_base = $GLOBALS['agenda_base_version'];
6                $current_version = 0.0;
7                if (   (!isset($GLOBALS['meta']['agenda_base_version']) )
8                                || (($current_version = $GLOBALS['meta']['agenda_base_version'])!=$version_base)){
9                        include_spip('base/agenda_evenements');
10                        if ($current_version==0.0){
11                                include_spip('base/create');
12                                include_spip('base/abstract_sql');
13                                creer_base();
14                                // ajout du champ evenements a la table spip_groupe_mots
15                                // si pas deja existant
16                                $desc = spip_abstract_showtable("spip_groupes_mots", '', true);
17                                if (!isset($desc['field']['evenements'])){
18                                        spip_query("ALTER TABLE spip_groupes_mots ADD `evenements` VARCHAR(3) NOT NULL AFTER `syndic`");
19                                }
20                                ecrire_meta('agenda_base_version',$current_version=$version_base,'non');
21                        }
22                        if ($current_version<0.11){
23                                spip_query("ALTER TABLE spip_evenements ADD `horaire` ENUM('oui','non') DEFAULT 'oui' NOT NULL AFTER `lieu`");
24                                ecrire_meta('agenda_base_version',$current_version=0.11,'non');
25                        }
26                        if ($current_version<0.12){
27                                spip_query("ALTER TABLE spip_evenements ADD `id_article` bigint(21) DEFAULT '0' NOT NULL AFTER `id_evenement`");
28                                spip_query("ALTER TABLE spip_evenements ADD INDEX ( `id_article` )");
29                                $res = spip_query ("SELECT * FROM spip_evenements_articles");
30                                while ($row = spip_fetch_array($res)){
31                                        $id_article = $row['id_article'];
32                                        $id_evenement = $row['id_evenement'];
33                                        spip_query("UPDATE spip_evenements SET id_article=$id_article WHERE id_evenement=$id_evenement");
34                                }
35                                spip_query("DROP TABLE spip_evenements_articles");
36                                ecrire_meta('agenda_base_version',$current_version=0.12,'non');
37                        }
38                        if ($current_version<0.13){
39                                include_spip('base/create');
40                                include_spip('base/abstract_sql');
41                                creer_base();
42                                ecrire_meta('agenda_base_version',$current_version=0.13,'non');
43                        }
44       
45                        ecrire_metas();
46                }
47               
48                if (isset($GLOBALS['meta']['INDEX_elements_objet'])){
49                        $INDEX_elements_objet = unserialize($GLOBALS['meta']['INDEX_elements_objet']);
50                        if (!isset($INDEX_elements_objet['spip_evenements'])){
51                                $INDEX_elements_objet['spip_evenements'] = array('titre'=>8,'descriptif'=>4,'lieu'=>3);
52                                ecrire_meta('INDEX_elements_objet',serialize($INDEX_elements_objet));
53                                ecrire_metas();
54                        }
55                }
56                if (isset($GLOBALS['meta']['INDEX_objet_associes'])){
57                        $INDEX_objet_associes = unserialize($GLOBALS['meta']['INDEX_objet_associes']);
58                        if (!isset($INDEX_objet_associes['spip_articles']['spip_evenements'])){
59                                $INDEX_objet_associes['spip_articles']['spip_evenements'] = 1;
60                                ecrire_meta('INDEX_objet_associes',serialize($INDEX_objet_associes));
61                                ecrire_metas();
62                        }
63                }
64                if (isset($GLOBALS['meta']['INDEX_elements_associes'])){
65                        $INDEX_elements_associes = unserialize($GLOBALS['meta']['INDEX_elements_associes']);
66                        if (!isset($INDEX_elements_associes['spip_evenements'])){
67                                $INDEX_elements_associes['spip_evenements'] = array('titre'=>2,'descriptif'=>1);
68                                ecrire_meta('INDEX_elements_associes',serialize($INDEX_elements_associes));
69                                ecrire_metas();
70                        }
71                }
72        }
73       
74        function Agenda_vider_tables() {
75                include_spip('base/agenda_evenements');
76                include_spip('base/abstract_sql');
77                // suppression du champ evenements a la table spip_groupe_mots
78                spip_query("ALTER TABLE spip_groupes_mots DROP evenements");
79                spip_query("DROP TABLE spip_evenements");
80                spip_query("DROP TABLE spip_mots_evenements");
81                effacer_meta('agenda_base_version');
82                ecrire_metas();
83        }
84       
85        function Agenda_install($action){
86                $version_base = $GLOBALS['agenda_base_version'];
87                switch ($action){
88                        case 'test':
89                                return (isset($GLOBALS['meta']['agenda_base_version']) AND ($GLOBALS['meta']['agenda_base_version']>=$version_base)
90                                AND isset($GLOBALS['meta']['INDEX_elements_objet'])
91                                AND $t = unserialize($GLOBALS['meta']['INDEX_elements_objet'])
92                                AND isset($t['spip_evenements'])
93                                AND isset($GLOBALS['meta']['INDEX_objet_associes'])
94                                AND $t = unserialize($GLOBALS['meta']['INDEX_objet_associes'])
95                                AND isset($t['spip_articles']['spip_evenements'])
96                                AND isset($GLOBALS['meta']['INDEX_elements_associes'])
97                                AND $t = unserialize($GLOBALS['meta']['INDEX_elements_associes'])
98                                AND isset($t['spip_evenements']));
99                                break;
100                        case 'install':
101                                Agenda_verifier_base();
102                                break;
103                        case 'uninstall':
104                                Agenda_vider_tables();
105                                break;
106                }
107        }       
108?>
Note: See TracBrowser for help on using the repository browser.