source: spip-zone/_core_/branches/spip-2.1/plugins/forum/base/forum_upgrade.php @ 48781

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

VARCHAR

File size: 3.1 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2009                                                *
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 * Installation/maj des tables forum
15 *
16 * @param string $nom_meta_base_version
17 * @param string $version_cible
18 */
19function forum_upgrade($nom_meta_base_version,$version_cible){
20        $current_version = '0.0';
21
22        if ( (!isset($GLOBALS['meta'][$nom_meta_base_version]) )
23                        || (($current_version = $GLOBALS['meta'][$nom_meta_base_version])!=$version_cible)){
24
25                if (version_compare($current_version, '0.0','<=')){
26                        include_spip('base/forum');
27                        include_spip('base/create');
28                        // creer les tables
29                        creer_base();
30                        // mettre les metas par defaut
31                        $config = charger_fonction('config','inc');
32                        $config();
33                        ecrire_meta($nom_meta_base_version,$current_version = '1.0');
34                }
35
36                # mise a jour de (id_article,id_breve,...) vers (objet,id_objet)
37                if (version_compare($current_version, '1.1','<')) {
38                        echo "<h4>MISE A JOUR DES FORUMS (objet,id_objet)</h4>";
39                        sql_alter("TABLE spip_forum ADD `id_objet` bigint(21) DEFAULT 0 NOT NULL AFTER `id_forum`");
40                        sql_alter("TABLE spip_forum ADD `objet` VARCHAR (25) DEFAULT '' NOT NULL AFTER `id_objet`");
41                        sql_alter("TABLE spip_forum DROP key `optimal`");
42                        sql_alter("TABLE spip_forum ADD key `optimal` (`statut`,`id_parent`,`id_objet`,`objet`,`date_heure`)");
43
44                        echo "<ul>";
45
46                        foreach(array('breve', 'article', 'syndic', 'message', 'rubrique')
47                        as $objet) {
48                                echo "<li>$objet</li>";
49                                sql_update("spip_forum", array(
50                                        'objet' => sql_quote($objet),
51                                        'id_objet' => 'id_'.$objet
52                                ), 'id_'.$objet.' > 0');
53                                sql_alter('TABLE spip_forum DROP `id_'.$objet.'`');
54                        }
55
56                        echo "</ul>";
57
58                        ecrire_meta($nom_meta_base_version,$current_version = '1.1');
59                }
60
61                # champ ip sur 40 car (compat IPv6)
62                if (version_compare($current_version, '1.2','<')) {
63                        sql_alter("TABLE spip_forum CHANGE `ip` `ip` VARCHAR(40) DEFAULT '' NOT NULL");
64                        ecrire_meta($nom_meta_base_version,$current_version = '1.2');
65                }
66        }
67}
68
69/**
70 * Desinstallation/suppression des tables forum
71 *
72 * @param string $nom_meta_base_version
73 */
74function forum_vider_tables($nom_meta_base_version) {
75        sql_drop_table("spip_forum");
76        sql_drop_table("spip_mots_forum");
77
78        effacer_meta("mots_cles_forums");
79        effacer_meta("forums_titre");
80        effacer_meta("forums_texte");
81        effacer_meta("forums_urlref");
82        effacer_meta("forums_afficher_barre");
83        effacer_meta("formats_documents_forum");
84        effacer_meta("forums_publics");
85        effacer_meta("forum_prive");
86        effacer_meta("forum_prive_objets");
87        effacer_meta("forum_prive_admin");
88
89        effacer_meta($nom_meta_base_version);
90}
91
92?>
Note: See TracBrowser for help on using the repository browser.