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 | */ |
---|
19 | function 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 | */ |
---|
74 | function 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 | ?> |
---|