[SPIP] ~v3.0.20-->v3.0.25
[lhc/web/clavette_www.git] / www / ecrire / maj / v018.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2016 *
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 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 function maj_v018_dist($version_installee, $version_cible)
16 {
17 if (upgrade_vers(1.801, $version_installee, $version_cible)) {
18 spip_query("ALTER TABLE spip_rubriques ADD statut_tmp VARCHAR(10) NOT NULL, ADD date_tmp datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
19 include_spip('inc/rubriques');
20 calculer_rubriques();
21 maj_version(1.801);
22 }
23
24 // Nouvelles tables d'invalidation
25 if (upgrade_vers(1.802, $version_installee, $version_cible)) {
26 spip_query("DROP TABLE spip_id_article_caches");
27 spip_query("DROP TABLE spip_id_auteur_caches");
28 spip_query("DROP TABLE spip_id_breve_caches");
29 spip_query("DROP TABLE spip_id_document_caches");
30 spip_query("DROP TABLE spip_id_forum_caches");
31 spip_query("DROP TABLE spip_id_groupe_caches");
32 spip_query("DROP TABLE spip_id_message_caches");
33 spip_query("DROP TABLE spip_id_mot_caches");
34 spip_query("DROP TABLE spip_id_rubrique_caches");
35 spip_query("DROP TABLE spip_id_signature_caches");
36 spip_query("DROP TABLE spip_id_syndic_article_caches");
37 spip_query("DROP TABLE spip_id_syndic_caches");
38 spip_query("DROP TABLE spip_id_type_caches");
39 spip_query("DROP TABLE spip_inclure_caches");
40 maj_version(1.802);
41 }
42 if (upgrade_vers(1.803, $version_installee, $version_cible)) {
43
44 # 27 AOUT 2004 : conservons cette table pour autoriser les retours
45 # de SPIP 1.8a6 CVS vers 1.7.2
46 # spip_query("DROP TABLE spip_forum_cache");
47
48 spip_query("DROP TABLE spip_inclure_caches");
49 maj_version(1.803);
50 }
51 if (upgrade_vers(1.804, $version_installee, $version_cible)) {
52 // recreer la table spip_caches
53 spip_query("DROP TABLE spip_caches");
54 creer_base();
55 maj_version(1.804);
56 }
57
58 //
59 // Recalculer tous les threads
60 // function du plugin forum recopiee ici pour assurer la montee de version dans tous les cas de figure
61 function maj_v018_calculer_threads() {
62 // fixer les id_thread des debuts de discussion
63 sql_update('spip_forum', array('id_thread'=>'id_forum'), "id_parent=0");
64 // reparer les messages qui n'ont pas l'id_secteur de leur parent
65 do {
66 $discussion = "0";
67 $precedent = 0;
68 $r = sql_select("fille.id_forum AS id, maman.id_thread AS thread", 'spip_forum AS fille, spip_forum AS maman', "fille.id_parent = maman.id_forum AND fille.id_thread <> maman.id_thread",'', "thread");
69 while ($row = sql_fetch($r)) {
70 if ($row['thread'] == $precedent)
71 $discussion .= "," . $row['id'];
72 else {
73 if ($precedent)
74 sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ($discussion)");
75 $precedent = $row['thread'];
76 $discussion = $row['id'];
77 }
78 }
79 sql_updateq("spip_forum", array("id_thread" => $precedent), "id_forum IN ($discussion)");
80 } while ($discussion != "0");
81 }
82 if (upgrade_vers(1.805, $version_installee, $version_cible)) {
83 spip_query("ALTER TABLE spip_forum ADD id_thread bigint(21) DEFAULT '0' NOT NULL");
84 maj_v018_calculer_threads();
85 maj_version(1.805);
86 }
87
88 // tables d'orthographe
89 #if ($version_installee < 1.806)
90 # maj_version(1.806);
91
92 // URLs propres (inc_version = 0.12)
93 if (upgrade_vers(1.807, $version_installee, $version_cible)) {
94 foreach (array('articles', 'breves', 'rubriques', 'mots') as $objets) {
95 spip_query("ALTER TABLE spip_$objets ADD url_propre VARCHAR(255) NOT NULL");
96 spip_query("ALTER TABLE spip_$objets ADD INDEX url_propre (url_propre)");
97 }
98 maj_version(1.807);
99 }
100
101 // referers de la veille
102 if (upgrade_vers(1.808, $version_installee, $version_cible)) {
103 spip_query("ALTER TABLE spip_referers ADD visites_veille INT UNSIGNED NOT NULL");
104 maj_version(1.808);
105 }
106
107
108 // corrections diverses
109 if (upgrade_vers(1.809, $version_installee, $version_cible)) {
110 // plus de retour possible vers 1.7.2
111 spip_query("DROP TABLE spip_forum_cache");
112
113 // les requetes ci-dessous ne s'appliqueront que si on est passe
114 // par une certaine version de developpement - oublie de le faire
115 // plus tot, car le code d'alors recreait purement et simplement
116 // cette table
117 spip_query("ALTER TABLE spip_versions DROP chapo");
118 spip_query("ALTER TABLE spip_versions DROP texte");
119 spip_query("ALTER TABLE spip_versions DROP ps");
120 spip_query("ALTER TABLE spip_versions DROP extra");
121 spip_query("ALTER TABLE spip_versions ADD champs text NOT NULL");
122
123 maj_version(1.809);
124 }
125
126 // Annuler les brouillons de forum jamais valides
127 if (upgrade_vers(1.810, $version_installee, $version_cible)) {
128 sql_delete("spip_forum", "statut='redac'");
129 maj_version(1.810);
130 }
131
132 if (upgrade_vers(1.811, $version_installee, $version_cible)) {
133 spip_query("ALTER TABLE spip_syndic ADD extra longblob NULL");
134 maj_version(1.811);
135 }
136
137 if (upgrade_vers(1.812, $version_installee, $version_cible)) {
138 spip_query("ALTER TABLE spip_documents ADD idx ENUM('', '1', 'non', 'oui', 'idx') DEFAULT '' NOT NULL");
139 maj_version(1.812);
140 }
141
142 // Mise a jour des types MIME
143 if (upgrade_vers(1.813, $version_installee, $version_cible)) {
144 # rien a faire car c'est creer_base() qui s'en charge
145 maj_version(1.813);
146 }
147
148 // URLs propres auteurs
149 if (upgrade_vers(1.814, $version_installee, $version_cible)) {
150 spip_query("ALTER TABLE spip_auteurs ADD url_propre VARCHAR(255) NOT NULL");
151 spip_query("ALTER TABLE spip_auteurs ADD INDEX url_propre (url_propre)");
152 maj_version(1.814);
153 }
154
155 // Mots-cles sur les documents
156 // + liens documents <-> sites et articles syndiques (podcasting)
157 if (upgrade_vers(1.815, $version_installee, $version_cible)) {
158 spip_query("ALTER TABLE spip_documents ADD distant VARCHAR(3) DEFAULT 'non'");
159 maj_version(1.815);
160 }
161
162 // Indexation des documents (rien a faire sauf reinstaller inc_auxbase)
163 if (upgrade_vers(1.816, $version_installee, $version_cible)) {
164 maj_version(1.816);
165 }
166
167 // Texte et descriptif des groupes de mots-cles
168 if (upgrade_vers(1.817, $version_installee, $version_cible)) {
169 spip_query("ALTER TABLE spip_groupes_mots ADD descriptif text NOT NULL AFTER titre");
170 spip_query("ALTER TABLE spip_groupes_mots ADD COLUMN texte longblob NOT NULL AFTER descriptif");
171 maj_version(1.817);
172 }
173
174 // Conformite des noms de certains champs (0minirezo => minirezo)
175 if (upgrade_vers(1.818, $version_installee, $version_cible)) {
176 spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 0minirezo minirezo char(3) NOT NULL");
177 spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 1comite comite char(3) NOT NULL");
178 spip_query("ALTER TABLE spip_groupes_mots CHANGE COLUMN 6forum forum char(3) NOT NULL");
179 maj_version(1.818);
180 }
181
182 // Options de syndication : miroir + oubli
183 if (upgrade_vers(1.819, $version_installee, $version_cible)) {
184 spip_query("ALTER TABLE spip_syndic ADD miroir VARCHAR(3) DEFAULT 'non'");
185 spip_query("ALTER TABLE spip_syndic ADD oubli VARCHAR(3) DEFAULT 'non'");
186 maj_version(1.819);
187 }
188
189 // Un bug dans les 1.730 (il manquait le "ADD")
190 if (upgrade_vers(1.820, $version_installee, $version_cible)) {
191 spip_query("ALTER TABLE spip_articles ADD INDEX idx (idx)");
192 spip_query("ALTER TABLE spip_auteurs ADD INDEX idx (idx)");
193 spip_query("ALTER TABLE spip_breves ADD INDEX idx (idx)");
194 spip_query("ALTER TABLE spip_mots ADD INDEX idx (idx)");
195 spip_query("ALTER TABLE spip_rubriques ADD INDEX idx (idx)");
196 spip_query("ALTER TABLE spip_syndic ADD INDEX idx (idx)");
197 spip_query("ALTER TABLE spip_forum ADD INDEX idx (idx)");
198 spip_query("ALTER TABLE spip_signatures ADD INDEX idx (idx)");
199 maj_version(1.820);
200 }
201
202 // reindexer les articles (on avait oublie les auteurs)
203 if (upgrade_vers(1.821, $version_installee, $version_cible)) {
204 spip_query("UPDATE spip_articles SET idx='1' WHERE idx='oui'");
205 maj_version(1.821);
206 }
207 // le 'type' des mots doit etre du texte, sinon on depasse en champ multi
208 if (upgrade_vers(1.822, $version_installee, $version_cible)) {
209 spip_query("ALTER TABLE spip_mots DROP INDEX type");
210 spip_query("ALTER TABLE spip_mots CHANGE type type TEXT NOT NULL");
211 maj_version(1.822);
212 }
213 // ajouter une table de fonctions pour ajax
214 if (upgrade_vers(1.825, $version_installee, $version_cible)) {
215 maj_version(1.825);
216 }
217 if (upgrade_vers(1.826, $version_installee, $version_cible)) {
218 spip_query("ALTER TABLE spip_ajax_fonc DROP fonction");
219 maj_version(1.826);
220 }
221 }
222
223
224 ?>