[SPIP] +2.1.12
[velocampus/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-2011 *
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_v009_dist($version_installee, $version_cible)
16 {
17 if (upgrade_vers(0.98, $version_installee, $version_cible)) {
18
19 spip_query("ALTER TABLE spip_articles ADD maj TIMESTAMP");
20 spip_query("ALTER TABLE spip_articles ADD export VARCHAR(10) DEFAULT 'oui'");
21 spip_query("ALTER TABLE spip_articles ADD images TEXT DEFAULT ''");
22 spip_query("ALTER TABLE spip_articles ADD date_redac datetime DEFAULT '0000-00-00 00:00:00' NOT NULL");
23 spip_query("ALTER TABLE spip_articles DROP INDEX id_article");
24 spip_query("ALTER TABLE spip_articles ADD INDEX id_rubrique (id_rubrique)");
25 spip_query("ALTER TABLE spip_articles ADD visites INTEGER DEFAULT '0' NOT NULL");
26 spip_query("ALTER TABLE spip_articles ADD referers BLOB NOT NULL");
27
28 spip_query("ALTER TABLE spip_auteurs ADD maj TIMESTAMP");
29 spip_query("ALTER TABLE spip_auteurs ADD pgp BLOB NOT NULL");
30
31 spip_query("ALTER TABLE spip_auteurs_articles ADD INDEX id_auteur (id_auteur), ADD INDEX id_article (id_article)");
32
33 spip_query("ALTER TABLE spip_rubriques ADD maj TIMESTAMP");
34 spip_query("ALTER TABLE spip_rubriques ADD export VARCHAR(10) DEFAULT 'oui', ADD id_import BIGINT DEFAULT '0'");
35
36 spip_query("ALTER TABLE spip_breves ADD maj TIMESTAMP");
37 spip_query("ALTER TABLE spip_breves DROP INDEX id_breve");
38 spip_query("ALTER TABLE spip_breves DROP INDEX id_breve_2");
39 spip_query("ALTER TABLE spip_breves ADD INDEX id_rubrique (id_rubrique)");
40
41 spip_query("ALTER TABLE spip_forum ADD ip VARCHAR(16)");
42 spip_query("ALTER TABLE spip_forum ADD maj TIMESTAMP");
43 spip_query("ALTER TABLE spip_forum DROP INDEX id_forum");
44 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)");
45 maj_version (0.98);
46 }
47
48 if (upgrade_vers(0.99, $version_installee, $version_cible)) {
49
50 $result = spip_query("SELECT DISTINCT id_article FROM spip_forum WHERE id_article!=0 AND id_parent=0");
51
52 while ($row = sql_fetch($result)) {
53 unset($forums_article);
54 $id_article = $row['id_article'];
55 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_article=$id_article");
56 for (;;) {
57 unset($forums);
58 while ($row2 = sql_fetch($result2)) $forums[] = $row2['id_forum'];
59 if (!$forums) break;
60 $forums = join(',', $forums);
61 $forums_article[] = $forums;
62 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
63 }
64 $forums_article = join(',', $forums_article);
65 spip_query("UPDATE spip_forum SET id_article=$id_article WHERE id_forum IN ($forums_article)");
66 }
67
68 $result = spip_query("SELECT DISTINCT id_breve FROM spip_forum WHERE id_breve!=0 AND id_parent=0");
69
70 while ($row = sql_fetch($result)) {
71 unset($forums_breve);
72 $id_breve = $row['id_breve'];
73 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_breve=$id_breve");
74 for (;;) {
75 unset($forums);
76 while ($row2 = sql_fetch($result2)) $forums[] = $row2['id_forum'];
77 if (!$forums) break;
78 $forums = join(',', $forums);
79 $forums_breve[] = $forums;
80 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
81 }
82 $forums_breve = join(',', $forums_breve);
83 spip_query("UPDATE spip_forum SET id_breve=$id_breve WHERE id_forum IN ($forums_breve)");
84 }
85
86 $result = spip_query("SELECT DISTINCT id_rubrique FROM spip_forum WHERE id_rubrique!=0 AND id_parent=0");
87
88 while ($row = sql_fetch($result)) {
89 unset($forums_rubrique);
90 $id_rubrique = $row['id_rubrique'];
91 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_rubrique=$id_rubrique");
92 for (;;) {
93
94 unset($forums);
95 while ($row2 = sql_fetch($result2)) $forums[] = $row2['id_forum'];
96 if (!$forums) break;
97 $forums = join(',', $forums);
98 $forums_rubrique[] = $forums;
99 $result2 = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($forums)");
100 }
101 $forums_rubrique = join(',', $forums_rubrique);
102 spip_query("UPDATE spip_forum SET id_rubrique=$id_rubrique WHERE id_forum IN ($forums_rubrique)");
103
104 }
105 maj_version (0.99);
106 }
107
108 if (upgrade_vers(0.997, $version_installee, $version_cible)) {
109 spip_query("DROP TABLE spip_index");
110 maj_version (0.997);
111 }
112
113 if (upgrade_vers(0.999, $version_installee, $version_cible)) {
114
115 spip_query("ALTER TABLE spip_auteurs CHANGE pass pass tinyblob NOT NULL");
116 spip_query("ALTER TABLE spip_auteurs ADD htpass tinyblob NOT NULL");
117 $result = spip_query("SELECT id_auteur, pass FROM spip_auteurs WHERE pass!=''");
118
119 while ($r= sql_fetch($result)) {
120 $htpass = generer_htpass($r['pass']);
121 $pass = md5($pass);
122 spip_query("UPDATE spip_auteurs SET pass='$pass', htpass='$htpass' WHERE id_auteur=" . $r['id_auteur']);
123 }
124 maj_version (0.999);
125 }
126 }
127
128 ?>