Completed
Push — master ( bc0916...92f140 )
by cam
04:43
created
ecrire/maj/legacy/v31.php 2 patches
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -18,12 +18,12 @@  discard block
 block discarded – undo
18 18
  * @package SPIP\Core\SQL\Upgrade
19 19
  **/
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 
25 25
 $GLOBALS['maj'][21676] = array(
26
-	array('ranger_cache_gd2'),
26
+    array('ranger_cache_gd2'),
27 27
 );
28 28
 
29 29
 /**
@@ -32,29 +32,29 @@  discard block
 block discarded – undo
32 32
  * https://core.spip.net/issues/3277
33 33
  */
34 34
 function ranger_cache_gd2() {
35
-	spip_log("ranger_cache_gd2");
36
-	$base = _DIR_VAR . "cache-gd2/";
37
-	if (is_dir($base) and is_readable($base)) {
38
-		if ($dir = opendir($base)) {
39
-			while (($f = readdir($dir)) !== false) {
40
-				if (!is_dir($base . $f) and strncmp($f, ".", 1) !== 0
41
-					and preg_match(",[0-9a-f]{32}\.\w+,", $f)
42
-				) {
43
-					$sub = substr($f, 0, 2);
44
-					$sub = sous_repertoire($base, $sub);
45
-					@rename($base . $f, $sub . substr($f, 2));
46
-					@unlink($base . $f); // au cas ou le rename a foire (collision)
47
-				}
48
-				if (time() >= _TIME_OUT) {
49
-					return;
50
-				}
51
-			}
52
-		}
53
-	}
35
+    spip_log("ranger_cache_gd2");
36
+    $base = _DIR_VAR . "cache-gd2/";
37
+    if (is_dir($base) and is_readable($base)) {
38
+        if ($dir = opendir($base)) {
39
+            while (($f = readdir($dir)) !== false) {
40
+                if (!is_dir($base . $f) and strncmp($f, ".", 1) !== 0
41
+                    and preg_match(",[0-9a-f]{32}\.\w+,", $f)
42
+                ) {
43
+                    $sub = substr($f, 0, 2);
44
+                    $sub = sous_repertoire($base, $sub);
45
+                    @rename($base . $f, $sub . substr($f, 2));
46
+                    @unlink($base . $f); // au cas ou le rename a foire (collision)
47
+                }
48
+                if (time() >= _TIME_OUT) {
49
+                    return;
50
+                }
51
+            }
52
+        }
53
+    }
54 54
 }
55 55
 
56 56
 
57 57
 $GLOBALS['maj'][21742] = array(
58
-	array('sql_alter', "TABLE spip_articles CHANGE url_site url_site text DEFAULT '' NOT NULL"),
59
-	array('sql_alter', "TABLE spip_articles CHANGE virtuel virtuel text DEFAULT '' NOT NULL"),
58
+    array('sql_alter', "TABLE spip_articles CHANGE url_site url_site text DEFAULT '' NOT NULL"),
59
+    array('sql_alter', "TABLE spip_articles CHANGE virtuel virtuel text DEFAULT '' NOT NULL"),
60 60
 );
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -33,17 +33,17 @@
 block discarded – undo
33 33
  */
