[SPIP] v3.2.1-->v3.2.2
[lhc/web/www.git] / www / ecrire / maj / v019_pre193.php
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 * Gestion des mises à jour de SPIP, versions 1.9*
15 *
16 * @package SPIP\Core\SQL\Upgrade
17 **/
18 if (!defined('_ECRIRE_INC_VERSION')) {
19 return;
20 }
21
22 /**
23 * Mises à jour de SPIP n°019
24 *
25 * @param float $version_installee Version actuelle
26 * @param float $version_cible Version de destination
27 **/
28 function v019_pre193($version_installee, $version_cible) {
29 // Syndication : ajout de l'option resume=oui/non et de la langue
30 if (upgrade_vers(1.901, $version_installee, $version_cible)) {
31 spip_query("ALTER TABLE spip_syndic ADD `resume` VARCHAR(3) DEFAULT 'oui'");
32 spip_query("ALTER TABLE spip_syndic_articles ADD `lang` VARCHAR(10) DEFAULT '' NOT NULL");
33 maj_version(1.901);
34 }
35
36 // Syndication : ajout de source, url_source, tags
37 if (upgrade_vers(1.902, $version_installee, $version_cible)) {
38 spip_query("ALTER TABLE spip_syndic_articles ADD `url_source` TINYTEXT DEFAULT '' NOT NULL");
39 spip_query("ALTER TABLE spip_syndic_articles ADD `source` TINYTEXT DEFAULT '' NOT NULL");
40 spip_query("ALTER TABLE spip_syndic_articles ADD `tags` TEXT DEFAULT '' NOT NULL");
41 maj_version(1.902);
42 }
43
44 // URLs propres des sites (sait-on jamais)
45 // + oubli des KEY url_propre sur les auteurs si installation neuve
46 if (upgrade_vers(1.903, $version_installee, $version_cible)) {
47 spip_query("ALTER TABLE spip_syndic ADD `url_propre` VARCHAR(255) NOT NULL");
48 spip_query("ALTER TABLE spip_syndic ADD INDEX `url_propre` (`url_propre`)");
49 spip_query("ALTER TABLE spip_auteurs ADD INDEX `url_propre` (`url_propre`)");
50 maj_version(1.903);
51 }
52
53 // suppression des anciennes tables temporaires des visites
54 // (maintenant stockees sous forme de fichiers)
55 if (upgrade_vers(1.904, $version_installee, $version_cible)) {
56 spip_query("DROP TABLE IF EXISTS spip_visites_temp");
57 spip_query("DROP TABLE IF EXISTS spip_referers_temp");
58 maj_version(1.904);
59 }
60
61 // fusion des 10 tables index en une seule
62 // pour fonctions futures evoluees du moteur de recherche
63 if (upgrade_vers(1.905, $version_installee, $version_cible)) {
64 // agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
65 // des choses plus sympa
66 spip_query("ALTER TABLE spip_meta DROP INDEX `valeur`");
67 spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
68 // table des correspondances table->id_table
69 $liste_tables = array();
70 $liste_tables[1] = 'spip_articles';
71 $liste_tables[2] = 'spip_auteurs';
72 $liste_tables[3] = 'spip_breves';
73 $liste_tables[4] = 'spip_documents';
74 $liste_tables[5] = 'spip_forum';
75 $liste_tables[6] = 'spip_mots';
76 $liste_tables[7] = 'spip_rubriques';
77 $liste_tables[8] = 'spip_signatures';
78 $liste_tables[9] = 'spip_syndic';
79
80 ecrire_meta('index_table', serialize($liste_tables));
81
82 ## devenu inutile car suppression totale de l'indexation
83 /*
84 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_article` as id_objet,'1' as id_table FROM spip_index_articles");
85 spip_query("DROP TABLE IF EXISTS spip_index_articles");
86
87 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_auteur` as id_objet,'2' as id_table FROM spip_index_auteurs");
88 spip_query("DROP TABLE IF EXISTS spip_index_auteurs");
89
90 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_breve` as id_objet,'3' as id_table FROM spip_index_breves");
91 spip_query("DROP TABLE IF EXISTS spip_index_breves");
92
93 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_document` as id_objet,'4' as id_table FROM spip_index_documents");
94 spip_query("DROP TABLE IF EXISTS spip_index_documents");
95
96 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_forum` as id_objet,'5' as id_table FROM spip_index_forum");
97 spip_query("DROP TABLE IF EXISTS spip_index_forum");
98
99 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_mot` as id_objet,'6' as id_table FROM spip_index_mots");
100 spip_query("DROP TABLE IF EXISTS spip_index_mots");
101
102 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_rubrique` as id_objet,'7' as id_table FROM spip_index_rubriques");
103 spip_query("DROP TABLE IF EXISTS spip_index_rubriques");
104
105 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_signature` as id_objet,'8' as id_table FROM spip_index_signatures");
106 spip_query("DROP TABLE IF EXISTS spip_index_signatures");
107
108 spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_syndic` as id_objet,'9' as `id_table FROM spip_index_syndic");
109 spip_query("DROP TABLE IF EXISTS spip_index_syndic");
110 */
111 maj_version(1.905);
112 }
113
114
115 // cette table est desormais geree par le plugin "podcast_client", on la
116 // supprime si le plugin n'est pas active ; risque inherent a l'utilisation
117 // de versions alpha :-)
118 if (upgrade_vers(1.906, $version_installee, $version_cible)) {
119 if (!@in_array('podcast_client', $GLOBALS['plugins'])) {
120 spip_query("DROP TABLE spip_documents_syndic");
121 }
122 maj_version(1.906);
123 }
124 if (upgrade_vers(1.907, $version_installee, $version_cible)) {
125 spip_query("ALTER TABLE spip_forum ADD INDEX `idx` (`idx`)");
126 maj_version(1.907);
127 }
128 // Oups ! on stockait les tags de syndication sous la forme rel="category"
129 // au lieu de rel="directory" - http://microformats.org/wiki/rel-directory
130 if (upgrade_vers(1.908, $version_installee, $version_cible)) {
131 spip_query("UPDATE spip_syndic_articles SET `tags` = REPLACE(`tags`, 'rel=\"category\">', 'rel=\"directory\">') WHERE `tags` like '%category%'");
132 maj_version(1.908);
133 }
134 if (upgrade_vers(1.909, $version_installee, $version_cible)) {
135 spip_query("ALTER IGNORE TABLE spip_mots_articles ADD PRIMARY KEY (`id_article`, `id_mot`)");
136 spip_query("ALTER IGNORE TABLE spip_mots_breves ADD PRIMARY KEY (`id_breve`, `id_mot`)");
137 spip_query("ALTER IGNORE TABLE spip_mots_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_mot`)");
138 spip_query("ALTER IGNORE TABLE spip_mots_syndic ADD PRIMARY KEY (`id_syndic`, `id_mot`)");
139 spip_query("ALTER IGNORE TABLE spip_mots_documents ADD PRIMARY KEY (`id_document`, `id_mot`)");
140 spip_query("ALTER IGNORE TABLE spip_mots_forum ADD PRIMARY KEY (`id_forum`, `id_mot`)");
141 maj_version(1.909);
142 }
143
144 if (upgrade_vers(1.910, $version_installee, $version_cible)) {
145 spip_query("ALTER IGNORE TABLE spip_auteurs_articles ADD PRIMARY KEY (`id_auteur`, `id_article`)");
146 spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques ADD PRIMARY KEY (`id_auteur`, `id_rubrique`)");
147 spip_query("ALTER IGNORE TABLE spip_auteurs_messages ADD PRIMARY KEY (`id_auteur`, `id_message`)");
148 maj_version(1.910);
149 }
150
151 if (upgrade_vers(1.911, $version_installee, $version_cible)) {
152
153 spip_query("ALTER IGNORE TABLE spip_auteurs_articles DROP INDEX `id_auteur`");
154 spip_query("ALTER IGNORE TABLE spip_auteurs_rubriques DROP INDEX `id_auteur`");
155 spip_query("ALTER IGNORE TABLE spip_auteurs_messages DROP INDEX `id_auteur`");
156 spip_query("ALTER IGNORE TABLE spip_mots_articles DROP INDEX `id_article`");
157 spip_query("ALTER IGNORE TABLE spip_mots_breves DROP INDEX `id_breve`");
158 spip_query("ALTER IGNORE TABLE spip_mots_rubriques DROP INDEX `id_rubrique`");
159 spip_query("ALTER IGNORE TABLE spip_mots_syndic DROP INDEX `id_syndic`");
160 spip_query("ALTER IGNORE TABLE spip_mots_forum DROP INDEX `id_forum`");
161 spip_query("ALTER IGNORE TABLE spip_mots_documents DROP INDEX `id_document`");
162 # 18 juillet 2007: table depreciee
163 # spip_query("ALTER IGNORE TABLE spip_caches DROP INDEX fichier");
164 maj_version(1.911);
165 }
166
167 // Le logo du site n'est plus le logo par defaut des rubriques
168 // mais pour assurer la compatibilite ascendante, on le duplique
169 if (upgrade_vers(1.912, $version_installee, $version_cible)) {
170 @copy(_DIR_LOGOS . 'rubon0.gif', _DIR_LOGOS . 'siteon0.gif');
171 @copy(_DIR_LOGOS . 'ruboff0.gif', _DIR_LOGOS . 'siteoff0.gif');
172 @copy(_DIR_LOGOS . 'rubon0.jpg', _DIR_LOGOS . 'siteon0.jpg');
173 @copy(_DIR_LOGOS . 'ruboff0.jpg', _DIR_LOGOS . 'siteoff0.jpg');
174 @copy(_DIR_LOGOS . 'rubon0.png', _DIR_LOGOS . 'siteon0.png');
175 @copy(_DIR_LOGOS . 'ruboff0.png', _DIR_LOGOS . 'siteoff0.png');
176 maj_version(1.912);
177 }
178
179 // suppression de auteur_modif qui n'est plus utilise nulle part
180 if (upgrade_vers(1.913, $version_installee, $version_cible)) {
181 spip_query("ALTER TABLE spip_articles DROP `auteur_modif`");
182 maj_version(1.913);
183 }
184
185 // Ajout de SVG
186 if (upgrade_vers(1.914, $version_installee, $version_cible)) {
187 spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('svg', 'Scalable Vector Graphics', 'embed')");
188 spip_query("UPDATE spip_types_documents SET `mime_type`='image/svg+xml' WHERE `extension`='svg'");
189 maj_version(1.914);
190 }
191
192 // Ajout de plein de type mime
193 if (upgrade_vers(1.915, $version_installee, $version_cible)) {
194 maj_version(1.915);
195 }
196 // refaire l'upgrade 1.905 qui a pu foirer en partie a cause de la requete ALTER sur spip_meta
197 if (upgrade_vers(1.916, $version_installee, $version_cible)) {
198 // agrandir le champ "valeur" de spip_meta pour pouvoir y stocker
199 // des choses plus sympa
200 spip_query("ALTER TABLE spip_meta DROP INDEX `valeur`");
201 spip_query("ALTER TABLE spip_meta CHANGE `valeur` `valeur` TEXT");
202 #8/08/07 plus d'indexation dans le core
203 //include_spip('inc/indexation');
204 //update_index_tables();
205 maj_version(1.916);
206 }
207 if (upgrade_vers(1.917, $version_installee, $version_cible)) {
208 spip_query("ALTER TABLE spip_documents DROP `inclus`");
209 maj_version(1.917);
210 }
211
212 // Permettre d'enregistrer un numero IP dans les revisions d'articles
213 // a la place de l'id_auteur
214 if (upgrade_vers(1.918, $version_installee, $version_cible)) {
215 spip_query("ALTER TABLE spip_versions CHANGE `id_auteur` `id_auteur` VARCHAR(23)");
216 maj_version(1.918);
217 }
218
219 if (upgrade_vers(1.919, $version_installee, $version_cible)) {
220 spip_query("ALTER TABLE spip_ajax_fonc DROP `id_auteur`");
221 maj_version('1.919');
222 }
223
224 if (upgrade_vers(1.920, $version_installee, $version_cible)) {
225 spip_query("ALTER IGNORE TABLE spip_documents_articles ADD PRIMARY KEY (`id_article`, `id_document`)");
226 spip_query("ALTER IGNORE TABLE spip_documents_breves ADD PRIMARY KEY (`id_breve`, `id_document`)");
227 spip_query("ALTER IGNORE TABLE spip_documents_rubriques ADD PRIMARY KEY (`id_rubrique`, `id_document`)");
228 spip_query("ALTER IGNORE TABLE spip_documents_articles DROP INDEX `id_article`");
229 spip_query("ALTER IGNORE TABLE spip_documents_breves DROP INDEX `id_breve`");
230 spip_query("ALTER IGNORE TABLE spip_documents_rubriques DROP INDEX `id_rubrique`");
231 maj_version('1.920');
232 }
233 if (upgrade_vers(1.922, $version_installee, $version_cible)) {
234 spip_query("ALTER TABLE spip_meta ADD `impt` ENUM('non', 'oui') DEFAULT 'oui' NOT NULL AFTER `valeur`");
235 $meta_serveur = array(
236 'version_installee',
237 'adresse_site',
238 'alea_ephemere_ancien',
239 'alea_ephemere',
240 'alea_ephemere_date',
241 'langue_site',
242 'langues_proposees',
243 'date_calcul_rubriques',
244 'derniere_modif',
245 'optimiser_table',
246 'drapeau_edition',
247 'creer_preview',
248 'taille_preview',
249 'creer_htpasswd',
250 'creer_htaccess',
251 'gd_formats_read',
252 'gd_formats',
253 'netpbm_formats',
254 'formats_graphiques',
255 'image_process',
256 'plugin_header',
257 'plugin'
258 );
259 foreach ($meta_serveur as $nom) {
260 spip_query("UPDATE spip_meta SET `impt`='non' WHERE `nom`=" . _q($nom));
261 }
262 maj_version('1.922');
263 }
264 if (upgrade_vers(1.923, $version_installee, $version_cible)) {
265 if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])) {
266 $IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
267 foreach ($IMPORT_tables_noimport as $key => $table) {
268 if ($table == 'spip_meta') {
269 unset($IMPORT_tables_noimport[$key]);
270 }
271 }
272 ecrire_meta('IMPORT_tables_noimport', serialize($IMPORT_tables_noimport), 'non');
273 }
274 maj_version('1.923');
275 }
276
277 if (upgrade_vers(1.924, $version_installee, $version_cible)) {
278 spip_query('DROP TABLE spip_ajax_fonc');
279 maj_version('1.924');
280 }
281
282 if (upgrade_vers(1.925, $version_installee, $version_cible)) {
283 include_spip('inc/flock');
284 /* deplacement des sessions */
285 $f_session = preg_files('data', 'session_');
286 $repertoire = _DIR_SESSIONS;
287 if (!@file_exists($repertoire)) {
288 $repertoire = preg_replace(',' . _DIR_TMP . ',', '', $repertoire);
289 $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
290 }
291 foreach ($f_session as $f) {
292 $d = basename($f);
293 @copy($f, $repertoire . $d);
294 }
295 /* deplacement des visites */
296 $f_visites = preg_files('data/visites');
297 $repertoire = sous_repertoire(_DIR_TMP, 'visites');
298 foreach ($f_visites as $f) {
299 $d = basename($f);
300 @copy($f, $repertoire . $d);
301 }
302 /* deplacement des upload */
303 $auteurs = array();
304 $req = spip_query("SELECT `login` FROM spip_auteurs WHERE `statut` = '0minirezo'");
305 while ($row = sql_fetch($req)) {
306 $auteurs[] = $row['login'];
307 }
308 $f_upload = preg_files('upload', -1, 10000, $auteurs);
309 $repertoire = _DIR_TRANSFERT;
310 if (!@file_exists($repertoire)) {
311 $repertoire = preg_replace(',' . _DIR_TMP . ',', '', $repertoire);
312 $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
313 }
314 foreach ($auteurs as $login) {
315 if (is_dir('upload/' . $login)) {
316 $sous_repertoire = sous_repertoire(_DIR_TRANSFERT, $login);
317 }
318 }
319 foreach ($f_upload as $f) {
320 @copy($f, _DIR_TMP . $f);
321 }
322 /* deplacement des dumps */
323 $f_session = preg_files('data', 'dump');
324 $repertoire = _DIR_DUMP;
325 if (!@file_exists($repertoire)) {
326 $repertoire = preg_replace(',' . _DIR_TMP . ',', '', $repertoire);
327 $repertoire = sous_repertoire(_DIR_TMP, $repertoire);
328 }
329 foreach ($f_session as $f) {
330 $d = basename($f);
331 @copy($f, $repertoire . $d);
332 }
333 maj_version('1.925');
334 }
335 // Ajout de MP4
336 if (upgrade_vers(1.926, $version_installee, $version_cible)) {
337 spip_query("INSERT IGNORE INTO spip_types_documents (`extension`, `titre`, `inclus`) VALUES ('mp4', 'MPEG4', 'embed')");
338 spip_query("UPDATE spip_types_documents SET `mime_type`='application/mp4' WHERE `extension`='mp4'");
339 maj_version('1.926');
340 }
341 }