source: spip-zone/_core_/plugins/forum/forum_administrations.php

Last change on this file was 113294, checked in by spip.franck@…, 11 months ago

Il parait que le futur c'est maintenant :-D

File size: 4.6 KB
Line 
1<?php
2
3/***************************************************************************\
4 *  SPIP, Systeme de publication pour l'internet                           *
5 *                                                                         *
6 *  Copyright (c) 2001-2019                                                *
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\Forum\Installation
17 **/
18
19if (!defined("_ECRIRE_INC_VERSION")) {
20        return;
21}
22
23/**
24 * Installation/maj des tables forum
25 *
26 * @param string $nom_meta_base_version
27 * @param string $version_cible
28 */
29function forum_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                $trouver_table(''); // vider le cache des descriptions !
38                if ($desc = $trouver_table('spip_forum')
39                        and isset($desc['field']['id_article'])
40                ) {
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_forum')),
49        );
50        $maj['1.1.0'] = array(
51                array('sql_alter', "TABLE spip_forum ADD id_objet bigint(21) DEFAULT 0 NOT NULL AFTER id_forum"),
52                array('sql_alter', "TABLE spip_forum ADD objet VARCHAR (25) DEFAULT '' NOT NULL AFTER id_objet"),
53                #array('sql_alter',"TABLE spip_forum DROP INDEX optimal"),
54                #array('sql_alter',"TABLE spip_forum ADD INDEX optimal (statut,id_parent,id_objet,objet,date_heure)"),
55        );
56        $maj['1.1.1'] = array(
57                array('sql_update', "spip_forum", array('objet' => "'breve'", 'id_objet' => 'id_breve'), 'id_breve> 0'),
58                #array('sql_alter',"TABLE spip_forum DROP id_breve"),
59                array('sql_update', "spip_forum", array('objet' => "'article'", 'id_objet' => 'id_article'), 'id_article>0'),
60                #array('sql_alter',"TABLE spip_forum DROP id_article"),
61                array('sql_update', "spip_forum", array('objet' => "'site'", 'id_objet' => 'id_syndic'), 'id_syndic>0'),
62                #array('sql_alter',"TABLE spip_forum DROP id_syndic"),
63                array('sql_update', "spip_forum", array('objet' => "'message'", 'id_objet' => 'id_message'), 'id_message>0'),
64                #array('sql_alter',"TABLE spip_forum DROP id_message"),
65                array('sql_update', "spip_forum", array('objet' => "'rubrique'", 'id_objet' => 'id_rubrique'), 'id_rubrique>0'),
66                #array('sql_alter',"TABLE spip_forum DROP id_rubrique"),
67        );
68
69        # champ ip sur 40 car (compat IPv6)
70        $maj['1.2.0'] = array(
71                array('sql_alter', "TABLE spip_forum CHANGE ip ip VARCHAR(40) DEFAULT '' NOT NULL"),
72        );
73        # rejouer la suppression/creation de l'index optimal
74        # et la suppression des vieux champs, car la premiere sequence avait echoue
75        # en raison d'un DROP KEY au lieu de DROP INDEX
76        $maj['1.2.1'] = array(
77                array('sql_alter', "TABLE spip_forum DROP INDEX optimal"),
78                array('sql_alter', "TABLE spip_forum ADD INDEX optimal (statut,id_parent,id_objet,objet,date_heure)"),
79                array('sql_alter', "TABLE spip_forum DROP id_breve"),
80                array('sql_alter', "TABLE spip_forum DROP id_article"),
81                array('sql_alter', "TABLE spip_forum DROP id_syndic"),
82                array('sql_alter', "TABLE spip_forum DROP id_message"),
83                array('sql_alter', "TABLE spip_forum DROP id_rubrique"),
84        );
85        $maj['1.2.2'] = array(
86                array(
87                        'ecrire_meta',
88                        'forum_prive_objets',
89                        ($GLOBALS['meta']['forum_prive_objets'] == 'non') ? '' : 'spip_articles,spip_breves,spip_syndic'
90                ),
91        );
92
93
94        include_spip('base/upgrade');
95        maj_plugin($nom_meta_base_version, $version_cible, $maj);
96}
97
98/**
99 * Désinstallation/suppression des tables forum
100 *
101 * @param string $nom_meta_base_version
102 */
103function forum_vider_tables($nom_meta_base_version) {
104        sql_drop_table("spip_forum");
105
106        effacer_meta("mots_cles_forums");
107        effacer_meta("forums_titre");
108        effacer_meta("forums_texte");
109        effacer_meta("forums_urlref");
110        effacer_meta("forums_afficher_barre");
111        effacer_meta("forums_forcer_previsu");
112        effacer_meta("formats_documents_forum");
113        effacer_meta("forums_publics");
114        effacer_meta("forum_prive");
115        effacer_meta("forum_prive_objets");
116        effacer_meta("forum_prive_admin");
117
118        effacer_meta($nom_meta_base_version);
119}
Note: See TracBrowser for help on using the repository browser.