34 34
 function ranger_cache_gd2() {
35 35
 	spip_log("ranger_cache_gd2");
36
-	$base = _DIR_VAR . "cache-gd2/";
36
+	$base = _DIR_VAR."cache-gd2/";
37 37
 	if (is_dir($base) and is_readable($base)) {
38 38
 		if ($dir = opendir($base)) {
39 39
 			while (($f = readdir($dir)) !== false) {
40
-				if (!is_dir($base . $f) and strncmp($f, ".", 1) !== 0
40
+				if (!is_dir($base.$f) and strncmp($f, ".", 1) !== 0
41 41
 					and preg_match(",[0-9a-f]{32}\.\w+,", $f)
42 42
 				) {
43 43
 					$sub = substr($f, 0, 2);
44 44
 					$sub = sous_repertoire($base, $sub);
45
-					@rename($base . $f, $sub . substr($f, 2));
46
-					@unlink($base . $f); // au cas ou le rename a foire (collision)
45
+					@rename($base.$f, $sub.substr($f, 2));
46
+					@unlink($base.$f); // au cas ou le rename a foire (collision)
47 47
 				}
48 48
 				if (time() >= _TIME_OUT) {
49 49
 					return;
Please login to merge, or discard this patch.
ecrire/maj/legacy/v30.php 2 patches
Indentation   +222 added lines, -222 removed lines patch added patch discarded remove patch
@@ -18,18 +18,18 @@  discard block
 block discarded – undo
18 18
  * @package SPIP\Core\SQL\Upgrade
19 19
  **/
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 
25 25
 $GLOBALS['maj'][16428] = array(
26
-	array('maj_liens', 'auteur'), // creer la table liens
27
-	array('maj_liens', 'auteur', 'article'),
28
-	array('sql_drop_table', "spip_auteurs_articles"),
29
-	array('maj_liens', 'auteur', 'rubrique'),
30
-	array('sql_drop_table', "spip_auteurs_rubriques"),
31
-	array('maj_liens', 'auteur', 'message'),
32
-	array('sql_drop_table', "spip_auteurs_messages"),
26
+    array('maj_liens', 'auteur'), // creer la table liens
27
+    array('maj_liens', 'auteur', 'article'),
28
+    array('sql_drop_table', "spip_auteurs_articles"),
29
+    array('maj_liens', 'auteur', 'rubrique'),
30
+    array('sql_drop_table', "spip_auteurs_rubriques"),
31
+    array('maj_liens', 'auteur', 'message'),
32
+    array('sql_drop_table', "spip_auteurs_messages"),
33 33
 );
34 34
 
35 35
 /**
@@ -55,89 +55,89 @@  discard block
 block discarded – undo
55 55
  */
56 56
 function maj_liens($pivot, $l = '') {
57 57
 
58
-	@define('_LOG_FILTRE_GRAVITE', 8);
59
-
60
-	$exceptions_pluriel = array('forum' => 'forum', 'syndic' => 'syndic');
61
-
62
-	$pivot = preg_replace(',[^\w],', '', $pivot); // securite
63
-	$pivots = (isset($exceptions_pluriel[$pivot]) ? $exceptions_pluriel[$pivot] : $pivot . "s");
64
-	$liens = "spip_" . $pivots . "_liens";
65
-	$id_pivot = "id_" . $pivot;
66
-	// Creer spip_auteurs_liens
67
-	global $tables_auxiliaires;
68
-	if (!$l) {
69
-		include_spip('base/auxiliaires');
70
-		include_spip('base/create');
71
-		creer_ou_upgrader_table($liens, $tables_auxiliaires[$liens], false);
72
-	} else {
73
-		// Preparer
74
-		$l = preg_replace(',[^\w],', '', $l); // securite
75
-		$primary = "id_$l";
76
-		$objet = ($l == 'syndic' ? 'site' : $l);
77
-		$ls = (isset($exceptions_pluriel[$l]) ? $exceptions_pluriel[$l] : $l . "s");
78
-		$ancienne_table = 'spip_' . $pivots . '_' . $ls;
79
-		$pool = 400;
80
-
81
-		$trouver_table = charger_fonction('trouver_table', 'base');
82
-		if (!$desc = $trouver_table($ancienne_table)) {
83
-			return;
84
-		}
85
-
86
-		// securite pour ne pas perdre de donnees
87
-		if (!$trouver_table($liens)) {
88
-			return;
89
-		}
90
-
91
-		$champs = $desc['field'];
92
-		if (isset($champs['maj'])) {
93
-			unset($champs['maj']);
94
-		}
95
-		if (isset($champs[$primary])) {
96
-			unset($champs[$primary]);
97
-		}
98
-
99
-		$champs = array_keys($champs);
100
-		// ne garder que les champs qui existent sur la table destination
101
-		if ($desc_cible = $trouver_table($liens)) {
102
-			$champs = array_intersect($champs, array_keys($desc_cible['field']));
103
-		}
104
-
105
-		$champs[] = "$primary as id_objet";
106
-		$champs[] = "'$objet' as objet";
107
-		$champs = implode(', ', $champs);
108
-
109
-		// Recopier les donnees
110
-		$sub_pool = 100;
111
-		while ($ids = array_map('reset', sql_allfetsel("$primary", $ancienne_table, '', '', '', "0,$sub_pool"))) {
112
-			$insert = array();
113
-			foreach ($ids as $id) {
114
-				$n = sql_countsel($liens, "objet='$objet' AND id_objet=" . intval($id));
115
-				while ($t = sql_allfetsel($champs, $ancienne_table, "$primary=" . intval($id), '', $id_pivot, "$n,$pool")) {
116
-					$n += count($t);
117
-					// empiler en s'assurant a minima de l'unicite
118
-					while ($r = array_shift($t)) {
119
-						$insert[$r[$id_pivot] . ':' . $r['id_objet']] = $r;
120
-					}
121
-					if (count($insert) >= $sub_pool) {
122
-						maj_liens_insertq_multi_check($liens, $insert, $tables_auxiliaires[$liens]);
123
-						$insert = array();
124
-					}
125
-					// si timeout, sortir, la relance nous ramenera dans cette fonction
126
-					// et on verifiera/repartira de la
127
-					if (time() >= _TIME_OUT) {
128
-						return;
129
-					}
130
-				}
131
-				if (time() >= _TIME_OUT) {
132
-					return;
133
-				}
134
-			}
135
-			if (count($insert)) {
136
-				maj_liens_insertq_multi_check($liens, $insert, $tables_auxiliaires[$liens]);
137
-			}
138
-			sql_delete($ancienne_table, sql_in($primary, $ids));
139
-		}
140
-	}
58
+    @define('_LOG_FILTRE_GRAVITE', 8);
59
+
60
+    $exceptions_pluriel = array('forum' => 'forum', 'syndic' => 'syndic');
61
+
62
+    $pivot = preg_replace(',[^\w],', '', $pivot); // securite
63
+    $pivots = (isset($exceptions_pluriel[$pivot]) ? $exceptions_pluriel[$pivot] : $pivot . "s");
64
+    $liens = "spip_" . $pivots . "_liens";
65
+    $id_pivot = "id_" . $pivot;
66
+    // Creer spip_auteurs_liens
67
+    global $tables_auxiliaires;
68
+    if (!$l) {
69
+        include_spip('base/auxiliaires');
70
+        include_spip('base/create');
71
+        creer_ou_upgrader_table($liens, $tables_auxiliaires[$liens], false);
72
+    } else {
73
+        // Preparer
74
+        $l = preg_replace(',[^\w],', '', $l); // securite
75
+        $primary = "id_$l";
76
+        $objet = ($l == 'syndic' ? 'site' : $l);
77
+        $ls = (isset($exceptions_pluriel[$l]) ? $exceptions_pluriel[$l] : $l . "s");
78
+        $ancienne_table = 'spip_' . $pivots . '_' . $ls;
79
+        $pool = 400;
80
+
81
+        $trouver_table = charger_fonction('trouver_table', 'base');
82
+        if (!$desc = $trouver_table($ancienne_table)) {
83
+            return;
84
+        }
85
+
86
+        // securite pour ne pas perdre de donnees
87
+        if (!$trouver_table($liens)) {
88
+            return;
89
+        }
90
+
91
+        $champs = $desc['field'];
92
+        if (isset($champs['maj'])) {
93
+            unset($champs['maj']);
94
+        }
95
+        if (isset($champs[$primary])) {
96
+            unset($champs[$primary]);
97
+        }
98
+
99
+        $champs = array_keys($champs);
100
+        // ne garder que les champs qui existent sur la table destination
101
+        if ($desc_cible = $trouver_table($liens)) {
102
+            $champs = array_intersect($champs, array_keys($desc_cible['field']));
103
+        }
104
+
105
+        $champs[] = "$primary as id_objet";
106
+        $champs[] = "'$objet' as objet";
107
+        $champs = implode(', ', $champs);
108
+
109
+        // Recopier les donnees
110
+        $sub_pool = 100;
111
+        while ($ids = array_map('reset', sql_allfetsel("$primary", $ancienne_table, '', '', '', "0,$sub_pool"))) {
112
+            $insert = array();
113
+            foreach ($ids as $id) {
114
+                $n = sql_countsel($liens, "objet='$objet' AND id_objet=" . intval($id));
115
+                while ($t = sql_allfetsel($champs, $ancienne_table, "$primary=" . intval($id), '', $id_pivot, "$n,$pool")) {
116
+                    $n += count($t);
117
+                    // empiler en s'assurant a minima de l'unicite
118
+                    while ($r = array_shift($t)) {
119
+                        $insert[$r[$id_pivot] . ':' . $r['id_objet']] = $r;
120
+                    }
121
+                    if (count($insert) >= $sub_pool) {
122
+                        maj_liens_insertq_multi_check($liens, $insert, $tables_auxiliaires[$liens]);
123
+                        $insert = array();
124
+                    }
125
+                    // si timeout, sortir, la relance nous ramenera dans cette fonction
126
+                    // et on verifiera/repartira de la
127
+                    if (time() >= _TIME_OUT) {
128
+                        return;
129
+                    }
130
+                }
131
+                if (time() >= _TIME_OUT) {
132
+                    return;
133
+                }
134
+            }
135
+            if (count($insert)) {
136
+                maj_liens_insertq_multi_check($liens, $insert, $tables_auxiliaires[$liens]);
137
+            }
138
+            sql_delete($ancienne_table, sql_in($primary, $ids));
139
+        }
140
+    }
141 141
 }
142 142
 
143 143
 /**
@@ -151,82 +151,82 @@  discard block
 block discarded – undo
151 151
  * @return void
152 152
  **/
153 153
 function maj_liens_insertq_multi_check($table, $couples, $desc = array()) {
154
-	$n_before = sql_countsel($table);
155
-	sql_insertq_multi($table, $couples, $desc);
156
-	$n_after = sql_countsel($table);
157
-	if (($n_after - $n_before) == count($couples)) {
158
-		return;
159
-	}
160
-	// si ecart, on recommence l'insertion ligne par ligne...
161
-	// moins rapide mais secure : seul le couple en doublon echouera, et non toute la serie
162
-	foreach ($couples as $c) {
163
-		sql_insertq($table, $c, $desc);
164
-	}
154
+    $n_before = sql_countsel($table);
155
+    sql_insertq_multi($table, $couples, $desc);
156
+    $n_after = sql_countsel($table);
157
+    if (($n_after - $n_before) == count($couples)) {
158
+        return;
159
+    }
160
+    // si ecart, on recommence l'insertion ligne par ligne...
161
+    // moins rapide mais secure : seul le couple en doublon echouera, et non toute la serie
162
+    foreach ($couples as $c) {
163
+        sql_insertq($table, $c, $desc);
164
+    }
165 165
 }
166 166
 
167 167
 $GLOBALS['maj'][17311] = array(
168
-	array(
169
-		'ecrire_meta',
170
-		"multi_objets",
171
-		implode(',',
172
-			array_diff(
173
-				array(
174
-					(isset($GLOBALS['meta']['multi_rubriques']) and $GLOBALS['meta']['multi_rubriques'] == 'oui')
175
-						? 'spip_rubriques' : '',
176
-					(isset($GLOBALS['meta']['multi_articles']) and $GLOBALS['meta']['multi_articles'] == 'oui')
177
-						? 'spip_articles' : ''
178
-				),
179
-				array('')
180
-			))
181
-	),
182
-	array(
183
-		'ecrire_meta',
184
-		"gerer_trad_objets",
185
-		implode(',',
186
-			array_diff(
187
-				array(
188
-					(isset($GLOBALS['meta']['gerer_trad']) and $GLOBALS['meta']['gerer_trad'] == 'oui')
189
-						? 'spip_articles' : ''
190
-				),
191
-				array('')
192
-			))
193
-	),
168
+    array(
169
+        'ecrire_meta',
170
+        "multi_objets",
171
+        implode(',',
172
+            array_diff(
173
+                array(
174
+                    (isset($GLOBALS['meta']['multi_rubriques']) and $GLOBALS['meta']['multi_rubriques'] == 'oui')
175
+                        ? 'spip_rubriques' : '',
176
+                    (isset($GLOBALS['meta']['multi_articles']) and $GLOBALS['meta']['multi_articles'] == 'oui')
177
+                        ? 'spip_articles' : ''
178
+                ),
179
+                array('')
180
+            ))
181
+    ),
182
+    array(
183
+        'ecrire_meta',
184
+        "gerer_trad_objets",
185
+        implode(',',
186
+            array_diff(
187
+                array(
188
+                    (isset($GLOBALS['meta']['gerer_trad']) and $GLOBALS['meta']['gerer_trad'] == 'oui')
189
+                        ? 'spip_articles' : ''
190
+                ),
191
+                array('')
192
+            ))
193
+    ),
194 194
 );
195 195
 $GLOBALS['maj'][17555] = array(
196
-	array('sql_alter', "TABLE spip_resultats ADD table_objet varchar(30) DEFAULT '' NOT NULL"),
197
-	array('sql_alter', "TABLE spip_resultats ADD serveur char(16) DEFAULT '' NOT NULL"),
196
+    array('sql_alter', "TABLE spip_resultats ADD table_objet varchar(30) DEFAULT '' NOT NULL"),
197
+    array('sql_alter', "TABLE spip_resultats ADD serveur char(16) DEFAULT '' NOT NULL"),
198 198
 );
199 199
 
200 200
 $GLOBALS['maj'][17563] = array(
201
-	array('sql_alter', "TABLE spip_articles ADD virtuel VARCHAR(255) DEFAULT '' NOT NULL"),
202
-	array('sql_update', 'spip_articles', array('virtuel' => 'SUBSTRING(chapo,2)', 'chapo' => "''"), "chapo LIKE '=_%'"),
201
+    array('sql_alter', "TABLE spip_articles ADD virtuel VARCHAR(255) DEFAULT '' NOT NULL"),
202
+    array('sql_update', 'spip_articles', array('virtuel' => 'SUBSTRING(chapo,2)', 'chapo' => "''"), "chapo LIKE '=_%'"),
203 203
 );
204 204
 
205 205
 $GLOBALS['maj'][17577] = array(
206
-	array('maj_tables', array('spip_jobs', 'spip_jobs_liens')),
206
+    array('maj_tables', array('spip_jobs', 'spip_jobs_liens')),
207 207
 );
208 208
 
209 209
 $GLOBALS['maj'][17743] = array(
210
-	array('sql_update', 'spip_auteurs', array('prefs' => 'bio', 'bio' => "''"), "statut='nouveau' AND bio<>''"),
210
+    array('sql_update', 'spip_auteurs', array('prefs' => 'bio', 'bio' => "''"), "statut='nouveau' AND bio<>''"),
211 211
 );
212 212
 
213 213
 $GLOBALS['maj'][18219] = array(
214
-	array('sql_alter', "TABLE spip_rubriques DROP id_import"),
215
-	array('sql_alter', "TABLE spip_rubriques DROP export"),
214
+    array('sql_alter', "TABLE spip_rubriques DROP id_import"),
215
+    array('sql_alter', "TABLE spip_rubriques DROP export"),
216 216
 );
217 217
 
218 218
 $GLOBALS['maj'][18310] = array(
219
-	array('sql_alter', "TABLE spip_auteurs_liens CHANGE vu vu VARCHAR(6) DEFAULT 'non' NOT NULL"),
219
+    array('sql_alter', "TABLE spip_auteurs_liens CHANGE vu vu VARCHAR(6) DEFAULT 'non' NOT NULL"),
220 220
 );
221 221
 
222 222
 $GLOBALS['maj'][18597] = array(
223
-	array('sql_alter', "TABLE spip_rubriques ADD profondeur smallint(5) DEFAULT '0' NOT NULL"),
224
-	array('maj_propager_les_secteurs'),
223
+    array('sql_alter', "TABLE spip_rubriques ADD profondeur smallint(5) DEFAULT '0' NOT NULL"),
224
+    array('maj_propager_les_secteurs'),
225 225
 );
226 226
 
227 227
 $GLOBALS['maj'][18955] = array(
228
-	array('sql_alter', "TABLE spip_auteurs_liens ADD INDEX id_objet (id_objet)"),
229
-	array('sql_alter', "TABLE spip_auteurs_liens ADD INDEX objet (objet)"),
228
+    array('sql_alter', "TABLE spip_auteurs_liens ADD INDEX id_objet (id_objet)"),
229
+    array('sql_alter', "TABLE spip_auteurs_liens ADD INDEX objet (objet)"),
230 230
 );
231 231
 
232 232
 /**
@@ -235,8 +235,8 @@  discard block
 block discarded – undo
235 235
  * @uses propager_les_secteurs()
236 236
  **/
237 237
 function maj_propager_les_secteurs() {
238
-	include_spip('inc/rubriques');
239
-	propager_les_secteurs();
238
+    include_spip('inc/rubriques');
239
+    propager_les_secteurs();
240 240
 }
241 241
 
242 242
 /**
@@ -249,84 +249,84 @@  discard block
 block discarded – undo
249 249
 function maj_collation_sqlite() {
250 250
 
251 251
 
252
-	include_spip('base/dump');
253
-	$tables = base_lister_toutes_tables();
254
-
255
-	// rien a faire si base non sqlite
256
-	if (strncmp($GLOBALS['connexions'][0]['type'], 'sqlite', 6) !== 0) {
257
-		return;
258
-	}
259
-
260
-	$trouver_table = charger_fonction('trouver_table', 'base');
261
-	// forcer le vidage de cache
262
-	$trouver_table('');
263
-
264
-	// cas particulier spip_auteurs : retablir le collate binary sur le login
265
-	$desc = $trouver_table("spip_auteurs");
266
-	spip_log("spip_auteurs : " . var_export($desc['field'], true), "maj." . _LOG_INFO_IMPORTANTE);
267
-	if (stripos($desc['field']['login'], "BINARY") === false) {
268
-		spip_log("Retablir champ login BINARY sur table spip_auteurs", "maj");
269
-		sql_alter("table spip_auteurs change login login VARCHAR(255) BINARY");
270
-		$trouver_table('');
271
-		$new_desc = $trouver_table("spip_auteurs");
272
-		spip_log("Apres conversion spip_auteurs : " . var_export($new_desc['field'], true), "maj." . _LOG_INFO_IMPORTANTE);
273
-	}
274
-
275
-	foreach ($tables as $table) {
276
-		if (time() >= _TIME_OUT) {
277
-			return;
278
-		}
279
-		if ($desc = $trouver_table($table)) {
280
-			$desc_collate = _sqlite_remplacements_definitions_table($desc['field']);
281
-			if ($d = array_diff($desc['field'], $desc_collate)) {
282
-				spip_log("Table $table COLLATE incorrects", "maj");
283
-
284
-				// cas particulier spip_urls :
285
-				// supprimer les doublons avant conversion sinon echec (on garde les urls les plus recentes)
286
-				if ($table == 'spip_urls') {
287
-					// par date DESC pour conserver les urls les plus recentes
288
-					$data = sql_allfetsel("*", "spip_urls", '', '', 'date DESC');
289
-					$urls = array();
290
-					foreach ($data as $d) {
291
-						$key = $d['id_parent'] . "::" . strtolower($d['url']);
292
-						if (!isset($urls[$key])) {
293
-							$urls[$key] = true;
294
-						} else {
295
-							spip_log("Suppression doublon dans spip_urls avant conversion : " . serialize($d),
296
-								"maj." . _LOG_INFO_IMPORTANTE);
297
-							sql_delete("spip_urls", "id_parent=" . sql_quote($d['id_parent']) . " AND url=" . sql_quote($d['url']));
298
-						}
299
-					}
300
-				}
301
-				foreach ($desc['field'] as $field => $type) {
302
-					if ($desc['field'][$field] !== $desc_collate[$field]) {
303
-						spip_log("Conversion COLLATE table $table", "maj." . _LOG_INFO_IMPORTANTE);
304
-						sql_alter("table $table change $field $field " . $desc_collate[$field]);
305
-						$trouver_table('');
306
-						$new_desc = $trouver_table($table);
307
-						spip_log("Apres conversion $table : " . var_export($new_desc['field'], true),
308
-							"maj." . _LOG_INFO_IMPORTANTE);
309
-						continue 2; // inutile de continuer pour cette table : un seul alter remet tout a jour en sqlite
310
-					}
311
-				}
312
-			}
313
-		}
314
-	}
315
-
316
-	// forcer le vidage de cache
317
-	$trouver_table('');
252
+    include_spip('base/dump');
253
+    $tables = base_lister_toutes_tables();
254
+
255
+    // rien a faire si base non sqlite
256
+    if (strncmp($GLOBALS['connexions'][0]['type'], 'sqlite', 6) !== 0) {
257
+        return;
258
+    }
259
+
260
+    $trouver_table = charger_fonction('trouver_table', 'base');
261
+    // forcer le vidage de cache
262
+    $trouver_table('');
263
+
264
+    // cas particulier spip_auteurs : retablir le collate binary sur le login
265
+    $desc = $trouver_table("spip_auteurs");
266
+    spip_log("spip_auteurs : " . var_export($desc['field'], true), "maj." . _LOG_INFO_IMPORTANTE);
267
+    if (stripos($desc['field']['login'], "BINARY") === false) {
268
+        spip_log("Retablir champ login BINARY sur table spip_auteurs", "maj");
269
+        sql_alter("table spip_auteurs change login login VARCHAR(255) BINARY");
270
+        $trouver_table('');
271
+        $new_desc = $trouver_table("spip_auteurs");
272
+        spip_log("Apres conversion spip_auteurs : " . var_export($new_desc['field'], true), "maj." . _LOG_INFO_IMPORTANTE);
273
+    }
274
+
275
+    foreach ($tables as $table) {
276
+        if (time() >= _TIME_OUT) {
277
+            return;
278
+        }
279
+        if ($desc = $trouver_table($table)) {
280
+            $desc_collate = _sqlite_remplacements_definitions_table($desc['field']);
281
+            if ($d = array_diff($desc['field'], $desc_collate)) {
282
+                spip_log("Table $table COLLATE incorrects", "maj");
283
+
284
+                // cas particulier spip_urls :
285
+                // supprimer les doublons avant conversion sinon echec (on garde les urls les plus recentes)
286
+                if ($table == 'spip_urls') {
287
+                    // par date DESC pour conserver les urls les plus recentes
288
+                    $data = sql_allfetsel("*", "spip_urls", '', '', 'date DESC');
289
+                    $urls = array();
290
+                    foreach ($data as $d) {
291
+                        $key = $d['id_parent'] . "::" . strtolower($d['url']);
292
+                        if (!isset($urls[$key])) {
293
+                            $urls[$key] = true;
294
+                        } else {
295
+                            spip_log("Suppression doublon dans spip_urls avant conversion : " . serialize($d),
296
+                                "maj." . _LOG_INFO_IMPORTANTE);
297
+                            sql_delete("spip_urls", "id_parent=" . sql_quote($d['id_parent']) . " AND url=" . sql_quote($d['url']));
298
+                        }
299
+                    }
300
+                }
301
+                foreach ($desc['field'] as $field => $type) {
302
+                    if ($desc['field'][$field] !== $desc_collate[$field]) {
303
+                        spip_log("Conversion COLLATE table $table", "maj." . _LOG_INFO_IMPORTANTE);
304
+                        sql_alter("table $table change $field $field " . $desc_collate[$field]);
305
+                        $trouver_table('');
306
+                        $new_desc = $trouver_table($table);
307
+                        spip_log("Apres conversion $table : " . var_export($new_desc['field'], true),
308
+                            "maj." . _LOG_INFO_IMPORTANTE);
309
+                        continue 2; // inutile de continuer pour cette table : un seul alter remet tout a jour en sqlite
310
+                    }
311
+                }
312
+            }
313
+        }
314
+    }
315
+
316
+    // forcer le vidage de cache
317
+    $trouver_table('');
318 318
 
319 319
 }
320 320
 
321 321
 
322 322
 $GLOBALS['maj'][19236] = array(
323
-	array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom='version_installee'"), // version base principale
324
-	array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom LIKE '%_base_version'"),  // version base plugins
325
-	array('maj_collation_sqlite'),
323
+    array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom='version_installee'"), // version base principale
324
+    array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom LIKE '%_base_version'"),  // version base plugins
325
+    array('maj_collation_sqlite'),
326 326
 );
327 327
 
328 328
 $GLOBALS['maj'][19268] = array(
329
-	array('supprimer_toutes_sessions'),
329
+    array('supprimer_toutes_sessions'),
330 330
 );
331 331
 
332 332
 /**
@@ -335,13 +335,13 @@  discard block
 block discarded – undo
335 335
  * Obligera tous les auteurs à se reconnecter !
336 336
  **/
337 337
 function supprimer_toutes_sessions() {
338
-	spip_log("supprimer sessions auteur");
339
-	if ($dir = opendir(_DIR_SESSIONS)) {
340
-		while (($f = readdir($dir)) !== false) {
341
-			spip_unlink(_DIR_SESSIONS . $f);
342
-			if (time() >= _TIME_OUT) {
343
-				return;
344
-			}
345
-		}
346
-	}
338
+    spip_log("supprimer sessions auteur");
339
+    if ($dir = opendir(_DIR_SESSIONS)) {
340
+        while (($f = readdir($dir)) !== false) {
341
+            spip_unlink(_DIR_SESSIONS . $f);
342
+            if (time() >= _TIME_OUT) {
343
+                return;
344
+            }
345
+        }
346
+    }
347 347
 }
Please login to merge, or discard this patch.
Spacing   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -60,9 +60,9 @@  discard block
 block discarded – undo
60 60
 	$exceptions_pluriel = array('forum' => 'forum', 'syndic' => 'syndic');
61 61
 
62 62
 	$pivot = preg_replace(',[^\w],', '', $pivot); // securite
63
-	$pivots = (isset($exceptions_pluriel[$pivot]) ? $exceptions_pluriel[$pivot] : $pivot . "s");
64
-	$liens = "spip_" . $pivots . "_liens";
65
-	$id_pivot = "id_" . $pivot;
63
+	$pivots = (isset($exceptions_pluriel[$pivot]) ? $exceptions_pluriel[$pivot] : $pivot."s");
64
+	$liens = "spip_".$pivots."_liens";
65
+	$id_pivot = "id_".$pivot;
66 66
 	// Creer spip_auteurs_liens
67 67
 	global $tables_auxiliaires;
68 68
 	if (!$l) {
@@ -74,8 +74,8 @@  discard block
 block discarded – undo
74 74
 		$l = preg_replace(',[^\w],', '', $l); // securite
75 75
 		$primary = "id_$l";
76 76
 		$objet = ($l == 'syndic' ? 'site' : $l);
77
-		$ls = (isset($exceptions_pluriel[$l]) ? $exceptions_pluriel[$l] : $l . "s");
78
-		$ancienne_table = 'spip_' . $pivots . '_' . $ls;
77
+		$ls = (isset($exceptions_pluriel[$l]) ? $exceptions_pluriel[$l] : $l."s");
78
+		$ancienne_table = 'spip_'.$pivots.'_'.$ls;
79 79
 		$pool = 400;
80 80
 
81 81
 		$trouver_table = charger_fonction('trouver_table', 'base');
@@ -111,12 +111,12 @@  discard block
 block discarded – undo
111 111
 		while ($ids = array_map('reset', sql_allfetsel("$primary", $ancienne_table, '', '', '', "0,$sub_pool"))) {
112 112
 			$insert = array();
113 113
 			foreach ($ids as $id) {
114
-				$n = sql_countsel($liens, "objet='$objet' AND id_objet=" . intval($id));
115
-				while ($t = sql_allfetsel($champs, $ancienne_table, "$primary=" . intval($id), '', $id_pivot, "$n,$pool")) {
114
+				$n = sql_countsel($liens, "objet='$objet' AND id_objet=".intval($id));
115
+				while ($t = sql_allfetsel($champs, $ancienne_table, "$primary=".intval($id), '', $id_pivot, "$n,$pool")) {
116 116
 					$n += count($t);
117 117
 					// empiler en s'assurant a minima de l'unicite
118 118
 					while ($r = array_shift($t)) {
119
-						$insert[$r[$id_pivot] . ':' . $r['id_objet']] = $r;
119
+						$insert[$r[$id_pivot].':'.$r['id_objet']] = $r;
120 120
 					}
121 121
 					if (count($insert) >= $sub_pool) {
122 122
 						maj_liens_insertq_multi_check($liens, $insert, $tables_auxiliaires[$liens]);
@@ -263,13 +263,13 @@  discard block
 block discarded – undo
263 263
 
264 264
 	// cas particulier spip_auteurs : retablir le collate binary sur le login
265 265
 	$desc = $trouver_table("spip_auteurs");
266
-	spip_log("spip_auteurs : " . var_export($desc['field'], true), "maj." . _LOG_INFO_IMPORTANTE);
266
+	spip_log("spip_auteurs : ".var_export($desc['field'], true), "maj."._LOG_INFO_IMPORTANTE);
267 267
 	if (stripos($desc['field']['login'], "BINARY") === false) {
268 268
 		spip_log("Retablir champ login BINARY sur table spip_auteurs", "maj");
269 269
 		sql_alter("table spip_auteurs change login login VARCHAR(255) BINARY");
270 270
 		$trouver_table('');
271 271
 		$new_desc = $trouver_table("spip_auteurs");
272
-		spip_log("Apres conversion spip_auteurs : " . var_export($new_desc['field'], true), "maj." . _LOG_INFO_IMPORTANTE);
272
+		spip_log("Apres conversion spip_auteurs : ".var_export($new_desc['field'], true), "maj."._LOG_INFO_IMPORTANTE);
273 273
 	}
274 274
 
275 275
 	foreach ($tables as $table) {
@@ -288,24 +288,24 @@  discard block
 block discarded – undo
288 288
 					$data = sql_allfetsel("*", "spip_urls", '', '', 'date DESC');
289 289
 					$urls = array();
290 290
 					foreach ($data as $d) {
291
-						$key = $d['id_parent'] . "::" . strtolower($d['url']);
291
+						$key = $d['id_parent']."::".strtolower($d['url']);
292 292
 						if (!isset($urls[$key])) {
293 293
 							$urls[$key] = true;
294 294
 						} else {
295
-							spip_log("Suppression doublon dans spip_urls avant conversion : " . serialize($d),
296
-								"maj." . _LOG_INFO_IMPORTANTE);
297
-							sql_delete("spip_urls", "id_parent=" . sql_quote($d['id_parent']) . " AND url=" . sql_quote($d['url']));
295
+							spip_log("Suppression doublon dans spip_urls avant conversion : ".serialize($d),
296
+								"maj."._LOG_INFO_IMPORTANTE);
297
+							sql_delete("spip_urls", "id_parent=".sql_quote($d['id_parent'])." AND url=".sql_quote($d['url']));
298 298
 						}
299 299
 					}
300 300
 				}
301 301
 				foreach ($desc['field'] as $field => $type) {
302 302
 					if ($desc['field'][$field] !== $desc_collate[$field]) {
303
-						spip_log("Conversion COLLATE table $table", "maj." . _LOG_INFO_IMPORTANTE);
304
-						sql_alter("table $table change $field $field " . $desc_collate[$field]);
303
+						spip_log("Conversion COLLATE table $table", "maj."._LOG_INFO_IMPORTANTE);
304
+						sql_alter("table $table change $field $field ".$desc_collate[$field]);
305 305
 						$trouver_table('');
306 306
 						$new_desc = $trouver_table($table);
307
-						spip_log("Apres conversion $table : " . var_export($new_desc['field'], true),
308
-							"maj." . _LOG_INFO_IMPORTANTE);
307
+						spip_log("Apres conversion $table : ".var_export($new_desc['field'], true),
308
+							"maj."._LOG_INFO_IMPORTANTE);
309 309
 						continue 2; // inutile de continuer pour cette table : un seul alter remet tout a jour en sqlite
310 310
 					}
311 311
 				}
@@ -321,7 +321,7 @@  discard block
 block discarded – undo
321 321
 
322 322
 $GLOBALS['maj'][19236] = array(
323 323
 	array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom='version_installee'"), // version base principale
324
-	array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom LIKE '%_base_version'"),  // version base plugins
324
+	array('sql_updateq', 'spip_meta', array('impt' => 'oui'), "nom LIKE '%_base_version'"), // version base plugins
325 325
 	array('maj_collation_sqlite'),
326 326
 );
327 327
 
@@ -338,7 +338,7 @@  discard block
 block discarded – undo
338 338
 	spip_log("supprimer sessions auteur");
339 339
 	if ($dir = opendir(_DIR_SESSIONS)) {
340 340
 		while (($f = readdir($dir)) !== false) {
341
-			spip_unlink(_DIR_SESSIONS . $f);
341
+			spip_unlink(_DIR_SESSIONS.$f);
342 342
 			if (time() >= _TIME_OUT) {
343 343
 				return;
344 344
 			}
Please login to merge, or discard this patch.
ecrire/maj/legacy/v21.php 1 patch
Indentation   +29 added lines, -29 removed lines patch added patch discarded remove patch
@@ -18,32 +18,32 @@  discard block
 block discarded – undo
18 18
  * @package SPIP\Core\SQL\Upgrade
19 19
  **/
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 // 2.0.0+
25 25
 
26 26
 // http://archives.rezo.net/archives/spip-zone.mbox/C6RZKNBUNJYN42IOEOC4QKVCA233AMLI/
27 27
 $GLOBALS['maj'][13833] = array(
28
-	array('sql_alter', "TABLE spip_documents_liens ADD INDEX objet(id_objet,objet)")
28
+    array('sql_alter', "TABLE spip_documents_liens ADD INDEX objet(id_objet,objet)")
29 29
 );
30 30
 
31 31
 // 2.1
32 32
 
33 33
 $GLOBALS['maj'][13904] = array(
34
-	array('sql_alter', "TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL"),
35
-	array(
36
-		'sql_update',
37
-		'spip_auteurs',
38
-		array('webmestre' => "'oui'"),
39
-		sql_in("id_auteur", defined('_ID_WEBMESTRES') ? explode(':',
40
-			_ID_WEBMESTRES) : (autoriser('configurer') ? array($GLOBALS['visiteur_session']['id_auteur']) : array(0)))
41
-	) // le webmestre est celui qui fait l'upgrade si rien de defini
34
+    array('sql_alter', "TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL"),
35
+    array(
36
+        'sql_update',
37
+        'spip_auteurs',
38
+        array('webmestre' => "'oui'"),
39
+        sql_in("id_auteur", defined('_ID_WEBMESTRES') ? explode(':',
40
+            _ID_WEBMESTRES) : (autoriser('configurer') ? array($GLOBALS['visiteur_session']['id_auteur']) : array(0)))
41
+    ) // le webmestre est celui qui fait l'upgrade si rien de defini
42 42
 );
43 43
 
44 44
 // sites plantes en mode "'su" au lieu de "sus"
45 45
 $GLOBALS['maj'][13929] = array(
46
-	array('sql_update', "spip_syndic", array('syndication' => "'sus'"), "syndication LIKE '\\'%'")
46
+    array('sql_update', "spip_syndic", array('syndication' => "'sus'"), "syndication LIKE '\\'%'")
47 47
 );
48 48
 
49 49
 // Types de fichiers m4a/m4b/m4p/m4u/m4v/dv
@@ -60,24 +60,24 @@  discard block
 block discarded – undo
60 60
 // Retour en arriere pour ceux qui l'ont subi, ne rien faire sinon
61 61
 if (@$GLOBALS['meta']['version_installee'] >= 14588) {
62 62
 
63
-	// "mode" est un mot-cle d'Oracle
64
-	$GLOBALS['maj'][14588] = array(
65
-		array('sql_alter', "TABLE spip_documents  DROP INDEX mode"),
66
-		array(
67
-			'sql_alter',
68
-			"TABLE spip_documents  CHANGE mode genre ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL"
69
-		),
70
-		array('sql_alter', "TABLE spip_documents  ADD INDEX genre(genre)")
71
-	);
72
-	// solution moins intrusive au pb de mot-cle d'Oracle, retour avant 14588
73
-	$GLOBALS['maj'][14598] = array(
74
-		array('sql_alter', "TABLE spip_documents  DROP INDEX genre"),
75
-		array(
76
-			'sql_alter',
77
-			"TABLE spip_documents  CHANGE genre mode ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL"
78
-		),
79
-		array('sql_alter', "TABLE spip_documents  ADD INDEX mode(mode)")
80
-	);
63
+    // "mode" est un mot-cle d'Oracle
64
+    $GLOBALS['maj'][14588] = array(
65
+        array('sql_alter', "TABLE spip_documents  DROP INDEX mode"),
66
+        array(
67
+            'sql_alter',
68
+            "TABLE spip_documents  CHANGE mode genre ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL"
69
+        ),
70
+        array('sql_alter', "TABLE spip_documents  ADD INDEX genre(genre)")
71
+    );
72
+    // solution moins intrusive au pb de mot-cle d'Oracle, retour avant 14588
73
+    $GLOBALS['maj'][14598] = array(
74
+        array('sql_alter', "TABLE spip_documents  DROP INDEX genre"),
75
+        array(
76
+            'sql_alter',
77
+            "TABLE spip_documents  CHANGE genre mode ENUM('vignette', 'image', 'document') DEFAULT 'document' NOT NULL"
78
+        ),
79
+        array('sql_alter', "TABLE spip_documents  ADD INDEX mode(mode)")
80
+    );
81 81
 }
82 82
 
83 83
 // Restauration correcte des types mime des fichiers Ogg
Please login to merge, or discard this patch.
ecrire/maj/legacy/v32.php 1 patch
Indentation   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -18,10 +18,10 @@
 block discarded – undo
18 18
  * @package SPIP\Core\SQL\Upgrade
19 19
  **/
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 
25 25
 $GLOBALS['maj'][23375] = array(
26
-	array('sql_alter', "TABLE spip_auteurs CHANGE prefs prefs text"),
26
+    array('sql_alter', "TABLE spip_auteurs CHANGE prefs prefs text"),
27 27
 );
Please login to merge, or discard this patch.
ecrire/maj/legacy/v40.php 2 patches
Indentation   +40 added lines, -40 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
  * @package SPIP\Core\SQL\Upgrade
21 21
  **/
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 
@@ -35,47 +35,47 @@  discard block
 block discarded – undo
35 35
  **/
36 36
 function maj_timestamp_mysql($tables = null) {
37 37
 
38
-	include_spip('base/dump');
39
-	if (is_null($tables)) {
40
-		$tables = base_lister_toutes_tables();
41
-	} elseif (is_string($tables)) {
42
-		$tables = [$tables];
43
-	} elseif (!is_array($tables)) {
44
-		return;
45
-	}
38
+    include_spip('base/dump');
39
+    if (is_null($tables)) {
40
+        $tables = base_lister_toutes_tables();
41
+    } elseif (is_string($tables)) {
42
+        $tables = [$tables];
43
+    } elseif (!is_array($tables)) {
44
+        return;
45
+    }
46 46
 
47
-	// rien a faire si base non mysql
48
-	if (strncmp($GLOBALS['connexions'][0]['type'], 'mysql', 5) !== 0) {
49
-		return;
50
-	}
47
+    // rien a faire si base non mysql
48
+    if (strncmp($GLOBALS['connexions'][0]['type'], 'mysql', 5) !== 0) {
49
+        return;
50
+    }
51 51
 
52
-	$trouver_table = charger_fonction('trouver_table', 'base');
53
-	// forcer le vidage de cache
54
-	$trouver_table('');
52
+    $trouver_table = charger_fonction('trouver_table', 'base');
53
+    // forcer le vidage de cache
54
+    $trouver_table('');
55 55
 
56
-	foreach ($tables as $table) {
57
-		if (time() >= _TIME_OUT) {
58
-			return;
59
-		}
60
-		if ($desc = $trouver_table($table)) {
61
-			$fields_corrected = _mysql_remplacements_definitions_table($desc['field']);
62
-			$d = array_diff($desc['field'], $fields_corrected);
63
-			if ($d) {
64
-				spip_log("Table $table TIMESTAMP incorrect", "maj");
65
-				foreach ($desc['field'] as $field => $type) {
66
-					if ($desc['field'][$field] !== $fields_corrected[$field]) {
67
-						spip_log("Adaptation TIMESTAMP table $table", "maj." . _LOG_INFO_IMPORTANTE);
68
-						sql_alter("table $table change $field $field " . $fields_corrected[$field]);
69
-						$trouver_table('');
70
-						$new_desc = $trouver_table($table);
71
-						spip_log("Apres conversion $table : " . var_export($new_desc['field'], true),
72
-							"maj." . _LOG_INFO_IMPORTANTE);
73
-					}
74
-				}
75
-			}
76
-		}
77
-	}
56
+    foreach ($tables as $table) {
57
+        if (time() >= _TIME_OUT) {
58
+            return;
59
+        }
60
+        if ($desc = $trouver_table($table)) {
61
+            $fields_corrected = _mysql_remplacements_definitions_table($desc['field']);
62
+            $d = array_diff($desc['field'], $fields_corrected);
63
+            if ($d) {
64
+                spip_log("Table $table TIMESTAMP incorrect", "maj");
65
+                foreach ($desc['field'] as $field => $type) {
66
+                    if ($desc['field'][$field] !== $fields_corrected[$field]) {
67
+                        spip_log("Adaptation TIMESTAMP table $table", "maj." . _LOG_INFO_IMPORTANTE);
68
+                        sql_alter("table $table change $field $field " . $fields_corrected[$field]);
69
+                        $trouver_table('');
70
+                        $new_desc = $trouver_table($table);
71
+                        spip_log("Apres conversion $table : " . var_export($new_desc['field'], true),
72
+                            "maj." . _LOG_INFO_IMPORTANTE);
73
+                    }
74
+                }
75
+            }
76
+        }
77
+    }
78 78
 
79
-	// forcer le vidage de cache
80
-	$trouver_table('');
79
+    // forcer le vidage de cache
80
+    $trouver_table('');
81 81
 }
Please login to merge, or discard this patch.
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -64,12 +64,12 @@
 block discarded – undo
64 64
 				spip_log("Table $table TIMESTAMP incorrect", "maj");
65 65
 				foreach ($desc['field'] as $field => $type) {
66 66
 					if ($desc['field'][$field] !== $fields_corrected[$field]) {
67
-						spip_log("Adaptation TIMESTAMP table $table", "maj." . _LOG_INFO_IMPORTANTE);
68
-						sql_alter("table $table change $field $field " . $fields_corrected[$field]);
67
+						spip_log("Adaptation TIMESTAMP table $table", "maj."._LOG_INFO_IMPORTANTE);
68
+						sql_alter("table $table change $field $field ".$fields_corrected[$field]);
69 69
 						$trouver_table('');
70 70
 						$new_desc = $trouver_table($table);
71
-						spip_log("Apres conversion $table : " . var_export($new_desc['field'], true),
72
-							"maj." . _LOG_INFO_IMPORTANTE);
71
+						spip_log("Apres conversion $table : ".var_export($new_desc['field'], true),
72
+							"maj."._LOG_INFO_IMPORTANTE);
73 73
 					}
74 74
 				}
75 75
 			}
Please login to merge, or discard this patch.
ecrire/maj/legacy/svn10000.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@
 block discarded – undo
18 18
  */
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 include_spip('maj/legacy/v30');
25 25
\ No newline at end of file
Please login to merge, or discard this patch.
ecrire/base/upgrade.php 2 patches
Indentation   +284 added lines, -284 removed lines patch added patch discarded remove patch
@@ -17,17 +17,17 @@  discard block
 block discarded – undo
17 17
  */
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 if (!defined('_UPGRADE_TIME_OUT')) {
24
-	/**
25
-	 * Durée en secondes pour relancer les scripts de mises à jour, x secondes
26
-	 * avant que la durée d'exécution du script provoque un timeout
27
-	 *
28
-	 * @var int
29
-	 **/
30
-	define('_UPGRADE_TIME_OUT', 20);
24
+    /**
25
+     * Durée en secondes pour relancer les scripts de mises à jour, x secondes
26
+     * avant que la durée d'exécution du script provoque un timeout
27
+     *
28
+     * @var int
29
+     **/
30
+    define('_UPGRADE_TIME_OUT', 20);
31 31
 }
32 32
 
33 33
 /**
@@ -50,40 +50,40 @@  discard block
 block discarded – undo
50 50
  * @return void
51 51
  */
52 52
 function base_upgrade_dist($titre = '', $reprise = '') {
53
-	if (!$titre) {
54
-		return;
55
-	} // anti-testeur automatique
56
-	if ($GLOBALS['spip_version_base'] != $GLOBALS['meta']['version_installee']) {
57
-		if (!is_numeric(_request('reinstall'))) {
58
-			include_spip('base/create');
59
-			spip_log('recree les tables eventuellement disparues', 'maj.' . _LOG_INFO_IMPORTANTE);
60
-			creer_base();
61
-		}
62
-
63
-		// quand on rentre par ici, c'est toujours une mise a jour de SPIP
64
-		// lancement de l'upgrade SPIP
65
-		$res = maj_base();
66
-
67
-		if ($res) {
68
-			// on arrete tout ici !
69
-			exit;
70
-		}
71
-	}
72
-	spip_log('Fin de mise a jour SQL. Debut m-a-j acces et config', 'maj.' . _LOG_INFO_IMPORTANTE);
73
-
74
-	// supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
75
-	@spip_unlink(_CACHE_RUBRIQUES);
76
-	@spip_unlink(_CACHE_PIPELINES);
77
-	@spip_unlink(_CACHE_PLUGINS_PATH);
78
-	@spip_unlink(_CACHE_PLUGINS_OPT);
79
-	@spip_unlink(_CACHE_PLUGINS_FCT);
80
-	@spip_unlink(_CACHE_CHEMIN);
81
-	@spip_unlink(_DIR_TMP . 'plugin_xml_cache.gz');
82
-
83
-	include_spip('inc/auth');
84
-	auth_synchroniser_distant();
85
-	$config = charger_fonction('config', 'inc');
86
-	$config();
53
+    if (!$titre) {
54
+        return;
55
+    } // anti-testeur automatique
56
+    if ($GLOBALS['spip_version_base'] != $GLOBALS['meta']['version_installee']) {
57
+        if (!is_numeric(_request('reinstall'))) {
58
+            include_spip('base/create');
59
+            spip_log('recree les tables eventuellement disparues', 'maj.' . _LOG_INFO_IMPORTANTE);
60
+            creer_base();
61
+        }
62
+
63
+        // quand on rentre par ici, c'est toujours une mise a jour de SPIP
64
+        // lancement de l'upgrade SPIP
65
+        $res = maj_base();
66
+
67
+        if ($res) {
68
+            // on arrete tout ici !
69
+            exit;
70
+        }
71
+    }
72
+    spip_log('Fin de mise a jour SQL. Debut m-a-j acces et config', 'maj.' . _LOG_INFO_IMPORTANTE);
73
+
74
+    // supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
75
+    @spip_unlink(_CACHE_RUBRIQUES);
76
+    @spip_unlink(_CACHE_PIPELINES);
77
+    @spip_unlink(_CACHE_PLUGINS_PATH);
78
+    @spip_unlink(_CACHE_PLUGINS_OPT);
79
+    @spip_unlink(_CACHE_PLUGINS_FCT);
80
+    @spip_unlink(_CACHE_CHEMIN);
81
+    @spip_unlink(_DIR_TMP . 'plugin_xml_cache.gz');
82
+
83
+    include_spip('inc/auth');
84
+    auth_synchroniser_distant();
85
+    $config = charger_fonction('config', 'inc');
86
+    $config();
87 87
 }
88 88
 
89 89
 /**
@@ -114,51 +114,51 @@  discard block
 block discarded – undo
114 114
  */
115 115
 function maj_base($version_cible = 0, $redirect = '', $debut_page = true) {
116 116
 
117
-	$version_installee = $GLOBALS['meta']['version_installee'] ?? null;
118
-
119
-	spip_log(
120
-		"Version anterieure: $version_installee. Courante: " . $GLOBALS['spip_version_base'],
121
-		'maj.' . _LOG_INFO_IMPORTANTE
122
-	);
123
-	if (!$version_installee or ($GLOBALS['spip_version_base'] < $version_installee)) {
124
-		sql_replace(
125
-			'spip_meta',
126
-			array(
127
-				'nom' => 'version_installee',
128
-				'valeur' => $GLOBALS['spip_version_base'],
129
-				'impt' => 'non'
130
-			)
131
-		);
132
-		return false;
133
-	}
134
-	if (!upgrade_test()) {
135
-		return true;
136
-	}
137
-
138
-	$cible = ($version_cible ? $version_cible : $GLOBALS['spip_version_base']);
139
-
140
-	if ($version_installee < 2021010100) {
141
-		include_spip('maj/legacy/v21');
142
-		include_spip('maj/legacy/v30');
143
-		include_spip('maj/legacy/v31');
144
-		include_spip('maj/legacy/v32');
145
-		include_spip('maj/legacy/v40');
146
-	}
147
-
148
-	include_spip('maj/2021');
149
-
150
-	ksort($GLOBALS['maj']);
151
-	$res = maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee', 'meta', $redirect, $debut_page);
152
-	if ($res) {
153
-		if (!is_array($res)) {
154
-			spip_log("Pb d'acces SQL a la mise a jour", 'maj.' . _LOG_INFO_ERREUR);
155
-		} else {
156
-			echo _T('avis_operation_echec') . ' ' . join(' ', $res);
157
-			echo install_fin_html();
158
-		}
159
-	}
160
-
161
-	return $res;
117
+    $version_installee = $GLOBALS['meta']['version_installee'] ?? null;
118
+
119
+    spip_log(
120
+        "Version anterieure: $version_installee. Courante: " . $GLOBALS['spip_version_base'],
121
+        'maj.' . _LOG_INFO_IMPORTANTE
122
+    );
123
+    if (!$version_installee or ($GLOBALS['spip_version_base'] < $version_installee)) {
124
+        sql_replace(
125
+            'spip_meta',
126
+            array(
127
+                'nom' => 'version_installee',
128
+                'valeur' => $GLOBALS['spip_version_base'],
129
+                'impt' => 'non'
130
+            )
131
+        );
132
+        return false;
133
+    }
134
+    if (!upgrade_test()) {
135
+        return true;
136
+    }
137
+
138
+    $cible = ($version_cible ? $version_cible : $GLOBALS['spip_version_base']);
139
+
140
+    if ($version_installee < 2021010100) {
141
+        include_spip('maj/legacy/v21');
142
+        include_spip('maj/legacy/v30');
143
+        include_spip('maj/legacy/v31');
144
+        include_spip('maj/legacy/v32');
145
+        include_spip('maj/legacy/v40');
146
+    }
147
+
148
+    include_spip('maj/2021');
149
+
150
+    ksort($GLOBALS['maj']);
151
+    $res = maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee', 'meta', $redirect, $debut_page);
152
+    if ($res) {
153
+        if (!is_array($res)) {
154
+            spip_log("Pb d'acces SQL a la mise a jour", 'maj.' . _LOG_INFO_ERREUR);
155
+        } else {
156
+            echo _T('avis_operation_echec') . ' ' . join(' ', $res);
157
+            echo install_fin_html();
158
+        }
159
+    }
160
+
161
+    return $res;
162 162
 }
163 163
 
164 164
 /**
@@ -200,52 +200,52 @@  discard block
 block discarded – undo
200 200
  */
201 201
 function maj_plugin($nom_meta_base_version, $version_cible, $maj, $table_meta = 'meta') {
202 202
 
203
-	if ($table_meta !== 'meta') {
204
-		installer_table_meta($table_meta);
205
-	}
206
-
207
-	$current_version = null;
208
-
209
-	if ((!isset($GLOBALS[$table_meta][$nom_meta_base_version]))
210
-		|| (!spip_version_compare($current_version = $GLOBALS[$table_meta][$nom_meta_base_version], $version_cible, '='))
211
-	) {
212
-		// $maj['create'] contient les directives propres a la premiere creation de base
213
-		// c'est une operation derogatoire qui fait aboutir directement dans la version_cible
214
-		if (isset($maj['create'])) {
215
-			if (!isset($GLOBALS[$table_meta][$nom_meta_base_version])) {
216
-				// installation : on ne fait que l'operation create
217
-				$maj = array('init' => $maj['create']);
218
-				// et on lui ajoute un appel a inc/config
219
-				// pour creer les metas par defaut
220
-				$config = charger_fonction('config', 'inc');
221
-				$maj[$version_cible] = array(array($config));
222
-			}
223
-			// dans tous les cas enlever cet index du tableau
224
-			unset($maj['create']);
225
-		}
226
-		// si init, deja dans le bon ordre
227
-		if (!isset($maj['init'])) {
228
-			include_spip('inc/plugin'); // pour spip_version_compare
229
-			uksort($maj, 'spip_version_compare');
230
-		}
231
-
232
-		// la redirection se fait par defaut sur la page d'administration des plugins
233
-		// sauf lorsque nous sommes sur l'installation de SPIP
234
-		// ou define _REDIRECT_MAJ_PLUGIN
235
-		$redirect = (defined('_REDIRECT_MAJ_PLUGIN') ? _REDIRECT_MAJ_PLUGIN : generer_url_ecrire('admin_plugin'));
236
-		if (defined('_ECRIRE_INSTALL')) {
237
-			$redirect = parametre_url(generer_url_ecrire('install'), 'etape', _request('etape'));
238
-		}
239
-
240
-		$res = maj_while($current_version, $version_cible, $maj, $nom_meta_base_version, $table_meta, $redirect);
241
-		if ($res) {
242
-			if (!is_array($res)) {
243
-				spip_log("Pb d'acces SQL a la mise a jour", 'maj.' . _LOG_INFO_ERREUR);
244
-			} else {
245
-				echo '<p>' . _T('avis_operation_echec') . ' ' . join(' ', $res) . '</p>';
246
-			}
247
-		}
248
-	}
203
+    if ($table_meta !== 'meta') {
204
+        installer_table_meta($table_meta);
205
+    }
206
+
207
+    $current_version = null;
208
+
209
+    if ((!isset($GLOBALS[$table_meta][$nom_meta_base_version]))
210
+        || (!spip_version_compare($current_version = $GLOBALS[$table_meta][$nom_meta_base_version], $version_cible, '='))
211
+    ) {
212
+        // $maj['create'] contient les directives propres a la premiere creation de base
213
+        // c'est une operation derogatoire qui fait aboutir directement dans la version_cible
214
+        if (isset($maj['create'])) {
215
+            if (!isset($GLOBALS[$table_meta][$nom_meta_base_version])) {
216
+                // installation : on ne fait que l'operation create
217
+                $maj = array('init' => $maj['create']);
218
+                // et on lui ajoute un appel a inc/config
219
+                // pour creer les metas par defaut
220
+                $config = charger_fonction('config', 'inc');
221
+                $maj[$version_cible] = array(array($config));
222
+            }
223
+            // dans tous les cas enlever cet index du tableau
224
+            unset($maj['create']);
225
+        }
226
+        // si init, deja dans le bon ordre
227
+        if (!isset($maj['init'])) {
228
+            include_spip('inc/plugin'); // pour spip_version_compare
229
+            uksort($maj, 'spip_version_compare');
230
+        }
231
+
232
+        // la redirection se fait par defaut sur la page d'administration des plugins
233
+        // sauf lorsque nous sommes sur l'installation de SPIP
234
+        // ou define _REDIRECT_MAJ_PLUGIN
235
+        $redirect = (defined('_REDIRECT_MAJ_PLUGIN') ? _REDIRECT_MAJ_PLUGIN : generer_url_ecrire('admin_plugin'));
236
+        if (defined('_ECRIRE_INSTALL')) {
237
+            $redirect = parametre_url(generer_url_ecrire('install'), 'etape', _request('etape'));
238
+        }
239
+
240
+        $res = maj_while($current_version, $version_cible, $maj, $nom_meta_base_version, $table_meta, $redirect);
241
+        if ($res) {
242
+            if (!is_array($res)) {
243
+                spip_log("Pb d'acces SQL a la mise a jour", 'maj.' . _LOG_INFO_ERREUR);
244
+            } else {
245
+                echo '<p>' . _T('avis_operation_echec') . ' ' . join(' ', $res) . '</p>';
246
+            }
247
+        }
248
+    }
249 249
 }
250 250
 
251 251
 /**
@@ -262,17 +262,17 @@  discard block
 block discarded – undo
262 262
  * @return void
263 263
  */
264 264
 function relance_maj($meta, $table, $redirect = '') {
265
-	include_spip('inc/headers');
266
-	if (!$redirect) {
267
-		// recuperer la valeur installee en cours
268
-		// on la tronque numeriquement, elle ne sert pas reellement
269
-		// sauf pour verifier que ce n'est pas oui ou non
270
-		// sinon is_numeric va echouer sur un numero de version 1.2.3
271
-		$installee = intval($GLOBALS[$table][$meta]);
272
-		$redirect = generer_url_ecrire('upgrade', "reinstall=$installee&meta=$meta&table=$table", true);
273
-	}
274
-	echo redirige_formulaire($redirect);
275
-	exit();
265
+    include_spip('inc/headers');
266
+    if (!$redirect) {
267
+        // recuperer la valeur installee en cours
268
+        // on la tronque numeriquement, elle ne sert pas reellement
269
+        // sauf pour verifier que ce n'est pas oui ou non
270
+        // sinon is_numeric va echouer sur un numero de version 1.2.3
271
+        $installee = intval($GLOBALS[$table][$meta]);
272
+        $redirect = generer_url_ecrire('upgrade', "reinstall=$installee&meta=$meta&table=$table", true);
273
+    }
274
+    echo redirige_formulaire($redirect);
275
+    exit();
276 276
 }
277 277
 
278 278
 /**
@@ -285,26 +285,26 @@  discard block
 block discarded – undo
285 285
  * @return void
286 286
  */
287 287
 function maj_debut_page($installee, $meta, $table) {
288
-	static $done = false;
289
-	if ($done) {
290
-		return;
291
-	}
292
-	include_spip('inc/minipres');
293
-	@ini_set('zlib.output_compression', '0'); // pour permettre l'affichage au fur et a mesure
294
-	$timeout = _UPGRADE_TIME_OUT * 2;
295
-	$titre = _T('titre_page_upgrade');
296
-	$balise_img = charger_filtre('balise_img');
297
-	$titre .= $balise_img(chemin_image('loader.svg'),'','loader');
298
-	echo(install_debut_html($titre));
299
-	// script de rechargement auto sur timeout
300
-	$redirect = generer_url_ecrire('upgrade', "reinstall=$installee&meta=$meta&table=$table", true);
301
-	echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ')');
302
-	echo "<div style='text-align: left'>\n";
303
-	if (ob_get_level()) {
304
-		ob_flush();
305
-	}
306
-	flush();
307
-	$done = true;
288
+    static $done = false;
289
+    if ($done) {
290
+        return;
291
+    }
292
+    include_spip('inc/minipres');
293
+    @ini_set('zlib.output_compression', '0'); // pour permettre l'affichage au fur et a mesure
294
+    $timeout = _UPGRADE_TIME_OUT * 2;
295
+    $titre = _T('titre_page_upgrade');
296
+    $balise_img = charger_filtre('balise_img');
297
+    $titre .= $balise_img(chemin_image('loader.svg'),'','loader');
298
+    echo(install_debut_html($titre));
299
+    // script de rechargement auto sur timeout
300
+    $redirect = generer_url_ecrire('upgrade', "reinstall=$installee&meta=$meta&table=$table", true);
301
+    echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ')');
302
+    echo "<div style='text-align: left'>\n";
303
+    if (ob_get_level()) {
304
+        ob_flush();
305
+    }
306
+    flush();
307
+    $done = true;
308 308
 }
309 309
 
310 310
 
@@ -348,63 +348,63 @@  discard block
 block discarded – undo
348 348
  *    - tableau vide sinon.
349 349
  */
350 350
 function maj_while($installee, $cible, $maj, $meta = '', $table = 'meta', $redirect = '', $debut_page = false) {
351
-	# inclusions pour que les procedures d'upgrade disposent des fonctions de base
352
-	include_spip('base/create');
353
-	include_spip('base/abstract_sql');
354
-	$trouver_table = charger_fonction('trouver_table', 'base');
355
-	include_spip('inc/plugin'); // pour spip_version_compare
356
-	$n = 0;
357
-	$time = time();
358
-
359
-	if (!defined('_TIME_OUT')) {
360
-		/**
361
-		 * Définir le timeout qui peut-être utilisé dans les fonctions
362
-		 * de mises à jour qui durent trop longtemps
363
-		 *
364
-		 * À utiliser tel que : `if (time() >= _TIME_OUT)`
365
-		 *
366
-		 * @var int
367
-		 */
368
-		define('_TIME_OUT', $time + _UPGRADE_TIME_OUT);
369
-	}
370
-
371
-	foreach ($maj as $v => $operations) {
372
-		// si une maj pour cette version
373
-		if ($v == 'init' or
374
-			(spip_version_compare($v, $installee, '>')
375
-				and spip_version_compare($v, $cible, '<='))
376
-		) {
377
-			if ($debut_page) {
378
-				maj_debut_page($v, $meta, $table);
379
-			}
380
-			echo "MAJ $v";
381
-			$etape = serie_alter($v, $operations, $meta, $table, $redirect);
382
-			$trouver_table(''); // vider le cache des descriptions de table
383
-			# echec sur une etape en cours ?
384
-			# on sort
385
-			if ($etape) {
386
-				return array($v, $etape);
387
-			}
388
-			$n = time() - $time;
389
-			spip_log("$table $meta: $v en $n secondes", 'maj.' . _LOG_INFO_IMPORTANTE);
390
-			if ($meta) {
391
-				ecrire_meta($meta, $installee = $v, 'oui', $table);
392
-			}
393
-			echo '<br />';
394
-		}
395
-		if (time() >= _TIME_OUT) {
396
-			relance_maj($meta, $table, $redirect);
397
-		}
398
-	}
399
-	$trouver_table(''); // vider le cache des descriptions de table
400
-	// indispensable pour les chgt de versions qui n'ecrivent pas en base
401
-	// tant pis pour la redondance eventuelle avec ci-dessus
402
-	if ($meta) {
403
-		ecrire_meta($meta, $cible, 'oui', $table);
404
-	}
405
-	spip_log("MAJ terminee. $meta: $installee", 'maj.' . _LOG_INFO_IMPORTANTE);
406
-
407
-	return array();
351
+    # inclusions pour que les procedures d'upgrade disposent des fonctions de base
352
+    include_spip('base/create');
353
+    include_spip('base/abstract_sql');
354
+    $trouver_table = charger_fonction('trouver_table', 'base');
355
+    include_spip('inc/plugin'); // pour spip_version_compare
356
+    $n = 0;
357
+    $time = time();
358
+
359
+    if (!defined('_TIME_OUT')) {
360
+        /**
361
+         * Définir le timeout qui peut-être utilisé dans les fonctions
362
+         * de mises à jour qui durent trop longtemps
363
+         *
364
+         * À utiliser tel que : `if (time() >= _TIME_OUT)`
365
+         *
366
+         * @var int
367
+         */
368
+        define('_TIME_OUT', $time + _UPGRADE_TIME_OUT);
369
+    }
370
+
371
+    foreach ($maj as $v => $operations) {
372
+        // si une maj pour cette version
373
+        if ($v == 'init' or
374
+            (spip_version_compare($v, $installee, '>')
375
+                and spip_version_compare($v, $cible, '<='))
376
+        ) {
377
+            if ($debut_page) {
378
+                maj_debut_page($v, $meta, $table);
379
+            }
380
+            echo "MAJ $v";
381
+            $etape = serie_alter($v, $operations, $meta, $table, $redirect);
382
+            $trouver_table(''); // vider le cache des descriptions de table
383
+            # echec sur une etape en cours ?
384
+            # on sort
385
+            if ($etape) {
386
+                return array($v, $etape);
387
+            }
388
+            $n = time() - $time;
389
+            spip_log("$table $meta: $v en $n secondes", 'maj.' . _LOG_INFO_IMPORTANTE);
390
+            if ($meta) {
391
+                ecrire_meta($meta, $installee = $v, 'oui', $table);
392
+            }
393
+            echo '<br />';
394
+        }
395
+        if (time() >= _TIME_OUT) {
396
+            relance_maj($meta, $table, $redirect);
397
+        }
398
+    }
399
+    $trouver_table(''); // vider le cache des descriptions de table
400
+    // indispensable pour les chgt de versions qui n'ecrivent pas en base
401
+    // tant pis pour la redondance eventuelle avec ci-dessus
402
+    if ($meta) {
403
+        ecrire_meta($meta, $cible, 'oui', $table);
404
+    }
405
+    spip_log("MAJ terminee. $meta: $installee", 'maj.' . _LOG_INFO_IMPORTANTE);
406
+
407
+    return array();
408 408
 }
409 409
 
410 410
 /**
@@ -427,52 +427,52 @@  discard block
 block discarded – undo
427 427
  * @return int
428 428
  */
429 429
 function serie_alter($serie, $q = array(), $meta = '', $table = 'meta', $redirect = '') {
430
-	$meta2 = $meta . '_maj_' . $serie;
431
-	$etape = 0;
432
-	if (isset($GLOBALS[$table][$meta2])) {
433
-		$etape = intval($GLOBALS[$table][$meta2]);
434
-	}
435
-	foreach ($q as $i => $r) {
436
-		if ($i >= $etape) {
437
-			$msg = "maj $table $meta2 etape $i";
438
-			if (is_array($r)
439
-				and function_exists($f = array_shift($r))
440
-			) {
441
-				// note: $r (arguments de la fonction $f) peut avoir des données tabulaires
442
-				spip_log("$msg: $f " . @join(',', $r), 'maj.' . _LOG_INFO_IMPORTANTE);
443
-				// pour les fonctions atomiques sql_xx
444
-				// on enregistre le meta avant de lancer la fonction,
445
-				// de maniere a eviter de boucler sur timeout
446
-				// mais pour les fonctions complexes,
447
-				// il faut les rejouer jusqu'a achevement.
448
-				// C'est a elle d'assurer qu'elles progressent a chaque rappel
449
-				if (strncmp($f, 'sql_', 4) == 0) {
450
-					ecrire_meta($meta2, $i + 1, 'non', $table);
451
-				}
452
-				echo " <span title='$i'>.</span>";
453
-				call_user_func_array($f, $r);
454
-				// si temps imparti depasse, on relance sans ecrire en meta
455
-				// car on est peut etre sorti sur timeout si c'est une fonction longue
456
-				if (time() >= _TIME_OUT) {
457
-					relance_maj($meta, $table, $redirect);
458
-				}
459
-				ecrire_meta($meta2, $i + 1, 'non', $table);
460
-				spip_log("$meta2: ok", 'maj.' . _LOG_INFO_IMPORTANTE);
461
-			} else {
462
-				if (!is_array($r)) {
463
-					spip_log("maj $i format incorrect", 'maj.' . _LOG_ERREUR);
464
-				} else {
465
-					spip_log("maj $i fonction $f non definie", 'maj.' . _LOG_ERREUR);
466
-				}
467
-				// en cas d'erreur serieuse, on s'arrete
468
-				// mais on permet de passer par dessus en rechargeant la page.
469
-				return $i + 1;
470
-			}
471
-		}
472
-	}
473
-	effacer_meta($meta2, $table);
474
-
475
-	return 0;
430
+    $meta2 = $meta . '_maj_' . $serie;
431
+    $etape = 0;
432
+    if (isset($GLOBALS[$table][$meta2])) {
433
+        $etape = intval($GLOBALS[$table][$meta2]);
434
+    }
435
+    foreach ($q as $i => $r) {
436
+        if ($i >= $etape) {
437
+            $msg = "maj $table $meta2 etape $i";
438
+            if (is_array($r)
439
+                and function_exists($f = array_shift($r))
440
+            ) {
441
+                // note: $r (arguments de la fonction $f) peut avoir des données tabulaires
442
+                spip_log("$msg: $f " . @join(',', $r), 'maj.' . _LOG_INFO_IMPORTANTE);
443
+                // pour les fonctions atomiques sql_xx
444
+                // on enregistre le meta avant de lancer la fonction,
445
+                // de maniere a eviter de boucler sur timeout
446
+                // mais pour les fonctions complexes,
447
+                // il faut les rejouer jusqu'a achevement.
448
+                // C'est a elle d'assurer qu'elles progressent a chaque rappel
449
+                if (strncmp($f, 'sql_', 4) == 0) {
450
+                    ecrire_meta($meta2, $i + 1, 'non', $table);
451
+                }
452
+                echo " <span title='$i'>.</span>";
453
+                call_user_func_array($f, $r);
454
+                // si temps imparti depasse, on relance sans ecrire en meta
455
+                // car on est peut etre sorti sur timeout si c'est une fonction longue
456
+                if (time() >= _TIME_OUT) {
457
+                    relance_maj($meta, $table, $redirect);
458
+                }
459
+                ecrire_meta($meta2, $i + 1, 'non', $table);
460
+                spip_log("$meta2: ok", 'maj.' . _LOG_INFO_IMPORTANTE);
461
+            } else {
462
+                if (!is_array($r)) {
463
+                    spip_log("maj $i format incorrect", 'maj.' . _LOG_ERREUR);
464
+                } else {
465
+                    spip_log("maj $i fonction $f non definie", 'maj.' . _LOG_ERREUR);
466
+                }
467
+                // en cas d'erreur serieuse, on s'arrete
468
+                // mais on permet de passer par dessus en rechargeant la page.
469
+                return $i + 1;
470
+            }
471
+        }
472
+    }
473
+    effacer_meta($meta2, $table);
474
+
475
+    return 0;
476 476
 }
477 477
 
478 478
 
@@ -494,11 +494,11 @@  discard block
 block discarded – undo
494 494
  *
495 495
  **/
496 496
 function upgrade_types_documents() {
497
-	if (include_spip('base/medias')
498
-		and function_exists('creer_base_types_doc')
499
-	) {
500
-		creer_base_types_doc();
501
-	}
497
+    if (include_spip('base/medias')
498
+        and function_exists('creer_base_types_doc')
499
+    ) {
500
+        creer_base_types_doc();
501
+    }
502 502
 }
503 503
 
504 504
 /**
@@ -507,16 +507,16 @@  discard block
 block discarded – undo
507 507
  * @return bool True si possible.
508 508
  **/
509 509
 function upgrade_test() {
510
-	sql_drop_table('spip_test', true);
511
-	sql_create('spip_test', array('a' => 'int'));
512
-	sql_alter('TABLE spip_test ADD b INT');
513
-	sql_insertq('spip_test', array('b' => 1), array('field' => array('b' => 'int')));
514
-	$result = sql_select('b', 'spip_test');
515
-	// ne pas garder le resultat de la requete sinon sqlite3
516
-	// ne peut pas supprimer la table spip_test lors du sql_alter qui suit
517
-	// car cette table serait alors 'verouillee'
518
-	$result = $result ? true : false;
519
-	sql_alter('TABLE spip_test DROP b');
520
-
521
-	return $result;
510
+    sql_drop_table('spip_test', true);
511
+    sql_create('spip_test', array('a' => 'int'));
512
+    sql_alter('TABLE spip_test ADD b INT');
513
+    sql_insertq('spip_test', array('b' => 1), array('field' => array('b' => 'int')));
514
+    $result = sql_select('b', 'spip_test');
515
+    // ne pas garder le resultat de la requete sinon sqlite3
516
+    // ne peut pas supprimer la table spip_test lors du sql_alter qui suit
517
+    // car cette table serait alors 'verouillee'
518
+    $result = $result ? true : false;
519
+    sql_alter('TABLE spip_test DROP b');
520
+
521
+    return $result;
522 522
 }
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -56,7 +56,7 @@  discard block
 block discarded – undo
56 56
 	if ($GLOBALS['spip_version_base'] != $GLOBALS['meta']['version_installee']) {
57 57
 		if (!is_numeric(_request('reinstall'))) {
58 58
 			include_spip('base/create');
59
-			spip_log('recree les tables eventuellement disparues', 'maj.' . _LOG_INFO_IMPORTANTE);
59
+			spip_log('recree les tables eventuellement disparues', 'maj.'._LOG_INFO_IMPORTANTE);
60 60
 			creer_base();
61 61
 		}
62 62
 
@@ -69,7 +69,7 @@  discard block
 block discarded – undo
69 69
 			exit;
70 70
 		}
71 71
 	}
72
-	spip_log('Fin de mise a jour SQL. Debut m-a-j acces et config', 'maj.' . _LOG_INFO_IMPORTANTE);
72
+	spip_log('Fin de mise a jour SQL. Debut m-a-j acces et config', 'maj.'._LOG_INFO_IMPORTANTE);
73 73
 
74 74
 	// supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
75 75
 	@spip_unlink(_CACHE_RUBRIQUES);
@@ -78,7 +78,7 @@  discard block
 block discarded – undo
78 78
 	@spip_unlink(_CACHE_PLUGINS_OPT);
79 79
 	@spip_unlink(_CACHE_PLUGINS_FCT);
80 80
 	@spip_unlink(_CACHE_CHEMIN);
81
-	@spip_unlink(_DIR_TMP . 'plugin_xml_cache.gz');
81
+	@spip_unlink(_DIR_TMP.'plugin_xml_cache.gz');
82 82
 
83 83
 	include_spip('inc/auth');
84 84
 	auth_synchroniser_distant();
@@ -117,8 +117,8 @@  discard block
 block discarded – undo
117 117
 	$version_installee = $GLOBALS['meta']['version_installee'] ?? null;
118 118
 
119 119
 	spip_log(
120
-		"Version anterieure: $version_installee. Courante: " . $GLOBALS['spip_version_base'],
121
-		'maj.' . _LOG_INFO_IMPORTANTE
120
+		"Version anterieure: $version_installee. Courante: ".$GLOBALS['spip_version_base'],
121
+		'maj.'._LOG_INFO_IMPORTANTE
122 122
 	);
123 123
 	if (!$version_installee or ($GLOBALS['spip_version_base'] < $version_installee)) {
124 124
 		sql_replace(
@@ -151,9 +151,9 @@  discard block
 block discarded – undo
151 151
 	$res = maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee', 'meta', $redirect, $debut_page);
152 152
 	if ($res) {
153 153
 		if (!is_array($res)) {
154
-			spip_log("Pb d'acces SQL a la mise a jour", 'maj.' . _LOG_INFO_ERREUR);
154
+			spip_log("Pb d'acces SQL a la mise a jour", 'maj.'._LOG_INFO_ERREUR);
155 155
 		} else {
156
-			echo _T('avis_operation_echec') . ' ' . join(' ', $res);
156
+			echo _T('avis_operation_echec').' '.join(' ', $res);
157 157
 			echo install_fin_html();
158 158
 		}
159 159
 	}
@@ -240,9 +240,9 @@  discard block
 block discarded – undo
240 240
 		$res = maj_while($current_version, $version_cible, $maj, $nom_meta_base_version, $table_meta, $redirect);
241 241
 		if ($res) {
242 242
 			if (!is_array($res)) {
243
-				spip_log("Pb d'acces SQL a la mise a jour", 'maj.' . _LOG_INFO_ERREUR);
243
+				spip_log("Pb d'acces SQL a la mise a jour", 'maj.'._LOG_INFO_ERREUR);
244 244
 			} else {
245
-				echo '<p>' . _T('avis_operation_echec') . ' ' . join(' ', $res) . '</p>';
245
+				echo '<p>'._T('avis_operation_echec').' '.join(' ', $res).'</p>';
246 246
 			}
247 247
 		}
248 248
 	}
@@ -294,11 +294,11 @@  discard block
 block discarded – undo
294 294
 	$timeout = _UPGRADE_TIME_OUT * 2;
295 295
 	$titre = _T('titre_page_upgrade');
296 296
 	$balise_img = charger_filtre('balise_img');
297
-	$titre .= $balise_img(chemin_image('loader.svg'),'','loader');
297
+	$titre .= $balise_img(chemin_image('loader.svg'), '', 'loader');
298 298
 	echo(install_debut_html($titre));
299 299
 	// script de rechargement auto sur timeout
300 300
 	$redirect = generer_url_ecrire('upgrade', "reinstall=$installee&meta=$meta&table=$table", true);
301
-	echo http_script("window.setTimeout('location.href=\"" . $redirect . "\";'," . ($timeout * 1000) . ')');
301
+	echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout * 1000).')');
302 302
 	echo "<div style='text-align: left'>\n";
303 303
 	if (ob_get_level()) {
304 304
 		ob_flush();
@@ -386,7 +386,7 @@  discard block
 block discarded – undo
386 386
 				return array($v, $etape);
387 387
 			}
388 388
 			$n = time() - $time;
389
-			spip_log("$table $meta: $v en $n secondes", 'maj.' . _LOG_INFO_IMPORTANTE);
389
+			spip_log("$table $meta: $v en $n secondes", 'maj.'._LOG_INFO_IMPORTANTE);
390 390
 			if ($meta) {
391 391
 				ecrire_meta($meta, $installee = $v, 'oui', $table);
392 392
 			}
@@ -402,7 +402,7 @@  discard block
 block discarded – undo
402 402
 	if ($meta) {
403 403
 		ecrire_meta($meta, $cible, 'oui', $table);
404 404
 	}
405
-	spip_log("MAJ terminee. $meta: $installee", 'maj.' . _LOG_INFO_IMPORTANTE);
405
+	spip_log("MAJ terminee. $meta: $installee", 'maj.'._LOG_INFO_IMPORTANTE);
406 406
 
407 407
 	return array();
408 408
 }
@@ -427,7 +427,7 @@  discard block
 block discarded – undo
427 427
  * @return int
428 428
  */
429 429
 function serie_alter($serie, $q = array(), $meta = '', $table = 'meta', $redirect = '') {
430
-	$meta2 = $meta . '_maj_' . $serie;
430
+	$meta2 = $meta.'_maj_'.$serie;
431 431
 	$etape = 0;
432 432
 	if (isset($GLOBALS[$table][$meta2])) {
433 433
 		$etape = intval($GLOBALS[$table][$meta2]);
@@ -439,7 +439,7 @@  discard block
 block discarded – undo
439 439
 				and function_exists($f = array_shift($r))
440 440
 			) {
441 441
 				// note: $r (arguments de la fonction $f) peut avoir des données tabulaires
442
-				spip_log("$msg: $f " . @join(',', $r), 'maj.' . _LOG_INFO_IMPORTANTE);
442
+				spip_log("$msg: $f ".@join(',', $r), 'maj.'._LOG_INFO_IMPORTANTE);
443 443
 				// pour les fonctions atomiques sql_xx
444 444
 				// on enregistre le meta avant de lancer la fonction,
445 445
 				// de maniere a eviter de boucler sur timeout
@@ -457,12 +457,12 @@  discard block
 block discarded – undo
457 457
 					relance_maj($meta, $table, $redirect);
458 458
 				}
459 459
 				ecrire_meta($meta2, $i + 1, 'non', $table);
460
-				spip_log("$meta2: ok", 'maj.' . _LOG_INFO_IMPORTANTE);
460
+				spip_log("$meta2: ok", 'maj.'._LOG_INFO_IMPORTANTE);
461 461
 			} else {
462 462
 				if (!is_array($r)) {
463
-					spip_log("maj $i format incorrect", 'maj.' . _LOG_ERREUR);
463
+					spip_log("maj $i format incorrect", 'maj.'._LOG_ERREUR);
464 464
 				} else {
465
-					spip_log("maj $i fonction $f non definie", 'maj.' . _LOG_ERREUR);
465
+					spip_log("maj $i fonction $f non definie", 'maj.'._LOG_ERREUR);
466 466
 				}
467 467
 				// en cas d'erreur serieuse, on s'arrete
468 468
 				// mais on permet de passer par dessus en rechargeant la page.
Please login to merge, or discard this patch.