807b056cf3bf898ba576099da23c464453df43cd
[lhc/web/www.git] / www / ecrire / maj / v009.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2017 *
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 0.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°009
24 *
25 * @param float $version_installee Version actuelle
26 * @param float $version_cible Version de destination
27 **/
28 function maj_v009_dist($version_installee, $version_cible) {
29 if (upgrade_vers(0.98, $version_installee, $version_cible)) {
30
31 spip_query("ALTER TABLE spip_articles ADD maj TIMESTAMP");
32 spip_query("ALTER TABLE spip_articles ADD export VARCHAR(10) DEFAULT 'oui'");
33 spip_query("ALTER TABLE spip_articles ADD images TEXT DEFAULT ''");
34 spip_query("ALTER TABLE spip_articles ADD date_redac datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
35 spip_query("ALTER TABLE spip_articles DROP INDEX id_article");
36 spip_query("ALTER TABLE spip_articles ADD INDEX id_rubrique (id_rubrique)");
37 spip_query("ALTER TABLE spip_articles ADD visites INTEGER DEFAULT '0' NOT NULL");
38 spip_query("ALTER TABLE spip_articles ADD referers BLOB NOT NULL");
39
40 spip_query("ALTER TABLE spip_auteurs ADD maj TIMESTAMP");
41 spip_query("ALTER TABLE spip_auteurs ADD pgp BLOB NOT NULL");
42
43 spip_query("ALTER TABLE spip_auteurs_articles ADD INDEX id_auteur (id_auteur), ADD INDEX id_article (id_article)");
44
45 spip_query("ALTER TABLE spip_rubriques ADD maj TIMESTAMP");
46 spip_query("ALTER TABLE spip_rubriques ADD export VARCHAR(10) DEFAULT 'oui', ADD id_import BIGINT DEFAULT '0'");
47
48 spip_query("ALTER TABLE spip_breves ADD maj TIMESTAMP");
49 spip_query("ALTER TABLE spip_breves DROP INDEX id_breve");
50 spip_query("ALTER TABLE spip_breves DROP INDEX id_breve_2");
51 spip_query("ALTER TABLE spip_breves ADD INDEX id_rubrique (id_rubrique)");
52
53 spip_query("ALTER TABLE spip_forum ADD ip VARCHAR(16)");
54 spip_query("ALTER TABLE spip_forum ADD maj TIMESTAMP");
55 spip_query("ALTER TABLE spip_forum DROP INDEX id_forum");
56 spip_query("ALTER TABLE spip_forum ADD INDEX id_parent (id_parent), ADD INDEX id_rubrique (id_rubrique), ADD INDEX id_article(id_article), ADD INDEX id_breve(id_breve)");
57 maj_version(0.98);
58 }
59
60 if (upgrade_vers(0.99, $version_installee, $version_cible)) {
61
62 $result = spip_query("SELECT DISTINCT id_article FROM spip_forum WHERE id_article!=0 AND id_parent=0");
63
64 while ($row = sql_fetch($result)) {
65 unset($forums_article);
66 $id_article = $row['id_article'];
67 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_article=$id_article");
68 for (; ;) {
69 unset($forums);
70 while ($row2 = sql_fetch($result2)) {
71 $forums[] = $row2['id_forum'];
72 }
73 if (!$forums) {
74 break;
75 }
76 $forums = join(',', $forums);
77 $forums_article[] = $forums;
78 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
79 }
80 $forums_article = join(',', $forums_article);
81 spip_query("UPDATE spip_forum SET id_article=$id_article WHERE id_forum IN ($forums_article)");
82 }
83
84 $result = spip_query("SELECT DISTINCT id_breve FROM spip_forum WHERE id_breve!=0 AND id_parent=0");
85
86 while ($row = sql_fetch($result)) {
87 unset($forums_breve);
88 $id_breve = $row['id_breve'];
89 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_breve=$id_breve");
90 for (; ;) {
91 unset($forums);
92 while ($row2 = sql_fetch($result2)) {
93 $forums[] = $row2['id_forum'];
94 }
95 if (!$forums) {
96 break;
97 }
98 $forums = join(',', $forums);
99 $forums_breve[] = $forums;
100 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
101 }
102 $forums_breve = join(',', $forums_breve);
103 spip_query("UPDATE spip_forum SET id_breve=$id_breve WHERE id_forum IN ($forums_breve)");
104 }
105
106 $result = spip_query("SELECT DISTINCT id_rubrique FROM spip_forum WHERE id_rubrique!=0 AND id_parent=0");
107
108 while ($row = sql_fetch($result)) {
109 unset($forums_rubrique);
110 $id_rubrique = $row['id_rubrique'];
111 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_rubrique=$id_rubrique");
112 for (; ;) {
113
114 unset($forums);
115 while ($row2 = sql_fetch($result2)) {
116 $forums[] = $row2['id_forum'];
117 }
118 if (!$forums) {
119 break;
120 }
121 $forums = join(',', $forums);
122 $forums_rubrique[] = $forums;
123 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
124 }
125 $forums_rubrique = join(',', $forums_rubrique);
126 spip_query("UPDATE spip_forum SET id_rubrique=$id_rubrique WHERE id_forum IN ($forums_rubrique)");
127
128 }
129 maj_version(0.99);
130 }
131
132 if (upgrade_vers(0.997, $version_installee, $version_cible)) {
133 spip_query("DROP TABLE spip_index");
134 maj_version(0.997);
135 }
136
137 if (upgrade_vers(0.999, $version_installee, $version_cible)) {
138
139 spip_query("ALTER TABLE spip_auteurs CHANGE pass pass tinyblob NOT NULL");
140 spip_query("ALTER TABLE spip_auteurs ADD htpass tinyblob NOT NULL");
141 $result = spip_query("SELECT id_auteur, pass FROM spip_auteurs WHERE pass!=''");
142
143 while ($r = sql_fetch($result)) {
144 $htpass = generer_htpass($r['pass']);
145 $pass = md5($pass);
146 spip_query("UPDATE spip_auteurs SET pass='$pass', htpass='$htpass' WHERE id_auteur=" . $r['id_auteur']);
147 }
148 maj_version(0.999);
149 }
150 }