Completed
Push — master ( 68f762...977235 )
by cam
01:09
created
ecrire/base/delete_all.php 2 patches
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  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
 /**
@@ -29,27 +29,27 @@  discard block
 block discarded – undo
29 29
  * @param string $titre Inutilisé
30 30
  **/
31 31
 function base_delete_all_dist($titre) {
32
-	$delete = _request('delete');
33
-	$res = [];
34
-	if (is_array($delete)) {
35
-		foreach ($delete as $table) {
36
-			if (sql_drop_table($table)) {
37
-				$res[] = $table;
38
-			} else {
39
-				spip_log("SPIP n'a pas pu detruire $table.", _LOG_ERREUR);
40
-			}
41
-		}
32
+    $delete = _request('delete');
33
+    $res = [];
34
+    if (is_array($delete)) {
35
+        foreach ($delete as $table) {
36
+            if (sql_drop_table($table)) {
37
+                $res[] = $table;
38
+            } else {
39
+                spip_log("SPIP n'a pas pu detruire $table.", _LOG_ERREUR);
40
+            }
41
+        }
42 42
 
43
-		// un pipeline pour detruire les tables installees par les plugins
44
-		pipeline('delete_tables', '');
43
+        // un pipeline pour detruire les tables installees par les plugins
44
+        pipeline('delete_tables', '');
45 45
 
46
-		spip_unlink(_FILE_CONNECT);
47
-		spip_unlink(_FILE_CHMOD);
48
-		spip_unlink(_FILE_META);
49
-		spip_unlink(_ACCESS_FILE_NAME);
50
-		spip_unlink(_CACHE_RUBRIQUES);
51
-	}
52
-	$d = is_countable($delete) ? count($delete) : 0;
53
-	$r = count($res);
54
-	spip_log("Tables detruites: $r sur $d: " . join(', ', $res), _LOG_INFO_IMPORTANTE);
46
+        spip_unlink(_FILE_CONNECT);
47
+        spip_unlink(_FILE_CHMOD);
48
+        spip_unlink(_FILE_META);
49
+        spip_unlink(_ACCESS_FILE_NAME);
50
+        spip_unlink(_CACHE_RUBRIQUES);
51
+    }
52
+    $d = is_countable($delete) ? count($delete) : 0;
53
+    $r = count($res);
54
+    spip_log("Tables detruites: $r sur $d: " . join(', ', $res), _LOG_INFO_IMPORTANTE);
55 55
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -51,5 +51,5 @@
 block discarded – undo
51 51
 	}
52 52
 	$d = is_countable($delete) ? count($delete) : 0;
53 53
 	$r = count($res);
54
-	spip_log("Tables detruites: $r sur $d: " . join(', ', $res), _LOG_INFO_IMPORTANTE);
54
+	spip_log("Tables detruites: $r sur $d: ".join(', ', $res), _LOG_INFO_IMPORTANTE);
55 55
 }
Please login to merge, or discard this patch.
ecrire/base/abstract_sql.php 2 patches
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -53,10 +53,10 @@  discard block
 block discarded – undo
53 53
 
54 54
 	if ($compil_info) {
55 55
 		$contexte_compil = [
56
-			$trace[0]['file'],// sourcefile
56
+			$trace[0]['file'], // sourcefile
57 57
 			'', //nom
58
-			(isset($trace[1]) ? $trace[1]['function'] . "(){\n" : '')
59
-			. $trace[0]['function'] . '();'
58
+			(isset($trace[1]) ? $trace[1]['function']."(){\n" : '')
59
+			. $trace[0]['function'].'();'
60 60
 			. (isset($trace[1]) ? "\n}" : ''), //id_boucle
61 61
 			$trace[0]['line'], // ligne
62 62
 			$GLOBALS['spip_lang'], // lang
@@ -65,7 +65,7 @@  discard block
 block discarded – undo
65 65
 		return $contexte_compil;
66 66
 	}
67 67
 
68
-	$message = count($trace) ? $trace[0]['file'] . ' L' . $trace[0]['line'] : '';
68
+	$message = count($trace) ? $trace[0]['file'].' L'.$trace[0]['line'] : '';
69 69
 	$f = [];
70 70
 	while (count($trace) and $t = array_shift($trace)) {
71 71
 		if (in_array($t['function'], ['include_once', 'include_spip', 'find_in_path'])) {
@@ -74,7 +74,7 @@  discard block
 block discarded – undo
74 74
 		$f[] = $t['function'];
75 75
 	}
76 76
 	if (count($f)) {
77
-		$message .= ' [' . implode('(),', $f) . '()]';
77
+		$message .= ' ['.implode('(),', $f).'()]';
78 78
 	}
79 79
 
80 80
 	return $message;
@@ -267,7 +267,7 @@  discard block
 block discarded – undo
267 267
 		// le debug, c'est pour ce qui a ete produit par le compilateur
268 268
 		if (isset($GLOBALS['debug']['aucasou'])) {
269 269
 			[$table, $id, ] = $GLOBALS['debug']['aucasou'];
270
-			$nom = $GLOBALS['debug_objets']['courant'] . $id;
270
+			$nom = $GLOBALS['debug_objets']['courant'].$id;
271 271
 			$GLOBALS['debug_objets']['requete'][$nom] = $query;
272 272
 		}
273 273
 		$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
@@ -1144,7 +1144,7 @@  discard block
 block discarded – undo
1144 1144
 	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1145 1145
 	if ($spip == null) {
1146 1146
 		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1147
-		$spip = $connexion['prefixe'] . '\_%';
1147
+		$spip = $connexion['prefixe'].'\_%';
1148 1148
 	}
1149 1149
 
1150 1150
 	return $f($spip, $serveur, $option !== false);
@@ -2302,9 +2302,9 @@  discard block
 block discarded – undo
2302 2302
 		$jour = 0;
2303 2303
 	}
2304 2304
 
2305
-	return sprintf('%04u', $annee) . '-' . sprintf('%02u', $mois) . '-'
2306
-	. sprintf('%02u', $jour) . ' ' . sprintf('%02u', $h) . ':'
2307
-	. sprintf('%02u', $m) . ':' . sprintf('%02u', $s);
2305
+	return sprintf('%04u', $annee).'-'.sprintf('%02u', $mois).'-'
2306
+	. sprintf('%02u', $jour).' '.sprintf('%02u', $h).':'
2307
+	. sprintf('%02u', $m).':'.sprintf('%02u', $s);
2308 2308
 }
2309 2309
 
2310 2310
 
@@ -2366,7 +2366,7 @@  discard block
 block discarded – undo
2366 2366
  */
2367 2367
 function prefixer_table_spip($table, $prefixe) {
2368 2368
 	if ($prefixe) {
2369
-		$table = preg_replace('/^spip_/', $prefixe . '_', $table);
2369
+		$table = preg_replace('/^spip_/', $prefixe.'_', $table);
2370 2370
 	}
2371 2371
 	return $table;
2372 2372
 }
Please login to merge, or discard this patch.
Indentation   +693 added lines, -693 removed lines patch added patch discarded remove patch
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
  */
26 26
 
27 27
 if (!defined('_ECRIRE_INC_VERSION')) {
28
-	return;
28
+    return;
29 29
 }
30 30
 
31 31
 /** Version de l'API SQL */
@@ -45,39 +45,39 @@  discard block
 block discarded – undo
45 45
  *     contexte de l'erreur
46 46
  **/
47 47
 function sql_error_backtrace($compil_info = false) {
48
-	$trace = debug_backtrace();
49
-	$caller = array_shift($trace);
50
-	while (count($trace) and (empty($trace[0]['file']) or $trace[0]['file'] === $caller['file'] or $trace[0]['file'] === __FILE__)) {
51
-		array_shift($trace);
52
-	}
53
-
54
-	if ($compil_info) {
55
-		$contexte_compil = [
56
-			$trace[0]['file'],// sourcefile
57
-			'', //nom
58
-			(isset($trace[1]) ? $trace[1]['function'] . "(){\n" : '')
59
-			. $trace[0]['function'] . '();'
60
-			. (isset($trace[1]) ? "\n}" : ''), //id_boucle
61
-			$trace[0]['line'], // ligne
62
-			$GLOBALS['spip_lang'], // lang
63
-		];
64
-
65
-		return $contexte_compil;
66
-	}
67
-
68
-	$message = count($trace) ? $trace[0]['file'] . ' L' . $trace[0]['line'] : '';
69
-	$f = [];
70
-	while (count($trace) and $t = array_shift($trace)) {
71
-		if (in_array($t['function'], ['include_once', 'include_spip', 'find_in_path'])) {
72
-			break;
73
-		}
74
-		$f[] = $t['function'];
75
-	}
76
-	if (count($f)) {
77
-		$message .= ' [' . implode('(),', $f) . '()]';
78
-	}
79
-
80
-	return $message;
48
+    $trace = debug_backtrace();
49
+    $caller = array_shift($trace);
50
+    while (count($trace) and (empty($trace[0]['file']) or $trace[0]['file'] === $caller['file'] or $trace[0]['file'] === __FILE__)) {
51
+        array_shift($trace);
52
+    }
53
+
54
+    if ($compil_info) {
55
+        $contexte_compil = [
56
+            $trace[0]['file'],// sourcefile
57
+            '', //nom
58
+            (isset($trace[1]) ? $trace[1]['function'] . "(){\n" : '')
59
+            . $trace[0]['function'] . '();'
60
+            . (isset($trace[1]) ? "\n}" : ''), //id_boucle
61
+            $trace[0]['line'], // ligne
62
+            $GLOBALS['spip_lang'], // lang
63
+        ];
64
+
65
+        return $contexte_compil;
66
+    }
67
+
68
+    $message = count($trace) ? $trace[0]['file'] . ' L' . $trace[0]['line'] : '';
69
+    $f = [];
70
+    while (count($trace) and $t = array_shift($trace)) {
71
+        if (in_array($t['function'], ['include_once', 'include_spip', 'find_in_path'])) {
72
+            break;
73
+        }
74
+        $f[] = $t['function'];
75
+    }
76
+    if (count($f)) {
77
+        $message .= ' [' . implode('(),', $f) . '()]';
78
+    }
79
+
80
+    return $message;
81 81
 }
82 82
 
83 83
 
@@ -102,16 +102,16 @@  discard block
 block discarded – undo
102 102
  *
103 103
  **/
104 104
 function sql_serveur($ins_sql = '', $serveur = '', $continue = false) {
105
-	static $sql_serveur = [];
106
-	if (!isset($sql_serveur[$serveur][$ins_sql])) {
107
-		$f = spip_connect_sql(\SQL_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
108
-		if (!is_string($f) or !$f) {
109
-			return $f;
110
-		}
111
-		$sql_serveur[$serveur][$ins_sql] = $f;
112
-	}
113
-
114
-	return $sql_serveur[$serveur][$ins_sql];
105
+    static $sql_serveur = [];
106
+    if (!isset($sql_serveur[$serveur][$ins_sql])) {
107
+        $f = spip_connect_sql(\SQL_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
108
+        if (!is_string($f) or !$f) {
109
+            return $f;
110
+        }
111
+        $sql_serveur[$serveur][$ins_sql] = $f;
112
+    }
113
+
114
+    return $sql_serveur[$serveur][$ins_sql];
115 115
 }
116 116
 
117 117
 /**
@@ -133,23 +133,23 @@  discard block
 block discarded – undo
133 133
  *     Retourne le nom du charset si effectivement trouvé, sinon false.
134 134
  **/
135 135
 function sql_get_charset($charset, $serveur = '', $option = true) {
136
-	// le nom http du charset differe parfois du nom SQL utf-8 ==> utf8 etc.
137
-	$desc = sql_serveur('', $serveur, true);
138
-	$desc = $desc[\SQL_ABSTRACT_VERSION];
139
-	$c = $desc['charsets'][$charset];
140
-	if ($c) {
141
-		if (function_exists($f = @$desc['get_charset'])) {
142
-			if ($f($c, $serveur, $option !== false)) {
143
-				return $c;
144
-			}
145
-		}
146
-	}
147
-	spip_log(
148
-		"SPIP ne connait pas les Charsets disponibles sur le serveur $serveur. Le serveur choisira seul.",
149
-		_LOG_AVERTISSEMENT
150
-	);
151
-
152
-	return false;
136
+    // le nom http du charset differe parfois du nom SQL utf-8 ==> utf8 etc.
137
+    $desc = sql_serveur('', $serveur, true);
138
+    $desc = $desc[\SQL_ABSTRACT_VERSION];
139
+    $c = $desc['charsets'][$charset];
140
+    if ($c) {
141
+        if (function_exists($f = @$desc['get_charset'])) {
142
+            if ($f($c, $serveur, $option !== false)) {
143
+                return $c;
144
+            }
145
+        }
146
+    }
147
+    spip_log(
148
+        "SPIP ne connait pas les Charsets disponibles sur le serveur $serveur. Le serveur choisira seul.",
149
+        _LOG_AVERTISSEMENT
150
+    );
151
+
152
+    return false;
153 153
 }
154 154
 
155 155
 
@@ -175,12 +175,12 @@  discard block
 block discarded – undo
175 175
  *    Retourne true si elle reussie.
176 176
  **/
177 177
 function sql_set_charset($charset, $serveur = '', $option = true) {
178
-	$f = sql_serveur('set_charset', $serveur, $option === 'continue' or $option === false);
179
-	if (!is_string($f) or !$f) {
180
-		return false;
181
-	}
178
+    $f = sql_serveur('set_charset', $serveur, $option === 'continue' or $option === false);
179
+    if (!is_string($f) or !$f) {
180
+        return false;
181
+    }
182 182
 
183
-	return $f($charset, $serveur, $option !== false);
183
+    return $f($charset, $serveur, $option !== false);
184 184
 }
185 185
 
186 186
 
@@ -231,59 +231,59 @@  discard block
 block discarded – undo
231 231
  *
232 232
  **/
233 233
 function sql_select(
234
-	$select = [],
235
-	$from = [],
236
-	$where = [],
237
-	$groupby = [],
238
-	$orderby = [],
239
-	$limit = '',
240
-	$having = [],
241
-	$serveur = '',
242
-	$option = true
234
+    $select = [],
235
+    $from = [],
236
+    $where = [],
237
+    $groupby = [],
238
+    $orderby = [],
239
+    $limit = '',
240
+    $having = [],
241
+    $serveur = '',
242
+    $option = true
243 243
 ) {
244
-	$f = sql_serveur('select', $serveur, $option === 'continue' or $option === false);
245
-	if (!is_string($f) or !$f) {
246
-		return false;
247
-	}
248
-
249
-	$debug = (defined('_VAR_MODE') and _VAR_MODE == 'debug');
250
-	if (($option !== false) and !$debug) {
251
-		$res = $f(
252
-			$select,
253
-			$from,
254
-			$where,
255
-			$groupby,
256
-			$orderby,
257
-			$limit,
258
-			$having,
259
-			$serveur,
260
-			is_array($option) ? true : $option
261
-		);
262
-	} else {
263
-		$query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
264
-		if (!$option) {
265
-			return $query;
266
-		}
267
-		// le debug, c'est pour ce qui a ete produit par le compilateur
268
-		if (isset($GLOBALS['debug']['aucasou'])) {
269
-			[$table, $id, ] = $GLOBALS['debug']['aucasou'];
270
-			$nom = $GLOBALS['debug_objets']['courant'] . $id;
271
-			$GLOBALS['debug_objets']['requete'][$nom] = $query;
272
-		}
273
-		$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
274
-	}
275
-
276
-	// en cas d'erreur
277
-	if (!is_string($res)) {
278
-		return $res;
279
-	}
280
-	// denoncer l'erreur SQL dans sa version brute
281
-	spip_sql_erreur($serveur);
282
-	// idem dans sa version squelette (prefixe des tables non substitue)
283
-	$contexte_compil = sql_error_backtrace(true);
284
-	erreur_squelette([sql_errno($serveur), sql_error($serveur), $res], $contexte_compil);
285
-
286
-	return false;
244
+    $f = sql_serveur('select', $serveur, $option === 'continue' or $option === false);
245
+    if (!is_string($f) or !$f) {
246
+        return false;
247
+    }
248
+
249
+    $debug = (defined('_VAR_MODE') and _VAR_MODE == 'debug');
250
+    if (($option !== false) and !$debug) {
251
+        $res = $f(
252
+            $select,
253
+            $from,
254
+            $where,
255
+            $groupby,
256
+            $orderby,
257
+            $limit,
258
+            $having,
259
+            $serveur,
260
+            is_array($option) ? true : $option
261
+        );
262
+    } else {
263
+        $query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
264
+        if (!$option) {
265
+            return $query;
266
+        }
267
+        // le debug, c'est pour ce qui a ete produit par le compilateur
268
+        if (isset($GLOBALS['debug']['aucasou'])) {
269
+            [$table, $id, ] = $GLOBALS['debug']['aucasou'];
270
+            $nom = $GLOBALS['debug_objets']['courant'] . $id;
271
+            $GLOBALS['debug_objets']['requete'][$nom] = $query;
272
+        }
273
+        $res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
274
+    }
275
+
276
+    // en cas d'erreur
277
+    if (!is_string($res)) {
278
+        return $res;
279
+    }
280
+    // denoncer l'erreur SQL dans sa version brute
281
+    spip_sql_erreur($serveur);
282
+    // idem dans sa version squelette (prefixe des tables non substitue)
283
+    $contexte_compil = sql_error_backtrace(true);
284
+    erreur_squelette([sql_errno($serveur), sql_error($serveur), $res], $contexte_compil);
285
+
286
+    return false;
287 287
 }
288 288
 
289 289
 
@@ -320,16 +320,16 @@  discard block
 block discarded – undo
320 320
  *
321 321
  **/
322 322
 function sql_get_select(
323
-	$select = [],
324
-	$from = [],
325
-	$where = [],
326
-	$groupby = [],
327
-	$orderby = [],
328
-	$limit = '',
329
-	$having = [],
330
-	$serveur = ''
323
+    $select = [],
324
+    $from = [],
325
+    $where = [],
326
+    $groupby = [],
327
+    $orderby = [],
328
+    $limit = '',
329
+    $having = [],
330
+    $serveur = ''
331 331
 ) {
332
-	return sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
332
+    return sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
333 333
 }
334 334
 
335 335
 
@@ -373,23 +373,23 @@  discard block
 block discarded – undo
373 373
  *
374 374
  **/
375 375
 function sql_countsel(
376
-	$from = [],
377
-	$where = [],
378
-	$groupby = [],
379
-	$having = [],
380
-	$serveur = '',
381
-	$option = true
376
+    $from = [],
377
+    $where = [],
378
+    $groupby = [],
379
+    $having = [],
380
+    $serveur = '',
381
+    $option = true
382 382
 ) {
383
-	$f = sql_serveur('countsel', $serveur, $option === 'continue' or $option === false);
384
-	if (!is_string($f) or !$f) {
385
-		return false;
386
-	}
387
-	$r = $f($from, $where, $groupby, $having, $serveur, $option !== false);
388
-	if ($r === false) {
389
-		spip_sql_erreur($serveur);
390
-	}
391
-
392
-	return $r;
383
+    $f = sql_serveur('countsel', $serveur, $option === 'continue' or $option === false);
384
+    if (!is_string($f) or !$f) {
385
+        return false;
386
+    }
387
+    $r = $f($from, $where, $groupby, $having, $serveur, $option !== false);
388
+    if ($r === false) {
389
+        spip_sql_erreur($serveur);
390
+    }
391
+
392
+    return $r;
393 393
 }
394 394
 
395 395
 /**
@@ -421,16 +421,16 @@  discard block
 block discarded – undo
421 421
  *     Ce retour n'est pas pertinent pour savoir si l'opération est correctement réalisée.
422 422
  **/
423 423
 function sql_alter($q, $serveur = '', $option = true) {
424
-	$f = sql_serveur('alter', $serveur, $option === 'continue' or $option === false);
425
-	if (!is_string($f) or !$f) {
426
-		return false;
427
-	}
428
-	$r = $f($q, $serveur, $option !== false);
429
-	if ($r === false) {
430
-		spip_sql_erreur($serveur);
431
-	}
432
-
433
-	return $r;
424
+    $f = sql_serveur('alter', $serveur, $option === 'continue' or $option === false);
425
+    if (!is_string($f) or !$f) {
426
+        return false;
427
+    }
428
+    $r = $f($q, $serveur, $option !== false);
429
+    if ($r === false) {
430
+        spip_sql_erreur($serveur);
431
+    }
432
+
433
+    return $r;
434 434
 }
435 435
 
436 436
 /**
@@ -453,12 +453,12 @@  discard block
 block discarded – undo
453 453
  *    presentant une ligne de resultat d'une selection
454 454
  */
455 455
 function sql_fetch($res, $serveur = '', $option = true) {
456
-	$f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
457
-	if (!is_string($f) or !$f) {
458
-		return false;
459
-	}
456
+    $f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
457
+    if (!is_string($f) or !$f) {
458
+        return false;
459
+    }
460 460
 
461
-	return $f($res, null, $serveur, $option !== false);
461
+    return $f($res, null, $serveur, $option !== false);
462 462
 }
463 463
 
464 464
 
@@ -485,20 +485,20 @@  discard block
 block discarded – undo
485 485
  *    presentant une ligne de resultat d'une selection
486 486
  */
487 487
 function sql_fetch_all($res, $serveur = '', $option = true) {
488
-	$rows = [];
489
-	if (!$res) {
490
-		return $rows;
491
-	}
492
-	$f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
493
-	if (!is_string($f) or !$f) {
494
-		return [];
495
-	}
496
-	while ($r = $f($res, null, $serveur, $option !== false)) {
497
-		$rows[] = $r;
498
-	}
499
-	sql_free($res, $serveur);
500
-
501
-	return $rows;
488
+    $rows = [];
489
+    if (!$res) {
490
+        return $rows;
491
+    }
492
+    $f = sql_serveur('fetch', $serveur, $option === 'continue' or $option === false);
493
+    if (!is_string($f) or !$f) {
494
+        return [];
495
+    }
496
+    while ($r = $f($res, null, $serveur, $option !== false)) {
497
+        $rows[] = $r;
498
+    }
499
+    sql_free($res, $serveur);
500
+
501
+    return $rows;
502 502
 }
503 503
 
504 504
 /**
@@ -526,16 +526,16 @@  discard block
 block discarded – undo
526 526
  *    Operation effectuée (true), sinon false.
527 527
  **/
528 528
 function sql_seek($res, $row_number, $serveur = '', $option = true) {
529
-	$f = sql_serveur('seek', $serveur, $option === 'continue' or $option === false);
530
-	if (!is_string($f) or !$f) {
531
-		return false;
532
-	}
533
-	$r = $f($res, $row_number, $serveur, $option !== false);
534
-	if ($r === false) {
535
-		spip_sql_erreur($serveur);
536
-	}
537
-
538
-	return $r;
529
+    $f = sql_serveur('seek', $serveur, $option === 'continue' or $option === false);
530
+    if (!is_string($f) or !$f) {
531
+        return false;
532
+    }
533
+    $r = $f($res, $row_number, $serveur, $option !== false);
534
+    if ($r === false) {
535
+        spip_sql_erreur($serveur);
536
+    }
537
+
538
+    return $r;
539 539
 }
540 540
 
541 541
 
@@ -560,16 +560,16 @@  discard block
 block discarded – undo
560 560
  *    False en cas d'erreur.
561 561
  **/
562 562
 function sql_listdbs($serveur = '', $option = true) {
563
-	$f = sql_serveur('listdbs', $serveur, $option === 'continue' or $option === false);
564
-	if (!is_string($f) or !$f) {
565
-		return false;
566
-	}
567
-	$r = $f($serveur);
568
-	if ($r === false) {
569
-		spip_sql_erreur($serveur);
570
-	}
571
-
572
-	return $r;
563
+    $f = sql_serveur('listdbs', $serveur, $option === 'continue' or $option === false);
564
+    if (!is_string($f) or !$f) {
565
+        return false;
566
+    }
567
+    $r = $f($serveur);
568
+    if ($r === false) {
569
+        spip_sql_erreur($serveur);
570
+    }
571
+
572
+    return $r;
573 573
 }
574 574
 
575 575
 
@@ -592,16 +592,16 @@  discard block
 block discarded – undo
592 592
  *     - False en cas d'erreur.
593 593
  **/
594 594
 function sql_selectdb($nom, $serveur = '', $option = true) {
595
-	$f = sql_serveur('selectdb', $serveur, $option === 'continue' or $option === false);
596
-	if (!is_string($f) or !$f) {
597
-		return false;
598
-	}
599
-	$r = $f($nom, $serveur, $option !== false);
600
-	if ($r === false) {
601
-		spip_sql_erreur($serveur);
602
-	}
603
-
604
-	return $r;
595
+    $f = sql_serveur('selectdb', $serveur, $option === 'continue' or $option === false);
596
+    if (!is_string($f) or !$f) {
597
+        return false;
598
+    }
599
+    $r = $f($nom, $serveur, $option !== false);
600
+    if ($r === false) {
601
+        spip_sql_erreur($serveur);
602
+    }
603
+
604
+    return $r;
605 605
 }
606 606
 
607 607
 /**
@@ -626,16 +626,16 @@  discard block
 block discarded – undo
626 626
  *     - false en cas d'erreur.
627 627
  **/
628 628
 function sql_count($res, $serveur = '', $option = true) {
629
-	$f = sql_serveur('count', $serveur, $option === 'continue' or $option === false);
630
-	if (!is_string($f) or !$f) {
631
-		return false;
632
-	}
633
-	$r = $f($res, $serveur, $option !== false);
634
-	if ($r === false) {
635
-		spip_sql_erreur($serveur);
636
-	}
637
-
638
-	return $r;
629
+    $f = sql_serveur('count', $serveur, $option === 'continue' or $option === false);
630
+    if (!is_string($f) or !$f) {
631
+        return false;
632
+    }
633
+    $r = $f($res, $serveur, $option !== false);
634
+    if ($r === false) {
635
+        spip_sql_erreur($serveur);
636
+    }
637
+
638
+    return $r;
639 639
 }
640 640
 
641 641
 /**
@@ -657,12 +657,12 @@  discard block
 block discarded – undo
657 657
  *     True si réussi
658 658
  */
659 659
 function sql_free($res, $serveur = '', $option = true) {
660
-	$f = sql_serveur('free', $serveur, $option === 'continue' or $option === false);
661
-	if (!is_string($f) or !$f) {
662
-		return false;
663
-	}
660
+    $f = sql_serveur('free', $serveur, $option === 'continue' or $option === false);
661
+    if (!is_string($f) or !$f) {
662
+        return false;
663
+    }
664 664
 
665
-	return $f($res);
665
+    return $f($res);
666 666
 }
667 667
 
668 668
 
@@ -700,17 +700,17 @@  discard block
 block discarded – undo
700 700
  *     - False en cas d'erreur.
701 701
  **/
702 702
 function sql_insert($table, $noms, $valeurs, $desc = [], $serveur = '', $option = true) {
703
-	$f = sql_serveur('insert', $serveur, $option === 'continue' or $option === false);
704
-	if (!is_string($f) or !$f) {
705
-		return false;
706
-	}
707
-	$r = $f($table, $noms, $valeurs, $desc, $serveur, $option !== false);
708
-	if ($r === false or $r === null) {
709
-		spip_sql_erreur($serveur);
710
-		$r = false;
711
-	}
712
-
713
-	return $r;
703
+    $f = sql_serveur('insert', $serveur, $option === 'continue' or $option === false);
704
+    if (!is_string($f) or !$f) {
705
+        return false;
706
+    }
707
+    $r = $f($table, $noms, $valeurs, $desc, $serveur, $option !== false);
708
+    if ($r === false or $r === null) {
709
+        spip_sql_erreur($serveur);
710
+        $r = false;
711
+    }
712
+
713
+    return $r;
714 714
 }
715 715
 
716 716
 /**
@@ -751,17 +751,17 @@  discard block
 block discarded – undo
751 751
  *     - False en cas d'erreur.
752 752
  **/
753 753
 function sql_insertq($table, $couples = [], $desc = [], $serveur = '', $option = true) {
754
-	$f = sql_serveur('insertq', $serveur, $option === 'continue' or $option === false);
755
-	if (!is_string($f) or !$f) {
756
-		return false;
757
-	}
758
-	$r = $f($table, $couples, $desc, $serveur, $option !== false);
759
-	if ($r === false or $r === null) {
760
-		spip_sql_erreur($serveur);
761
-		$r = false;
762
-	}
763
-
764
-	return $r;
754
+    $f = sql_serveur('insertq', $serveur, $option === 'continue' or $option === false);
755
+    if (!is_string($f) or !$f) {
756
+        return false;
757
+    }
758
+    $r = $f($table, $couples, $desc, $serveur, $option !== false);
759
+    if ($r === false or $r === null) {
760
+        spip_sql_erreur($serveur);
761
+        $r = false;
762
+    }
763
+
764
+    return $r;
765 765
 }
766 766
 
767 767
 /**
@@ -796,17 +796,17 @@  discard block
 block discarded – undo
796 796
  *     - false en cas d'erreur.
797 797
  **/
798 798
 function sql_insertq_multi($table, $couples = [], $desc = [], $serveur = '', $option = true) {
799
-	$f = sql_serveur('insertq_multi', $serveur, $option === 'continue' or $option === false);
800
-	if (!is_string($f) or !$f) {
801
-		return false;
802
-	}
803
-	$r = $f($table, $couples, $desc, $serveur, $option !== false);
804
-	if ($r === false or $r === null) {
805
-		spip_sql_erreur($serveur);
806
-		$r = false;
807
-	}
808
-
809
-	return $r;
799
+    $f = sql_serveur('insertq_multi', $serveur, $option === 'continue' or $option === false);
800
+    if (!is_string($f) or !$f) {
801
+        return false;
802
+    }
803
+    $r = $f($table, $couples, $desc, $serveur, $option !== false);
804
+    if ($r === false or $r === null) {
805
+        spip_sql_erreur($serveur);
806
+        $r = false;
807
+    }
808
+
809
+    return $r;
810 810
 }
811 811
 
812 812
 /**
@@ -846,16 +846,16 @@  discard block
 block discarded – undo
846 846
  *     - array Tableau décrivant la requête et son temps d'exécution si var_profile est actif
847 847
  */
848 848
 function sql_update($table, $exp, $where = '', $desc = [], $serveur = '', $option = true) {
849
-	$f = sql_serveur('update', $serveur, $option === 'continue' or $option === false);
850
-	if (!is_string($f) or !$f) {
851
-		return false;
852
-	}
853
-	$r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
854
-	if ($r === false) {
855
-		spip_sql_erreur($serveur);
856
-	}
857
-
858
-	return $r;
849
+    $f = sql_serveur('update', $serveur, $option === 'continue' or $option === false);
850
+    if (!is_string($f) or !$f) {
851
+        return false;
852
+    }
853
+    $r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
854
+    if ($r === false) {
855
+        spip_sql_erreur($serveur);
856
+    }
857
+
858
+    return $r;
859 859
 }
860 860
 
861 861
 
@@ -901,16 +901,16 @@  discard block
 block discarded – undo
901 901
  *     - false en cas d'erreur.
902 902
  **/
903 903
 function sql_updateq($table, $exp, $where = '', $desc = [], $serveur = '', $option = true) {
904
-	$f = sql_serveur('updateq', $serveur, $option === 'continue' or $option === false);
905
-	if (!is_string($f) or !$f) {
906
-		return false;
907
-	}
908
-	$r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
909
-	if ($r === false) {
910
-		spip_sql_erreur($serveur);
911
-	}
912
-
913
-	return $r;
904
+    $f = sql_serveur('updateq', $serveur, $option === 'continue' or $option === false);
905
+    if (!is_string($f) or !$f) {
906
+        return false;
907
+    }
908
+    $r = $f($table, $exp, $where, $desc, $serveur, $option !== false);
909
+    if ($r === false) {
910
+        spip_sql_erreur($serveur);
911
+    }
912
+
913
+    return $r;
914 914
 }
915 915
 
916 916
 /**
@@ -941,16 +941,16 @@  discard block
 block discarded – undo
941 941
  *     - false en cas d'erreur.
942 942
  **/
943 943
 function sql_delete($table, $where = '', $serveur = '', $option = true) {
944
-	$f = sql_serveur('delete', $serveur, $option === 'continue' or $option === false);
945
-	if (!is_string($f) or !$f) {
946
-		return false;
947
-	}
948
-	$r = $f($table, $where, $serveur, $option !== false);
949
-	if ($r === false) {
950
-		spip_sql_erreur($serveur);
951
-	}
952
-
953
-	return $r;
944
+    $f = sql_serveur('delete', $serveur, $option === 'continue' or $option === false);
945
+    if (!is_string($f) or !$f) {
946
+        return false;
947
+    }
948
+    $r = $f($table, $where, $serveur, $option !== false);
949
+    if ($r === false) {
950
+        spip_sql_erreur($serveur);
951
+    }
952
+
953
+    return $r;
954 954
 }
955 955
 
956 956
 /**
@@ -986,16 +986,16 @@  discard block
 block discarded – undo
986 986
  *     - false en cas d'erreur.
987 987
  **/
988 988
 function sql_replace($table, $couples, $desc = [], $serveur = '', $option = true) {
989
-	$f = sql_serveur('replace', $serveur, $option === 'continue' or $option === false);
990
-	if (!is_string($f) or !$f) {
991
-		return false;
992
-	}
993
-	$r = $f($table, $couples, $desc, $serveur, $option !== false);
994
-	if ($r === false) {
995
-		spip_sql_erreur($serveur);
996
-	}
997
-
998
-	return $r;
989
+    $f = sql_serveur('replace', $serveur, $option === 'continue' or $option === false);
990
+    if (!is_string($f) or !$f) {
991
+        return false;
992
+    }
993
+    $r = $f($table, $couples, $desc, $serveur, $option !== false);
994
+    if ($r === false) {
995
+        spip_sql_erreur($serveur);
996
+    }
997
+
998
+    return $r;
999 999
 }
1000 1000
 
1001 1001
 
@@ -1033,16 +1033,16 @@  discard block
 block discarded – undo
1033 1033
  *     - false en cas d'erreur.
1034 1034
  **/
1035 1035
 function sql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $option = true) {
1036
-	$f = sql_serveur('replace_multi', $serveur, $option === 'continue' or $option === false);
1037
-	if (!is_string($f) or !$f) {
1038
-		return false;
1039
-	}
1040
-	$r = $f($table, $tab_couples, $desc, $serveur, $option !== false);
1041
-	if ($r === false) {
1042
-		spip_sql_erreur($serveur);
1043
-	}
1044
-
1045
-	return $r;
1036
+    $f = sql_serveur('replace_multi', $serveur, $option === 'continue' or $option === false);
1037
+    if (!is_string($f) or !$f) {
1038
+        return false;
1039
+    }
1040
+    $r = $f($table, $tab_couples, $desc, $serveur, $option !== false);
1041
+    if ($r === false) {
1042
+        spip_sql_erreur($serveur);
1043
+    }
1044
+
1045
+    return $r;
1046 1046
 }
1047 1047
 
1048 1048
 /**
@@ -1070,16 +1070,16 @@  discard block
 block discarded – undo
1070 1070
  *     - false en cas d'erreur.
1071 1071
  **/
1072 1072
 function sql_drop_table($table, $exist = '', $serveur = '', $option = true) {
1073
-	$f = sql_serveur('drop_table', $serveur, $option === 'continue' or $option === false);
1074
-	if (!is_string($f) or !$f) {
1075
-		return false;
1076
-	}
1077
-	$r = $f($table, $exist, $serveur, $option !== false);
1078
-	if ($r === false) {
1079
-		spip_sql_erreur($serveur);
1080
-	}
1081
-
1082
-	return $r;
1073
+    $f = sql_serveur('drop_table', $serveur, $option === 'continue' or $option === false);
1074
+    if (!is_string($f) or !$f) {
1075
+        return false;
1076
+    }
1077
+    $r = $f($table, $exist, $serveur, $option !== false);
1078
+    if ($r === false) {
1079
+        spip_sql_erreur($serveur);
1080
+    }
1081
+
1082
+    return $r;
1083 1083
 }
1084 1084
 
1085 1085
 /**
@@ -1103,16 +1103,16 @@  discard block
 block discarded – undo
1103 1103
  *     - true si la requête a réussie, false sinon
1104 1104
  */
1105 1105
 function sql_drop_view($table, $exist = '', $serveur = '', $option = true) {
1106
-	$f = sql_serveur('drop_view', $serveur, $option === 'continue' or $option === false);
1107
-	if (!is_string($f) or !$f) {
1108
-		return false;
1109
-	}
1110
-	$r = $f($table, $exist, $serveur, $option !== false);
1111
-	if ($r === false) {
1112
-		spip_sql_erreur($serveur);
1113
-	}
1114
-
1115
-	return $r;
1106
+    $f = sql_serveur('drop_view', $serveur, $option === 'continue' or $option === false);
1107
+    if (!is_string($f) or !$f) {
1108
+        return false;
1109
+    }
1110
+    $r = $f($table, $exist, $serveur, $option !== false);
1111
+    if ($r === false) {
1112
+        spip_sql_erreur($serveur);
1113
+    }
1114
+
1115
+    return $r;
1116 1116
 }
1117 1117
 
1118 1118
 /**
@@ -1136,18 +1136,18 @@  discard block
 block discarded – undo
1136 1136
  *     Ressource à utiliser avec sql_fetch()
1137 1137
  **/
1138 1138
 function sql_showbase($spip = null, $serveur = '', $option = true) {
1139
-	$f = sql_serveur('showbase', $serveur, $option === 'continue' or $option === false);
1140
-	if (!is_string($f) or !$f) {
1141
-		return false;
1142
-	}
1143
-
1144
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1145
-	if ($spip == null) {
1146
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1147
-		$spip = $connexion['prefixe'] . '\_%';
1148
-	}
1149
-
1150
-	return $f($spip, $serveur, $option !== false);
1139
+    $f = sql_serveur('showbase', $serveur, $option === 'continue' or $option === false);
1140
+    if (!is_string($f) or !$f) {
1141
+        return false;
1142
+    }
1143
+
1144
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
1145
+    if ($spip == null) {
1146
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1147
+        $spip = $connexion['prefixe'] . '\_%';
1148
+    }
1149
+
1150
+    return $f($spip, $serveur, $option !== false);
1151 1151
 }
1152 1152
 
1153 1153
 /**
@@ -1170,15 +1170,15 @@  discard block
 block discarded – undo
1170 1170
  *     Liste des tables SQL
1171 1171
  **/
1172 1172
 function sql_alltable($spip = null, $serveur = '', $option = true) {
1173
-	$q = sql_showbase($spip, $serveur, $option);
1174
-	$r = [];
1175
-	if ($q) {
1176
-		while ($t = sql_fetch($q, $serveur)) {
1177
-			$r[] = array_shift($t);
1178
-		}
1179
-	}
1180
-
1181
-	return $r;
1173
+    $q = sql_showbase($spip, $serveur, $option);
1174
+    $r = [];
1175
+    if ($q) {
1176
+        while ($t = sql_fetch($q, $serveur)) {
1177
+            $r[] = array_shift($t);
1178
+        }
1179
+    }
1180
+
1181
+    return $r;
1182 1182
 }
1183 1183
 
1184 1184
 /**
@@ -1211,31 +1211,31 @@  discard block
 block discarded – undo
1211 1211
  *       - 'join' => array() // jointures, si déclarées.
1212 1212
  **/
1213 1213
 function sql_showtable($table, $table_spip = false, $serveur = '', $option = true) {
1214
-	$f = sql_serveur('showtable', $serveur, $option === 'continue' or $option === false);
1215
-	if (!is_string($f) or !$f) {
1216
-		return false;
1217
-	}
1218
-
1219
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1220
-	if ($table_spip) {
1221
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1222
-		$prefixe = $connexion['prefixe'];
1223
-		$vraie_table = prefixer_table_spip($table, $prefixe);
1224
-	} else {
1225
-		$vraie_table = $table;
1226
-	}
1227
-
1228
-	$f = $f($vraie_table, $serveur, $option !== false);
1229
-	if (!$f) {
1230
-		return [];
1231
-	}
1232
-	if (isset($GLOBALS['tables_principales'][$table]['join'])) {
1233
-		$f['join'] = $GLOBALS['tables_principales'][$table]['join'];
1234
-	} elseif (isset($GLOBALS['tables_auxiliaires'][$table]['join'])) {
1235
-		$f['join'] = $GLOBALS['tables_auxiliaires'][$table]['join'];
1236
-	}
1237
-
1238
-	return $f;
1214
+    $f = sql_serveur('showtable', $serveur, $option === 'continue' or $option === false);
1215
+    if (!is_string($f) or !$f) {
1216
+        return false;
1217
+    }
1218
+
1219
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
1220
+    if ($table_spip) {
1221
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1222
+        $prefixe = $connexion['prefixe'];
1223
+        $vraie_table = prefixer_table_spip($table, $prefixe);
1224
+    } else {
1225
+        $vraie_table = $table;
1226
+    }
1227
+
1228
+    $f = $f($vraie_table, $serveur, $option !== false);
1229
+    if (!$f) {
1230
+        return [];
1231
+    }
1232
+    if (isset($GLOBALS['tables_principales'][$table]['join'])) {
1233
+        $f['join'] = $GLOBALS['tables_principales'][$table]['join'];
1234
+    } elseif (isset($GLOBALS['tables_auxiliaires'][$table]['join'])) {
1235
+        $f['join'] = $GLOBALS['tables_auxiliaires'][$table]['join'];
1236
+    }
1237
+
1238
+    return $f;
1239 1239
 }
1240 1240
 
1241 1241
 
@@ -1262,21 +1262,21 @@  discard block
 block discarded – undo
1262 1262
  *     - false en cas d'erreur.
1263 1263
  **/
1264 1264
 function sql_table_exists(string $table, bool $table_spip = true, $serveur = '', $option = true) {
1265
-	$f = sql_serveur('table_exists', $serveur, $option === 'continue' or $option === false);
1266
-	if (!is_string($f) or !$f) {
1267
-		return false;
1268
-	}
1269
-
1270
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
1271
-	if ($table_spip) {
1272
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1273
-		$prefixe = $connexion['prefixe'];
1274
-		$vraie_table = prefixer_table_spip($table, $prefixe);
1275
-	} else {
1276
-		$vraie_table = $table;
1277
-	}
1278
-
1279
-	return $f($vraie_table, $serveur, $option !== false);
1265
+    $f = sql_serveur('table_exists', $serveur, $option === 'continue' or $option === false);
1266
+    if (!is_string($f) or !$f) {
1267
+        return false;
1268
+    }
1269
+
1270
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
1271
+    if ($table_spip) {
1272
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1273
+        $prefixe = $connexion['prefixe'];
1274
+        $vraie_table = prefixer_table_spip($table, $prefixe);
1275
+    } else {
1276
+        $vraie_table = $table;
1277
+    }
1278
+
1279
+    return $f($vraie_table, $serveur, $option !== false);
1280 1280
 }
1281 1281
 
1282 1282
 
@@ -1322,24 +1322,24 @@  discard block
 block discarded – undo
1322 1322
  *     true si succès, false en cas d'echec
1323 1323
  **/
1324 1324
 function sql_create(
1325
-	$nom,
1326
-	$champs,
1327
-	$cles = [],
1328
-	$autoinc = false,
1329
-	$temporary = false,
1330
-	$serveur = '',
1331
-	$option = true
1325
+    $nom,
1326
+    $champs,
1327
+    $cles = [],
1328
+    $autoinc = false,
1329
+    $temporary = false,
1330
+    $serveur = '',
1331
+    $option = true
1332 1332
 ) {
1333
-	$f = sql_serveur('create', $serveur, $option === 'continue' or $option === false);
1334
-	if (!is_string($f) or !$f) {
1335
-		return false;
1336
-	}
1337
-	$r = $f($nom, $champs, $cles, $autoinc, $temporary, $serveur, $option !== false);
1338
-	if ($r === false) {
1339
-		spip_sql_erreur($serveur);
1340
-	}
1341
-
1342
-	return $r;
1333
+    $f = sql_serveur('create', $serveur, $option === 'continue' or $option === false);
1334
+    if (!is_string($f) or !$f) {
1335
+        return false;
1336
+    }
1337
+    $r = $f($nom, $champs, $cles, $autoinc, $temporary, $serveur, $option !== false);
1338
+    if ($r === false) {
1339
+        spip_sql_erreur($serveur);
1340
+    }
1341
+
1342
+    return $r;
1343 1343
 }
1344 1344
 
1345 1345
 /**
@@ -1357,16 +1357,16 @@  discard block
 block discarded – undo
1357 1357
  * @return bool true si la base est créee.
1358 1358
  **/
1359 1359
 function sql_create_base($nom, $serveur = '', $option = true) {
1360
-	$f = sql_serveur('create_base', $serveur, $option === 'continue' or $option === false);
1361
-	if (!is_string($f) or !$f) {
1362
-		return false;
1363
-	}
1364
-	$r = $f($nom, $serveur, $option !== false);
1365
-	if ($r === false) {
1366
-		spip_sql_erreur($serveur);
1367
-	}
1368
-
1369
-	return $r;
1360
+    $f = sql_serveur('create_base', $serveur, $option === 'continue' or $option === false);
1361
+    if (!is_string($f) or !$f) {
1362
+        return false;
1363
+    }
1364
+    $r = $f($nom, $serveur, $option !== false);
1365
+    if ($r === false) {
1366
+        spip_sql_erreur($serveur);
1367
+    }
1368
+
1369
+    return $r;
1370 1370
 }
1371 1371
 
1372 1372
 
@@ -1396,16 +1396,16 @@  discard block
 block discarded – undo
1396 1396
  *     - false en cas d'échec.
1397 1397
  **/
1398 1398
 function sql_create_view($nom, $select_query, $serveur = '', $option = true) {
1399
-	$f = sql_serveur('create_view', $serveur, $option === 'continue' or $option === false);
1400
-	if (!is_string($f) or !$f) {
1401
-		return false;
1402
-	}
1403
-	$r = $f($nom, $select_query, $serveur, $option !== false);
1404
-	if ($r === false) {
1405
-		spip_sql_erreur($serveur);
1406
-	}
1407
-
1408
-	return $r;
1399
+    $f = sql_serveur('create_view', $serveur, $option === 'continue' or $option === false);
1400
+    if (!is_string($f) or !$f) {
1401
+        return false;
1402
+    }
1403
+    $r = $f($nom, $select_query, $serveur, $option !== false);
1404
+    if ($r === false) {
1405
+        spip_sql_erreur($serveur);
1406
+    }
1407
+
1408
+    return $r;
1409 1409
 }
1410 1410
 
1411 1411
 /**
@@ -1434,12 +1434,12 @@  discard block
 block discarded – undo
1434 1434
  *     texte de sélection pour la requête
1435 1435
  */
1436 1436
 function sql_multi($sel, $lang, $serveur = '', $option = true) {
1437
-	$f = sql_serveur('multi', $serveur, $option === 'continue' or $option === false);
1438
-	if (!is_string($f) or !$f) {
1439
-		return false;
1440
-	}
1437
+    $f = sql_serveur('multi', $serveur, $option === 'continue' or $option === false);
1438
+    if (!is_string($f) or !$f) {
1439
+        return false;
1440
+    }
1441 1441
 
1442
-	return $f($sel, $lang);
1442
+    return $f($sel, $lang);
1443 1443
 }
1444 1444
 
1445 1445
 
@@ -1454,12 +1454,12 @@  discard block
 block discarded – undo
1454 1454
  *      False si le serveur est indisponible
1455 1455
  */
1456 1456
 function sql_error($serveur = '') {
1457
-	$f = sql_serveur('error', $serveur, true);
1458
-	if (!is_string($f) or !$f) {
1459
-		return false;
1460
-	}
1457
+    $f = sql_serveur('error', $serveur, true);
1458
+    if (!is_string($f) or !$f) {
1459
+        return false;
1460
+    }
1461 1461
 
1462
-	return $f('query inconnue', $serveur);
1462
+    return $f('query inconnue', $serveur);
1463 1463
 }
1464 1464
 
1465 1465
 /**
@@ -1473,12 +1473,12 @@  discard block
 block discarded – undo
1473 1473
  *      False si le serveur est indisponible
1474 1474
  */
1475 1475
 function sql_errno($serveur = '') {
1476
-	$f = sql_serveur('errno', $serveur, true);
1477
-	if (!is_string($f) or !$f) {
1478
-		return false;
1479
-	}
1476
+    $f = sql_serveur('errno', $serveur, true);
1477
+    if (!is_string($f) or !$f) {
1478
+        return false;
1479
+    }
1480 1480
 
1481
-	return $f($serveur);
1481
+    return $f($serveur);
1482 1482
 }
1483 1483
 
1484 1484
 /**
@@ -1496,16 +1496,16 @@  discard block
 block discarded – undo
1496 1496
  * @return array|false   Tableau de l'explication
1497 1497
  */
1498 1498
 function sql_explain($q, $serveur = '', $option = true) {
1499
-	$f = sql_serveur('explain', $serveur, true);
1500
-	if (!is_string($f) or !$f) {
1501
-		return false;
1502
-	}
1503
-	$r = $f($q, $serveur, $option !== false);
1504
-	if ($r === false) {
1505
-		spip_sql_erreur($serveur);
1506
-	}
1507
-
1508
-	return $r;
1499
+    $f = sql_serveur('explain', $serveur, true);
1500
+    if (!is_string($f) or !$f) {
1501
+        return false;
1502
+    }
1503
+    $r = $f($q, $serveur, $option !== false);
1504
+    if ($r === false) {
1505
+        spip_sql_erreur($serveur);
1506
+    }
1507
+
1508
+    return $r;
1509 1509
 }
1510 1510
 
1511 1511
 /**
@@ -1523,16 +1523,16 @@  discard block
 block discarded – undo
1523 1523
  * @return bool            Toujours true
1524 1524
  */
1525 1525
 function sql_optimize($table, $serveur = '', $option = true) {
1526
-	$f = sql_serveur('optimize', $serveur, $option === 'continue' or $option === false);
1527
-	if (!is_string($f) or !$f) {
1528
-		return false;
1529
-	}
1530
-	$r = $f($table, $serveur, $option !== false);
1531
-	if ($r === false) {
1532
-		spip_sql_erreur($serveur);
1533
-	}
1534
-
1535
-	return $r;
1526
+    $f = sql_serveur('optimize', $serveur, $option === 'continue' or $option === false);
1527
+    if (!is_string($f) or !$f) {
1528
+        return false;
1529
+    }
1530
+    $r = $f($table, $serveur, $option !== false);
1531
+    if ($r === false) {
1532
+        spip_sql_erreur($serveur);
1533
+    }
1534
+
1535
+    return $r;
1536 1536
 }
1537 1537
 
1538 1538
 /**
@@ -1552,16 +1552,16 @@  discard block
 block discarded – undo
1552 1552
  *     - true si la requête a réussie, false sinon
1553 1553
  */
1554 1554
 function sql_repair($table, $serveur = '', $option = true) {
1555
-	$f = sql_serveur('repair', $serveur, $option === 'continue' or $option === false);
1556
-	if (!is_string($f) or !$f) {
1557
-		return false;
1558
-	}
1559
-	$r = $f($table, $serveur, $option !== false);
1560
-	if ($r === false) {
1561
-		spip_sql_erreur($serveur);
1562
-	}
1563
-
1564
-	return $r;
1555
+    $f = sql_serveur('repair', $serveur, $option === 'continue' or $option === false);
1556
+    if (!is_string($f) or !$f) {
1557
+        return false;
1558
+    }
1559
+    $r = $f($table, $serveur, $option !== false);
1560
+    if ($r === false) {
1561
+        spip_sql_erreur($serveur);
1562
+    }
1563
+
1564
+    return $r;
1565 1565
 }
1566 1566
 
1567 1567
 
@@ -1586,16 +1586,16 @@  discard block
 block discarded – undo
1586 1586
  *     - array : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
1587 1587
  */
1588 1588
 function sql_query($ins, $serveur = '', $option = true) {
1589
-	$f = sql_serveur('query', $serveur, $option === 'continue' or $option === false);
1590
-	if (!is_string($f) or !$f) {
1591
-		return false;
1592
-	}
1593
-	$r = $f($ins, $serveur, $option !== false);
1594
-	if ($r === false) {
1595
-		spip_sql_erreur($serveur);
1596
-	}
1597
-
1598
-	return $r;
1589
+    $f = sql_serveur('query', $serveur, $option === 'continue' or $option === false);
1590
+    if (!is_string($f) or !$f) {
1591
+        return false;
1592
+    }
1593
+    $r = $f($ins, $serveur, $option !== false);
1594
+    if ($r === false) {
1595
+        spip_sql_erreur($serveur);
1596
+    }
1597
+
1598
+    return $r;
1599 1599
 }
1600 1600
 
1601 1601
 /**
@@ -1643,27 +1643,27 @@  discard block
 block discarded – undo
1643 1643
  *
1644 1644
  **/
1645 1645
 function sql_fetsel(
1646
-	$select = [],
1647
-	$from = [],
1648
-	$where = [],
1649
-	$groupby = [],
1650
-	$orderby = [],
1651
-	$limit = '',
1652
-	$having = [],
1653
-	$serveur = '',
1654
-	$option = true
1646
+    $select = [],
1647
+    $from = [],
1648
+    $where = [],
1649
+    $groupby = [],
1650
+    $orderby = [],
1651
+    $limit = '',
1652
+    $having = [],
1653
+    $serveur = '',
1654
+    $option = true
1655 1655
 ) {
1656
-	$q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1657
-	if ($option === false) {
1658
-		return $q;
1659
-	}
1660
-	if (!$q) {
1661
-		return [];
1662
-	}
1663
-	$r = sql_fetch($q, $serveur, $option);
1664
-	sql_free($q, $serveur, $option);
1665
-
1666
-	return $r;
1656
+    $q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1657
+    if ($option === false) {
1658
+        return $q;
1659
+    }
1660
+    if (!$q) {
1661
+        return [];
1662
+    }
1663
+    $r = sql_fetch($q, $serveur, $option);
1664
+    sql_free($q, $serveur, $option);
1665
+
1666
+    return $r;
1667 1667
 }
1668 1668
 
1669 1669
 
@@ -1720,22 +1720,22 @@  discard block
 block discarded – undo
1720 1720
  *
1721 1721
  **/
1722 1722
 function sql_allfetsel(
1723
-	$select = [],
1724
-	$from = [],
1725
-	$where = [],
1726
-	$groupby = [],
1727
-	$orderby = [],
1728
-	$limit = '',
1729
-	$having = [],
1730
-	$serveur = '',
1731
-	$option = true
1723
+    $select = [],
1724
+    $from = [],
1725
+    $where = [],
1726
+    $groupby = [],
1727
+    $orderby = [],
1728
+    $limit = '',
1729
+    $having = [],
1730
+    $serveur = '',
1731
+    $option = true
1732 1732
 ) {
1733
-	$q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1734
-	if ($option === false) {
1735
-		return $q;
1736
-	}
1733
+    $q = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1734
+    if ($option === false) {
1735
+        return $q;
1736
+    }
1737 1737
 
1738
-	return sql_fetch_all($q, $serveur, $option);
1738
+    return sql_fetch_all($q, $serveur, $option);
1739 1739
 }
1740 1740
 
1741 1741
 
@@ -1782,33 +1782,33 @@  discard block
 block discarded – undo
1782 1782
  *
1783 1783
  **/
1784 1784
 function sql_getfetsel(
1785
-	$select,
1786
-	$from = [],
1787
-	$where = [],
1788
-	$groupby = [],
1789
-	$orderby = [],
1790
-	$limit = '',
1791
-	$having = [],
1792
-	$serveur = '',
1793
-	$option = true
1785
+    $select,
1786
+    $from = [],
1787
+    $where = [],
1788
+    $groupby = [],
1789
+    $orderby = [],
1790
+    $limit = '',
1791
+    $having = [],
1792
+    $serveur = '',
1793
+    $option = true
1794 1794
 ) {
1795
-	if (preg_match('/\s+as\s+(\w+)$/i', $select, $c)) {
1796
-		$id = $c[1];
1797
-	} elseif (!preg_match('/\W/', $select)) {
1798
-		$id = $select;
1799
-	} else {
1800
-		$id = 'n';
1801
-		$select .= ' AS n';
1802
-	}
1803
-	$r = sql_fetsel($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1804
-	if ($option === false) {
1805
-		return $r;
1806
-	}
1807
-	if (!$r) {
1808
-		return null;
1809
-	}
1810
-
1811
-	return $r[$id];
1795
+    if (preg_match('/\s+as\s+(\w+)$/i', $select, $c)) {
1796
+        $id = $c[1];
1797
+    } elseif (!preg_match('/\W/', $select)) {
1798
+        $id = $select;
1799
+    } else {
1800
+        $id = 'n';
1801
+        $select .= ' AS n';
1802
+    }
1803
+    $r = sql_fetsel($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, $option);
1804
+    if ($option === false) {
1805
+        return $r;
1806
+    }
1807
+    if (!$r) {
1808
+        return null;
1809
+    }
1810
+
1811
+    return $r[$id];
1812 1812
 }
1813 1813
 
1814 1814
 /**
@@ -1826,9 +1826,9 @@  discard block
 block discarded – undo
1826 1826
  *    Numero de version du serveur SQL
1827 1827
  **/
1828 1828
 function sql_version($serveur = '', $option = true) {
1829
-	$row = sql_fetsel('version() AS n', '', '', '', '', '', '', $serveur);
1829
+    $row = sql_fetsel('version() AS n', '', '', '', '', '', '', $serveur);
1830 1830
 
1831
-	return ($row['n']);
1831
+    return ($row['n']);
1832 1832
 }
1833 1833
 
1834 1834
 /**
@@ -1864,16 +1864,16 @@  discard block
 block discarded – undo
1864 1864
  *    Le serveur SQL prefere t'il des transactions pour les insertions multiples ?
1865 1865
  **/
1866 1866
 function sql_preferer_transaction($serveur = '', $option = true) {
1867
-	$f = sql_serveur('preferer_transaction', $serveur, true);
1868
-	if (!is_string($f) or !$f) {
1869
-		return false;
1870
-	}
1871
-	$r = $f($serveur, $option !== false);
1872
-	if ($r === false) {
1873
-		spip_sql_erreur($serveur);
1874
-	}
1875
-
1876
-	return $r;
1867
+    $f = sql_serveur('preferer_transaction', $serveur, true);
1868
+    if (!is_string($f) or !$f) {
1869
+        return false;
1870
+    }
1871
+    $r = $f($serveur, $option !== false);
1872
+    if ($r === false) {
1873
+        spip_sql_erreur($serveur);
1874
+    }
1875
+
1876
+    return $r;
1877 1877
 }
1878 1878
 
1879 1879
 ;
@@ -1898,16 +1898,16 @@  discard block
 block discarded – undo
1898 1898
  *      false en cas d'erreur
1899 1899
  **/
1900 1900
 function sql_demarrer_transaction($serveur = '', $option = true) {
1901
-	$f = sql_serveur('demarrer_transaction', $serveur, true);
1902
-	if (!is_string($f) or !$f) {
1903
-		return false;
1904
-	}
1905
-	$r = $f($serveur, $option !== false);
1906
-	if ($r === false) {
1907
-		spip_sql_erreur($serveur);
1908
-	}
1909
-
1910
-	return $r;
1901
+    $f = sql_serveur('demarrer_transaction', $serveur, true);
1902
+    if (!is_string($f) or !$f) {
1903
+        return false;
1904
+    }
1905
+    $r = $f($serveur, $option !== false);
1906
+    if ($r === false) {
1907
+        spip_sql_erreur($serveur);
1908
+    }
1909
+
1910
+    return $r;
1911 1911
 }
1912 1912
 
1913 1913
 ;
@@ -1932,16 +1932,16 @@  discard block
 block discarded – undo
1932 1932
  *      false en cas d'erreur
1933 1933
  **/
1934 1934
 function sql_terminer_transaction($serveur = '', $option = true) {
1935
-	$f = sql_serveur('terminer_transaction', $serveur, true);
1936
-	if (!is_string($f) or !$f) {
1937
-		return false;
1938
-	}
1939
-	$r = $f($serveur, $option !== false);
1940
-	if ($r === false) {
1941
-		spip_sql_erreur($serveur);
1942
-	}
1943
-
1944
-	return $r;
1935
+    $f = sql_serveur('terminer_transaction', $serveur, true);
1936
+    if (!is_string($f) or !$f) {
1937
+        return false;
1938
+    }
1939
+    $r = $f($serveur, $option !== false);
1940
+    if ($r === false) {
1941
+        spip_sql_erreur($serveur);
1942
+    }
1943
+
1944
+    return $r;
1945 1945
 }
1946 1946
 
1947 1947
 ;
@@ -1968,12 +1968,12 @@  discard block
 block discarded – undo
1968 1968
  *     Valeur hexadécimale attendue par le serveur SQL
1969 1969
  **/
1970 1970
 function sql_hex($val, $serveur = '', $option = true) {
1971
-	$f = sql_serveur('hex', $serveur, $option === 'continue' or $option === false);
1972
-	if (!is_string($f) or !$f) {
1973
-		return false;
1974
-	}
1971
+    $f = sql_serveur('hex', $serveur, $option === 'continue' or $option === false);
1972
+    if (!is_string($f) or !$f) {
1973
+        return false;
1974
+    }
1975 1975
 
1976
-	return $f($val);
1976
+    return $f($val);
1977 1977
 }
1978 1978
 
1979 1979
 /**
@@ -1999,12 +1999,12 @@  discard block
 block discarded – undo
1999 1999
  *     La chaine echappee
2000 2000
  **/
2001 2001
 function sql_quote($val, $serveur = '', $type = '') {
2002
-	$f = sql_serveur('quote', $serveur, true);
2003
-	if (!is_string($f) or !$f) {
2004
-		$f = '_q';
2005
-	}
2002
+    $f = sql_serveur('quote', $serveur, true);
2003
+    if (!is_string($f) or !$f) {
2004
+        $f = '_q';
2005
+    }
2006 2006
 
2007
-	return $f($val, $type);
2007
+    return $f($val, $type);
2008 2008
 }
2009 2009
 
2010 2010
 /**
@@ -2029,12 +2029,12 @@  discard block
 block discarded – undo
2029 2029
  *     - false si le serveur SQL est indisponible
2030 2030
  **/
2031 2031
 function sql_date_proche($champ, $interval, $unite, $serveur = '', $option = true) {
2032
-	$f = sql_serveur('date_proche', $serveur, true);
2033
-	if (!is_string($f) or !$f) {
2034
-		return false;
2035
-	}
2032
+    $f = sql_serveur('date_proche', $serveur, true);
2033
+    if (!is_string($f) or !$f) {
2034
+        return false;
2035
+    }
2036 2036
 
2037
-	return $f($champ, $interval, $unite);
2037
+    return $f($champ, $interval, $unite);
2038 2038
 }
2039 2039
 
2040 2040
 /**
@@ -2070,26 +2070,26 @@  discard block
 block discarded – undo
2070 2070
  *     Expression de requête SQL
2071 2071
  **/
2072 2072
 function sql_in_quote($champ, $valeurs, $not = '', $serveur = '', $type = '', $option = true) {
2073
-	$quote = sql_serveur('quote', $serveur, true);
2074
-	if (!is_string($quote) or !$quote) {
2075
-		return false;
2076
-	}
2077
-
2078
-	// sql_quote produit une chaine dans tous les cas
2079
-	$valeurs = array_filter($valeurs, fn($v) => !is_array($v));
2080
-	$valeurs = array_unique($valeurs);
2081
-	$valeurs = $quote($valeurs, $type);
2082
-
2083
-	if (!strlen(trim($valeurs))) {
2084
-		return ($not ? '0=0' : '0=1');
2085
-	}
2086
-
2087
-	$f = sql_serveur('in', $serveur, $option === 'continue' or $option === false);
2088
-	if (!is_string($f) or !$f) {
2089
-		return false;
2090
-	}
2091
-
2092
-	return $f($champ, $valeurs, $not ? 'NOT' : '', $serveur, $option !== false);
2073
+    $quote = sql_serveur('quote', $serveur, true);
2074
+    if (!is_string($quote) or !$quote) {
2075
+        return false;
2076
+    }
2077
+
2078
+    // sql_quote produit une chaine dans tous les cas
2079
+    $valeurs = array_filter($valeurs, fn($v) => !is_array($v));
2080
+    $valeurs = array_unique($valeurs);
2081
+    $valeurs = $quote($valeurs, $type);
2082
+
2083
+    if (!strlen(trim($valeurs))) {
2084
+        return ($not ? '0=0' : '0=1');
2085
+    }
2086
+
2087
+    $f = sql_serveur('in', $serveur, $option === 'continue' or $option === false);
2088
+    if (!is_string($f) or !$f) {
2089
+        return false;
2090
+    }
2091
+
2092
+    return $f($champ, $valeurs, $not ? 'NOT' : '', $serveur, $option !== false);
2093 2093
 }
2094 2094
 
2095 2095
 /**
@@ -2106,19 +2106,19 @@  discard block
 block discarded – undo
2106 2106
  * @param bool $option
2107 2107
  */
2108 2108
 function sql_in($champ, $valeurs, $not = '', $serveur = '', $option = true) {
2109
-	$type = '';
2110
-	if (!is_array($valeurs)) {
2111
-		$valeurs = strval($valeurs);
2112
-		if (isset($valeurs[0]) and $valeurs[0] === ',') {
2113
-			$valeurs = substr($valeurs, 1);
2114
-		}
2115
-		// on explode en tableau pour pouvoir securiser le contenu
2116
-		$valeurs = explode(',', $valeurs);
2117
-		// et on force un cast de type int donc
2118
-		$type = 'int';
2119
-	}
2120
-
2121
-	return sql_in_quote($champ, $valeurs, $not, $serveur, $type, $option);
2109
+    $type = '';
2110
+    if (!is_array($valeurs)) {
2111
+        $valeurs = strval($valeurs);
2112
+        if (isset($valeurs[0]) and $valeurs[0] === ',') {
2113
+            $valeurs = substr($valeurs, 1);
2114
+        }
2115
+        // on explode en tableau pour pouvoir securiser le contenu
2116
+        $valeurs = explode(',', $valeurs);
2117
+        // et on force un cast de type int donc
2118
+        $type = 'int';
2119
+    }
2120
+
2121
+    return sql_in_quote($champ, $valeurs, $not, $serveur, $type, $option);
2122 2122
 }
2123 2123
 
2124 2124
 
@@ -2159,24 +2159,24 @@  discard block
 block discarded – undo
2159 2159
  *     Expression de requête SQL
2160 2160
  **/
2161 2161
 function sql_in_select(
2162
-	$in,
2163
-	$select,
2164
-	$from = [],
2165
-	$where = [],
2166
-	$groupby = [],
2167
-	$orderby = [],
2168
-	$limit = '',
2169
-	$having = [],
2170
-	$serveur = ''
2162
+    $in,
2163
+    $select,
2164
+    $from = [],
2165
+    $where = [],
2166
+    $groupby = [],
2167
+    $orderby = [],
2168
+    $limit = '',
2169
+    $having = [],
2170
+    $serveur = ''
2171 2171
 ) {
2172
-	$liste = [];
2173
-	$res = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur);
2174
-	while ($r = sql_fetch($res)) {
2175
-		$liste[] = array_shift($r);
2176
-	}
2177
-	sql_free($res);
2178
-
2179
-	return sql_in($in, $liste);
2172
+    $liste = [];
2173
+    $res = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur);
2174
+    while ($r = sql_fetch($res)) {
2175
+        $liste[] = array_shift($r);
2176
+    }
2177
+    sql_free($res);
2178
+
2179
+    return sql_in($in, $liste);
2180 2180
 }
2181 2181
 
2182 2182
 /**
@@ -2208,29 +2208,29 @@  discard block
 block discarded – undo
2208 2208
  *    Position apres le saut.
2209 2209
  */
2210 2210
 function sql_skip($res, $pos, $saut, $count, $serveur = '', $option = true) {
2211
-	// pas de saut en arriere qu'on ne sait pas faire sans sql_seek
2212
-	if (($saut = intval($saut)) <= 0) {
2213
-		return $pos;
2214
-	}
2215
-
2216
-	$seek = $pos + $saut;
2217
-	// si le saut fait depasser le maxi, on libere la resource
2218
-	// et on sort
2219
-	if ($seek >= $count) {
2220
-		sql_free($res, $serveur, $option);
2221
-
2222
-		return $count;
2223
-	}
2224
-
2225
-	if (sql_seek($res, $seek)) {
2226
-		$pos = $seek;
2227
-	} else {
2228
-		while ($pos < $seek and sql_fetch($res, $serveur, $option)) {
2229
-			$pos++;
2230
-		}
2231
-	}
2232
-
2233
-	return $pos;
2211
+    // pas de saut en arriere qu'on ne sait pas faire sans sql_seek
2212
+    if (($saut = intval($saut)) <= 0) {
2213
+        return $pos;
2214
+    }
2215
+
2216
+    $seek = $pos + $saut;
2217
+    // si le saut fait depasser le maxi, on libere la resource
2218
+    // et on sort
2219
+    if ($seek >= $count) {
2220
+        sql_free($res, $serveur, $option);
2221
+
2222
+        return $count;
2223
+    }
2224
+
2225
+    if (sql_seek($res, $seek)) {
2226
+        $pos = $seek;
2227
+    } else {
2228
+        while ($pos < $seek and sql_fetch($res, $serveur, $option)) {
2229
+            $pos++;
2230
+        }
2231
+    }
2232
+
2233
+    return $pos;
2234 2234
 }
2235 2235
 
2236 2236
 
@@ -2250,7 +2250,7 @@  discard block
 block discarded – undo
2250 2250
  *     True si le champ est de type entier
2251 2251
  */
2252 2252
 function sql_test_int($type, $serveur = '', $option = true) {
2253
-	return preg_match('/^(TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT)/i', trim($type));
2253
+    return preg_match('/^(TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT)/i', trim($type));
2254 2254
 }
2255 2255
 
2256 2256
 /**
@@ -2269,7 +2269,7 @@  discard block
 block discarded – undo
2269 2269
  *     True si le champ est de type entier
2270 2270
  */
2271 2271
 function sql_test_date($type, $serveur = '', $option = true) {
2272
-	return preg_match('/^(DATE|DATETIME|TIMESTAMP|TIME)/i', trim($type));
2272
+    return preg_match('/^(DATE|DATETIME|TIMESTAMP|TIME)/i', trim($type));
2273 2273
 }
2274 2274
 
2275 2275
 /**
@@ -2291,19 +2291,19 @@  discard block
 block discarded – undo
2291 2291
  *     La date formatee
2292 2292
  */
2293 2293
 function sql_format_date($annee = 0, $mois = 0, $jour = 0, $h = 0, $m = 0, $s = 0, $serveur = '') {
2294
-	$annee = sprintf('%04s', $annee);
2295
-	$mois = sprintf('%02s', $mois);
2296
-
2297
-	if ($annee == '0000') {
2298
-		$mois = 0;
2299
-	}
2300
-	if ($mois == '00') {
2301
-		$jour = 0;
2302
-	}
2303
-
2304
-	return sprintf('%04u', $annee) . '-' . sprintf('%02u', $mois) . '-'
2305
-	. sprintf('%02u', $jour) . ' ' . sprintf('%02u', $h) . ':'
2306
-	. sprintf('%02u', $m) . ':' . sprintf('%02u', $s);
2294
+    $annee = sprintf('%04s', $annee);
2295
+    $mois = sprintf('%02s', $mois);
2296
+
2297
+    if ($annee == '0000') {
2298
+        $mois = 0;
2299
+    }
2300
+    if ($mois == '00') {
2301
+        $jour = 0;
2302
+    }
2303
+
2304
+    return sprintf('%04u', $annee) . '-' . sprintf('%02u', $mois) . '-'
2305
+    . sprintf('%02u', $jour) . ' ' . sprintf('%02u', $h) . ':'
2306
+    . sprintf('%02u', $m) . ':' . sprintf('%02u', $s);
2307 2307
 }
2308 2308
 
2309 2309
 
@@ -2326,32 +2326,32 @@  discard block
 block discarded – undo
2326 2326
  **/
2327 2327
 function description_table($nom, $serveur = '') {
2328 2328
 
2329
-	static $trouver_table;
2329
+    static $trouver_table;
2330 2330
 
2331
-	/* toujours utiliser trouver_table
2331
+    /* toujours utiliser trouver_table
2332 2332
 	 qui renverra la description theorique
2333 2333
 	 car sinon on va se comporter differement selon que la table est declaree
2334 2334
 	 ou non
2335 2335
 	 */
2336
-	if (!$trouver_table) {
2337
-		$trouver_table = charger_fonction('trouver_table', 'base');
2338
-	}
2339
-	if ($desc = $trouver_table($nom, $serveur)) {
2340
-		return $desc;
2341
-	}
2342
-
2343
-	// sauf a l'installation :
2344
-	include_spip('base/serial');
2345
-	if (isset($GLOBALS['tables_principales'][$nom])) {
2346
-		return $GLOBALS['tables_principales'][$nom];
2347
-	}
2348
-
2349
-	include_spip('base/auxiliaires');
2350
-	if (isset($GLOBALS['tables_auxiliaires'][$nom])) {
2351
-		return $GLOBALS['tables_auxiliaires'][$nom];
2352
-	}
2353
-
2354
-	return false;
2336
+    if (!$trouver_table) {
2337
+        $trouver_table = charger_fonction('trouver_table', 'base');
2338
+    }
2339
+    if ($desc = $trouver_table($nom, $serveur)) {
2340
+        return $desc;
2341
+    }
2342
+
2343
+    // sauf a l'installation :
2344
+    include_spip('base/serial');
2345
+    if (isset($GLOBALS['tables_principales'][$nom])) {
2346
+        return $GLOBALS['tables_principales'][$nom];
2347
+    }
2348
+
2349
+    include_spip('base/auxiliaires');
2350
+    if (isset($GLOBALS['tables_auxiliaires'][$nom])) {
2351
+        return $GLOBALS['tables_auxiliaires'][$nom];
2352
+    }
2353
+
2354
+    return false;
2355 2355
 }
2356 2356
 
2357 2357
 /**
@@ -2364,8 +2364,8 @@  discard block
 block discarded – undo
2364 2364
  * @return string Table sql éventuellement renommée
2365 2365
  */
2366 2366
 function prefixer_table_spip($table, $prefixe) {
2367
-	if ($prefixe) {
2368
-		$table = preg_replace('/^spip_/', $prefixe . '_', $table);
2369
-	}
2370
-	return $table;
2367
+    if ($prefixe) {
2368
+        $table = preg_replace('/^spip_/', $prefixe . '_', $table);
2369
+    }
2370
+    return $table;
2371 2371
 }
Please login to merge, or discard this patch.
ecrire/base/dump.php 2 patches
Indentation   +540 added lines, -540 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  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
 define('_VERSION_ARCHIVE', '1.3');
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
  * @return string
39 39
  **/
40 40
 function base_dump_meta_name($rub) {
41
-	return $meta = "status_dump_{$rub}_" . abs($GLOBALS['visiteur_session']['id_auteur']);
41
+    return $meta = "status_dump_{$rub}_" . abs($GLOBALS['visiteur_session']['id_auteur']);
42 42
 }
43 43
 
44 44
 /**
@@ -53,15 +53,15 @@  discard block
 block discarded – undo
53 53
  * @return string
54 54
  **/
55 55
 function base_dump_dir($meta) {
56
-	include_spip('inc/documents');
57
-	// determine upload va aussi initialiser l'index "restreint"
58
-	$maindir = determine_upload();
59
-	if (!$GLOBALS['visiteur_session']['restreint']) {
60
-		$maindir = _DIR_DUMP;
61
-	}
62
-	$dir = sous_repertoire($maindir, $meta);
63
-
64
-	return $dir;
56
+    include_spip('inc/documents');
57
+    // determine upload va aussi initialiser l'index "restreint"
58
+    $maindir = determine_upload();
59
+    if (!$GLOBALS['visiteur_session']['restreint']) {
60
+        $maindir = _DIR_DUMP;
61
+    }
62
+    $dir = sous_repertoire($maindir, $meta);
63
+
64
+    return $dir;
65 65
 }
66 66
 
67 67
 /**
@@ -75,28 +75,28 @@  discard block
 block discarded – undo
75 75
  * @return array
76 76
  */
77 77
 function base_lister_toutes_tables(
78
-	$serveur = '',
79
-	$tables = [],
80
-	$exclude = [],
81
-	$affiche_vrai_prefixe = false
78
+    $serveur = '',
79
+    $tables = [],
80
+    $exclude = [],
81
+    $affiche_vrai_prefixe = false
82 82
 ) {
83
-	spip_connect($serveur);
84
-	$connexion = $GLOBALS['connexions'][$serveur ?: 0];
85
-	$prefixe = $connexion['prefixe'];
86
-
87
-	$p = '/^' . $prefixe . '/';
88
-	$res = $tables;
89
-	foreach (sql_alltable(null, $serveur) as $t) {
90
-		if (preg_match($p, $t)) {
91
-			$t1 = preg_replace($p, 'spip', $t);
92
-			if (!in_array($t1, $tables) and !in_array($t1, $exclude)) {
93
-				$res[] = ($affiche_vrai_prefixe ? $t : $t1);
94
-			}
95
-		}
96
-	}
97
-	sort($res);
98
-
99
-	return $res;
83
+    spip_connect($serveur);
84
+    $connexion = $GLOBALS['connexions'][$serveur ?: 0];
85
+    $prefixe = $connexion['prefixe'];
86
+
87
+    $p = '/^' . $prefixe . '/';
88
+    $res = $tables;
89
+    foreach (sql_alltable(null, $serveur) as $t) {
90
+        if (preg_match($p, $t)) {
91
+            $t1 = preg_replace($p, 'spip', $t);
92
+            if (!in_array($t1, $tables) and !in_array($t1, $exclude)) {
93
+                $res[] = ($affiche_vrai_prefixe ? $t : $t1);
94
+            }
95
+        }
96
+    }
97
+    sort($res);
98
+
99
+    return $res;
100 100
 }
101 101
 
102 102
 /**
@@ -106,11 +106,11 @@  discard block
 block discarded – undo
106 106
  * @return string
107 107
  */
108 108
 function base_prefixe_tables($serveur = '') {
109
-	spip_connect($serveur);
110
-	$connexion = $GLOBALS['connexions'][$serveur ?: 0];
111
-	$prefixe = $connexion['prefixe'];
109
+    spip_connect($serveur);
110
+    $connexion = $GLOBALS['connexions'][$serveur ?: 0];
111
+    $prefixe = $connexion['prefixe'];
112 112
 
113
-	return $prefixe;
113
+    return $prefixe;
114 114
 }
115 115
 
116 116
 
@@ -125,31 +125,31 @@  discard block
 block discarded – undo
125 125
  * @return array
126 126
  */
127 127
 function base_saisie_tables($name, $tables, $exclude = [], $post = null, $serveur = '') {
128
-	include_spip('inc/filtres');
129
-	$res = [];
130
-	foreach ($tables as $k => $t) {
131
-		// par defaut tout est coche sauf les tables dans $exclude
132
-		if (is_null($post)) {
133
-			$check = (in_array($t, $exclude) ? false : true);
134
-		} // mais si on a poste une selection, la reprendre
135
-		else {
136
-			$check = in_array($t, $post);
137
-		}
138
-
139
-		$res[$k] = "<input type='checkbox' value='$t' name='$name"
140
-			. "[]' id='$name$k'"
141
-			. ($check ? " checked='checked'" : '')
142
-			. "/>\n"
143
-			. "<label for='$name$k'>$t</label>"
144
-			. ' ('
145
-			. sinon(
146
-				singulier_ou_pluriel(sql_countsel($t, '', '', '', $serveur), 'dump:une_donnee', 'dump:nb_donnees'),
147
-				_T('dump:aucune_donnee')
148
-			)
149
-			. ')';
150
-	}
151
-
152
-	return $res;
128
+    include_spip('inc/filtres');
129
+    $res = [];
130
+    foreach ($tables as $k => $t) {
131
+        // par defaut tout est coche sauf les tables dans $exclude
132
+        if (is_null($post)) {
133
+            $check = (in_array($t, $exclude) ? false : true);
134
+        } // mais si on a poste une selection, la reprendre
135
+        else {
136
+            $check = in_array($t, $post);
137
+        }
138
+
139
+        $res[$k] = "<input type='checkbox' value='$t' name='$name"
140
+            . "[]' id='$name$k'"
141
+            . ($check ? " checked='checked'" : '')
142
+            . "/>\n"
143
+            . "<label for='$name$k'>$t</label>"
144
+            . ' ('
145
+            . sinon(
146
+                singulier_ou_pluriel(sql_countsel($t, '', '', '', $serveur), 'dump:une_donnee', 'dump:nb_donnees'),
147
+                _T('dump:aucune_donnee')
148
+            )
149
+            . ')';
150
+    }
151
+
152
+    return $res;
153 153
 }
154 154
 
155 155
 
@@ -161,27 +161,27 @@  discard block
 block discarded – undo
161 161
  * @return array
162 162
  */
163 163
 function lister_tables_noexport() {
164
-	// par defaut tout est exporte sauf les tables ci-dessous
165
-	static $EXPORT_tables_noexport = null;
166
-	if (!is_null($EXPORT_tables_noexport)) {
167
-		return $EXPORT_tables_noexport;
168
-	}
169
-
170
-	$EXPORT_tables_noexport = [
171
-		'spip_caches', // plugin invalideur
172
-		'spip_resultats', // resultats de recherche ... c'est un cache !
173
-		'spip_test', // c'est un test !
174
-		#'spip_referers',
175
-		#'spip_referers_articles',
176
-		#'spip_visites',
177
-		#'spip_visites_articles',
178
-		#'spip_versions',
179
-		#'spip_versions_fragments'
180
-	];
181
-
182
-	$EXPORT_tables_noexport = pipeline('lister_tables_noexport', $EXPORT_tables_noexport);
183
-
184
-	return $EXPORT_tables_noexport;
164
+    // par defaut tout est exporte sauf les tables ci-dessous
165
+    static $EXPORT_tables_noexport = null;
166
+    if (!is_null($EXPORT_tables_noexport)) {
167
+        return $EXPORT_tables_noexport;
168
+    }
169
+
170
+    $EXPORT_tables_noexport = [
171
+        'spip_caches', // plugin invalideur
172
+        'spip_resultats', // resultats de recherche ... c'est un cache !
173
+        'spip_test', // c'est un test !
174
+        #'spip_referers',
175
+        #'spip_referers_articles',
176
+        #'spip_visites',
177
+        #'spip_visites_articles',
178
+        #'spip_versions',
179
+        #'spip_versions_fragments'
180
+    ];
181
+
182
+    $EXPORT_tables_noexport = pipeline('lister_tables_noexport', $EXPORT_tables_noexport);
183
+
184
+    return $EXPORT_tables_noexport;
185 185
 }
186 186
 
187 187
 /**
@@ -192,25 +192,25 @@  discard block
 block discarded – undo
192 192
  * @return array
193 193
  */
194 194
 function lister_tables_noimport() {
195
-	static $IMPORT_tables_noimport = null;
196
-	if (!is_null($IMPORT_tables_noimport)) {
197
-		return $IMPORT_tables_noimport;
198
-	}
199
-
200
-	$IMPORT_tables_noimport = [];
201
-	// par defaut tout est importe sauf les tables ci-dessous
202
-	// possibiliter de definir cela tables via la meta
203
-	// compatibilite
204
-	if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])) {
205
-		$IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
206
-		if (!is_array($IMPORT_tables_noimport)) {
207
-			include_spip('inc/meta');
208
-			effacer_meta('IMPORT_tables_noimport');
209
-		}
210
-	}
211
-	$IMPORT_tables_noimport = pipeline('lister_tables_noimport', $IMPORT_tables_noimport);
212
-
213
-	return $IMPORT_tables_noimport;
195
+    static $IMPORT_tables_noimport = null;
196
+    if (!is_null($IMPORT_tables_noimport)) {
197
+        return $IMPORT_tables_noimport;
198
+    }
199
+
200
+    $IMPORT_tables_noimport = [];
201
+    // par defaut tout est importe sauf les tables ci-dessous
202
+    // possibiliter de definir cela tables via la meta
203
+    // compatibilite
204
+    if (isset($GLOBALS['meta']['IMPORT_tables_noimport'])) {
205
+        $IMPORT_tables_noimport = unserialize($GLOBALS['meta']['IMPORT_tables_noimport']);
206
+        if (!is_array($IMPORT_tables_noimport)) {
207
+            include_spip('inc/meta');
208
+            effacer_meta('IMPORT_tables_noimport');
209
+        }
210
+    }
211
+    $IMPORT_tables_noimport = pipeline('lister_tables_noimport', $IMPORT_tables_noimport);
212
+
213
+    return $IMPORT_tables_noimport;
214 214
 }
215 215
 
216 216
 
@@ -222,23 +222,23 @@  discard block
 block discarded – undo
222 222
  * @return array
223 223
  */
224 224
 function lister_tables_noerase() {
225
-	static $IMPORT_tables_noerase = null;
226
-	if (!is_null($IMPORT_tables_noerase)) {
227
-		return $IMPORT_tables_noerase;
228
-	}
229
-
230
-	$IMPORT_tables_noerase = [
231
-		'spip_meta',
232
-		// par defaut on ne vide pas les stats, car elles ne figurent pas dans les dump
233
-		// et le cas echeant, un bouton dans l'admin permet de les vider a la main...
234
-		'spip_referers',
235
-		'spip_referers_articles',
236
-		'spip_visites',
237
-		'spip_visites_articles'
238
-	];
239
-	$IMPORT_tables_noerase = pipeline('lister_tables_noerase', $IMPORT_tables_noerase);
240
-
241
-	return $IMPORT_tables_noerase;
225
+    static $IMPORT_tables_noerase = null;
226
+    if (!is_null($IMPORT_tables_noerase)) {
227
+        return $IMPORT_tables_noerase;
228
+    }
229
+
230
+    $IMPORT_tables_noerase = [
231
+        'spip_meta',
232
+        // par defaut on ne vide pas les stats, car elles ne figurent pas dans les dump
233
+        // et le cas echeant, un bouton dans l'admin permet de les vider a la main...
234
+        'spip_referers',
235
+        'spip_referers_articles',
236
+        'spip_visites',
237
+        'spip_visites_articles'
238
+    ];
239
+    $IMPORT_tables_noerase = pipeline('lister_tables_noerase', $IMPORT_tables_noerase);
240
+
241
+    return $IMPORT_tables_noerase;
242 242
 }
243 243
 
244 244
 
@@ -252,86 +252,86 @@  discard block
 block discarded – undo
252 252
  * @return array
253 253
  */
254 254
 function base_liste_table_for_dump($exclude_tables = []) {
255
-	$tables_for_dump = [];
256
-	$tables_pointees = [];
257
-	$tables = [];
258
-	$tables_principales = $GLOBALS['tables_principales'];
259
-	$tables_auxiliaires = $GLOBALS['tables_auxiliaires'];
260
-	$tables_jointures = $GLOBALS['tables_jointures'];
261
-
262
-	if (
263
-		include_spip('base/objets')
264
-		and function_exists('lister_tables_objets_sql')
265
-	) {
266
-		$tables = lister_tables_objets_sql();
267
-		foreach ($tables as $t => $infos) {
268
-			if ($infos['principale'] and !isset($tables_principales[$t])) {
269
-				$tables_principales[$t] = true;
270
-			}
271
-			if (!$infos['principale'] and !isset($tables_auxiliaires[$t])) {
272
-				$tables_auxiliaires[$t] = true;
273
-			}
274
-			if (is_countable($infos['tables_jointures']) ? count($infos['tables_jointures']) : 0) {
275
-				$tables_jointures[$t] = array_merge(
276
-					$tables_jointures[$t] ?? [],
277
-					$infos['tables_jointures']
278
-				);
279
-			}
280
-		}
281
-	}
282
-
283
-	// on construit un index des tables de liens
284
-	// pour les ajouter SI les deux tables qu'ils connectent sont sauvegardees
285
-	$tables_for_link = [];
286
-	foreach ($tables_jointures as $table => $liste_relations) {
287
-		if (is_array($liste_relations)) {
288
-			$nom = $table;
289
-			if (!isset($tables_auxiliaires[$nom]) && !isset($tables_principales[$nom])) {
290
-				$nom = "spip_$table";
291
-			}
292
-			if (isset($tables_auxiliaires[$nom]) || isset($tables_principales[$nom])) {
293
-				foreach ($liste_relations as $link_table) {
294
-					if (isset($tables_auxiliaires[$link_table])/*||isset($tables_principales[$link_table])*/) {
295
-						$tables_for_link[$link_table][] = $nom;
296
-					} else {
297
-						if (isset($tables_auxiliaires["spip_$link_table"])/*||isset($tables_principales["spip_$link_table"])*/) {
298
-							$tables_for_link["spip_$link_table"][] = $nom;
299
-						}
300
-					}
301
-				}
302
-			}
303
-		}
304
-	}
305
-
306
-	$liste_tables = [...array_keys($tables_principales), ...array_keys($tables_auxiliaires), ...array_keys($tables)];
307
-	foreach ($liste_tables as $table) {
308
-		//		$name = preg_replace("{^spip_}","",$table);
309
-		if (
310
-			!isset($tables_pointees[$table])
311
-			&& !in_array($table, $exclude_tables)
312
-			&& !isset($tables_for_link[$table])
313
-		) {
314
-			$tables_for_dump[] = $table;
315
-			$tables_pointees[$table] = 1;
316
-		}
317
-	}
318
-	foreach ($tables_for_link as $link_table => $liste) {
319
-		$connecte = true;
320
-		foreach ($liste as $connect_table) {
321
-			if (!in_array($connect_table, $tables_for_dump)) {
322
-				$connecte = false;
323
-			}
324
-		}
325
-		if ($connecte) {
326
-			# on ajoute les liaisons en premier
327
-			# si une restauration est interrompue,
328
-			# cela se verra mieux si il manque des objets
329
-			# que des liens
330
-		array_unshift($tables_for_dump, $link_table);
331
-		}
332
-	}
333
-
334
-	return [$tables_for_dump, $tables_for_link];
255
+    $tables_for_dump = [];
256
+    $tables_pointees = [];
257
+    $tables = [];
258
+    $tables_principales = $GLOBALS['tables_principales'];
259
+    $tables_auxiliaires = $GLOBALS['tables_auxiliaires'];
260
+    $tables_jointures = $GLOBALS['tables_jointures'];
261
+
262
+    if (
263
+        include_spip('base/objets')
264
+        and function_exists('lister_tables_objets_sql')
265
+    ) {
266
+        $tables = lister_tables_objets_sql();
267
+        foreach ($tables as $t => $infos) {
268
+            if ($infos['principale'] and !isset($tables_principales[$t])) {
269
+                $tables_principales[$t] = true;
270
+            }
271
+            if (!$infos['principale'] and !isset($tables_auxiliaires[$t])) {
272
+                $tables_auxiliaires[$t] = true;
273
+            }
274
+            if (is_countable($infos['tables_jointures']) ? count($infos['tables_jointures']) : 0) {
275
+                $tables_jointures[$t] = array_merge(
276
+                    $tables_jointures[$t] ?? [],
277
+                    $infos['tables_jointures']
278
+                );
279
+            }
280
+        }
281
+    }
282
+
283
+    // on construit un index des tables de liens
284
+    // pour les ajouter SI les deux tables qu'ils connectent sont sauvegardees
285
+    $tables_for_link = [];
286
+    foreach ($tables_jointures as $table => $liste_relations) {
287
+        if (is_array($liste_relations)) {
288
+            $nom = $table;
289
+            if (!isset($tables_auxiliaires[$nom]) && !isset($tables_principales[$nom])) {
290
+                $nom = "spip_$table";
291
+            }
292
+            if (isset($tables_auxiliaires[$nom]) || isset($tables_principales[$nom])) {
293
+                foreach ($liste_relations as $link_table) {
294
+                    if (isset($tables_auxiliaires[$link_table])/*||isset($tables_principales[$link_table])*/) {
295
+                        $tables_for_link[$link_table][] = $nom;
296
+                    } else {
297
+                        if (isset($tables_auxiliaires["spip_$link_table"])/*||isset($tables_principales["spip_$link_table"])*/) {
298
+                            $tables_for_link["spip_$link_table"][] = $nom;
299
+                        }
300
+                    }
301
+                }
302
+            }
303
+        }
304
+    }
305
+
306
+    $liste_tables = [...array_keys($tables_principales), ...array_keys($tables_auxiliaires), ...array_keys($tables)];
307
+    foreach ($liste_tables as $table) {
308
+        //		$name = preg_replace("{^spip_}","",$table);
309
+        if (
310
+            !isset($tables_pointees[$table])
311
+            && !in_array($table, $exclude_tables)
312
+            && !isset($tables_for_link[$table])
313
+        ) {
314
+            $tables_for_dump[] = $table;
315
+            $tables_pointees[$table] = 1;
316
+        }
317
+    }
318
+    foreach ($tables_for_link as $link_table => $liste) {
319
+        $connecte = true;
320
+        foreach ($liste as $connect_table) {
321
+            if (!in_array($connect_table, $tables_for_dump)) {
322
+                $connecte = false;
323
+            }
324
+        }
325
+        if ($connecte) {
326
+            # on ajoute les liaisons en premier
327
+            # si une restauration est interrompue,
328
+            # cela se verra mieux si il manque des objets
329
+            # que des liens
330
+        array_unshift($tables_for_dump, $link_table);
331
+        }
332
+    }
333
+
334
+    return [$tables_for_dump, $tables_for_link];
335 335
 }
336 336
 
337 337
 /**
@@ -346,37 +346,37 @@  discard block
 block discarded – undo
346 346
  * @param string $serveur
347 347
  */
348 348
 function base_vider_tables_destination_copie($tables, $exclure_tables = [], $serveur = '') {
349
-	$trouver_table = charger_fonction('trouver_table', 'base');
350
-
351
-	spip_log(
352
-		'Vider ' . count($tables) . " tables sur serveur '$serveur' : " . join(', ', $tables),
353
-		'base.' . _LOG_INFO_IMPORTANTE
354
-	);
355
-	foreach ($tables as $table) {
356
-		if (!in_array($table, $exclure_tables)) {
357
-			// sur le serveur principal, il ne faut pas supprimer l'auteur loge !
358
-			if (($table != 'spip_auteurs') or $serveur != '') {
359
-				// regarder si il y a au moins un champ impt='non'
360
-				$desc = $trouver_table($table, $serveur);
361
-				if (isset($desc['field']['impt'])) {
362
-					sql_delete($table, "impt='oui'", $serveur);
363
-				} elseif ($desc) {
364
-					sql_delete($table, '', $serveur);
365
-				}
366
-			}
367
-		}
368
-	}
369
-
370
-	// sur le serveur principal, il ne faut pas supprimer l'auteur loge !
371
-	// Bidouille pour garder l'acces admin actuel pendant toute la restauration
372
-	if (
373
-		$serveur == ''
374
-		and in_array('spip_auteurs', $tables)
375
-		and !in_array('spip_auteurs', $exclure_tables)
376
-	) {
377
-		base_conserver_copieur(true, $serveur);
378
-		sql_delete('spip_auteurs', 'id_auteur>0', $serveur);
379
-	}
349
+    $trouver_table = charger_fonction('trouver_table', 'base');
350
+
351
+    spip_log(
352
+        'Vider ' . count($tables) . " tables sur serveur '$serveur' : " . join(', ', $tables),
353
+        'base.' . _LOG_INFO_IMPORTANTE
354
+    );
355
+    foreach ($tables as $table) {
356
+        if (!in_array($table, $exclure_tables)) {
357
+            // sur le serveur principal, il ne faut pas supprimer l'auteur loge !
358
+            if (($table != 'spip_auteurs') or $serveur != '') {
359
+                // regarder si il y a au moins un champ impt='non'
360
+                $desc = $trouver_table($table, $serveur);
361
+                if (isset($desc['field']['impt'])) {
362
+                    sql_delete($table, "impt='oui'", $serveur);
363
+                } elseif ($desc) {
364
+                    sql_delete($table, '', $serveur);
365
+                }
366
+            }
367
+        }
368
+    }
369
+
370
+    // sur le serveur principal, il ne faut pas supprimer l'auteur loge !
371
+    // Bidouille pour garder l'acces admin actuel pendant toute la restauration
372
+    if (
373
+        $serveur == ''
374
+        and in_array('spip_auteurs', $tables)
375
+        and !in_array('spip_auteurs', $exclure_tables)
376
+    ) {
377
+        base_conserver_copieur(true, $serveur);
378
+        sql_delete('spip_auteurs', 'id_auteur>0', $serveur);
379
+    }
380 380
 }
381 381
 
382 382
 /**
@@ -387,36 +387,36 @@  discard block
 block discarded – undo
387 387
  * @return void
388 388
  */
389 389
 function base_conserver_copieur($move = true, $serveur = '') {
390
-	// s'asurer qu'on a pas deja fait la manip !
391
-	if ($GLOBALS['visiteur_session']['id_auteur'] > 0 and sql_countsel('spip_auteurs', 'id_auteur>0')) {
392
-		spip_log(
393
-			'Conserver copieur dans id_auteur=' . $GLOBALS['visiteur_session']['id_auteur'] . " pour le serveur '$serveur'",
394
-			'dump.' . _LOG_INFO_IMPORTANTE
395
-		);
396
-		sql_delete('spip_auteurs', 'id_auteur<0', $serveur);
397
-		if ($move) {
398
-			sql_updateq(
399
-				'spip_auteurs',
400
-				['id_auteur' => -$GLOBALS['visiteur_session']['id_auteur']],
401
-				'id_auteur=' . intval($GLOBALS['visiteur_session']['id_auteur']),
402
-				[],
403
-				$serveur
404
-			);
405
-		} else {
406
-			$row = sql_fetsel(
407
-				'*',
408
-				'spip_auteurs',
409
-				'id_auteur=' . $GLOBALS['visiteur_session']['id_auteur'],
410
-				'',
411
-				'',
412
-				'',
413
-				'',
414
-				$serveur
415
-			);
416
-			$row['id_auteur'] = -$GLOBALS['visiteur_session']['id_auteur'];
417
-			sql_insertq('spip_auteurs', $row, [], $serveur);
418
-		}
419
-	}
390
+    // s'asurer qu'on a pas deja fait la manip !
391
+    if ($GLOBALS['visiteur_session']['id_auteur'] > 0 and sql_countsel('spip_auteurs', 'id_auteur>0')) {
392
+        spip_log(
393
+            'Conserver copieur dans id_auteur=' . $GLOBALS['visiteur_session']['id_auteur'] . " pour le serveur '$serveur'",
394
+            'dump.' . _LOG_INFO_IMPORTANTE
395
+        );
396
+        sql_delete('spip_auteurs', 'id_auteur<0', $serveur);
397
+        if ($move) {
398
+            sql_updateq(
399
+                'spip_auteurs',
400
+                ['id_auteur' => -$GLOBALS['visiteur_session']['id_auteur']],
401
+                'id_auteur=' . intval($GLOBALS['visiteur_session']['id_auteur']),
402
+                [],
403
+                $serveur
404
+            );
405
+        } else {
406
+            $row = sql_fetsel(
407
+                '*',
408
+                'spip_auteurs',
409
+                'id_auteur=' . $GLOBALS['visiteur_session']['id_auteur'],
410
+                '',
411
+                '',
412
+                '',
413
+                '',
414
+                $serveur
415
+            );
416
+            $row['id_auteur'] = -$GLOBALS['visiteur_session']['id_auteur'];
417
+            sql_insertq('spip_auteurs', $row, [], $serveur);
418
+        }
419
+    }
420 420
 }
421 421
 
422 422
 /**
@@ -431,21 +431,21 @@  discard block
 block discarded – undo
431 431
  * @param string $serveur
432 432
  */
433 433
 function base_detruire_copieur_si_besoin($serveur = '') {
434
-	// rien a faire si ce n'est pas le serveur principal !
435
-	if ($serveur == '') {
436
-		if (sql_countsel('spip_auteurs', 'id_auteur>0')) {
437
-			spip_log("Detruire copieur id_auteur<0 pour le serveur '$serveur'", 'dump.' . _LOG_INFO_IMPORTANTE);
438
-			sql_delete('spip_auteurs', 'id_auteur<0', $serveur);
439
-		} else {
440
-			spip_log(
441
-				"Restaurer copieur id_auteur<0 pour le serveur '$serveur' (aucun autre auteur en base)",
442
-				'dump.' . _LOG_INFO_IMPORTANTE
443
-			);
444
-			sql_update('spip_auteurs', ['id_auteur' => '-id_auteur'], 'id_auteur<0');
445
-		}
446
-	} else {
447
-		spip_log("Pas de destruction copieur sur serveur '$serveur'", 'dump.' . _LOG_INFO_IMPORTANTE);
448
-	}
434
+    // rien a faire si ce n'est pas le serveur principal !
435
+    if ($serveur == '') {
436
+        if (sql_countsel('spip_auteurs', 'id_auteur>0')) {
437
+            spip_log("Detruire copieur id_auteur<0 pour le serveur '$serveur'", 'dump.' . _LOG_INFO_IMPORTANTE);
438
+            sql_delete('spip_auteurs', 'id_auteur<0', $serveur);
439
+        } else {
440
+            spip_log(
441
+                "Restaurer copieur id_auteur<0 pour le serveur '$serveur' (aucun autre auteur en base)",
442
+                'dump.' . _LOG_INFO_IMPORTANTE
443
+            );
444
+            sql_update('spip_auteurs', ['id_auteur' => '-id_auteur'], 'id_auteur<0');
445
+        }
446
+    } else {
447
+        spip_log("Pas de destruction copieur sur serveur '$serveur'", 'dump.' . _LOG_INFO_IMPORTANTE);
448
+    }
449 449
 }
450 450
 
451 451
 /**
@@ -460,40 +460,40 @@  discard block
 block discarded – undo
460 460
  * @return array
461 461
  */
462 462
 function base_preparer_table_dest($table, $desc, $serveur_dest, $init = false) {
463
-	$upgrade = false;
464
-	// si la table existe et qu'on est a l'init, la dropper
465
-	if ($desc_dest = sql_showtable($table, true, $serveur_dest) and $init) {
466
-		if ($serveur_dest == '' and in_array($table, ['spip_meta', 'spip_auteurs'])) {
467
-			// ne pas dropper auteurs et meta sur le serveur principal
468
-			// faire un simple upgrade a la place
469
-			// pour ajouter les champs manquants
470
-			$upgrade = true;
471
-			// coherence avec le drop sur les autres tables
472
-			base_vider_tables_destination_copie([$table], [], $serveur_dest);
473
-			if ($table == 'spip_meta') {
474
-				// virer les version base qui vont venir avec l'import
475
-				sql_delete($table, "nom like '%_base_version'", $serveur_dest);
476
-				// hum casse la base si pas version_installee a l'import ...
477
-				sql_delete($table, "nom='version_installee'", $serveur_dest);
478
-			}
479
-		} else {
480
-			sql_drop_table($table, '', $serveur_dest);
481
-			spip_log("drop table '$table' sur serveur '$serveur_dest'", 'dump.' . _LOG_INFO_IMPORTANTE);
482
-		}
483
-		$desc_dest = false;
484
-	}
485
-	// si la table n'existe pas dans la destination, la creer a l'identique !
486
-	if (!$desc_dest) {
487
-		spip_log("creation '$table' sur serveur '$serveur_dest'", 'dump.' . _LOG_INFO_IMPORTANTE);
488
-		include_spip('base/create');
489
-		creer_ou_upgrader_table($table, $desc, 'auto', $upgrade, $serveur_dest);
490
-		$desc_dest = sql_showtable($table, true, $serveur_dest);
491
-	}
492
-	if (!$desc_dest) {
493
-		spip_log("Erreur creation '$table' sur serveur '$serveur_dest'" . var_export($desc, 1), 'dump.' . _LOG_ERREUR);
494
-	}
495
-
496
-	return $desc_dest;
463
+    $upgrade = false;
464
+    // si la table existe et qu'on est a l'init, la dropper
465
+    if ($desc_dest = sql_showtable($table, true, $serveur_dest) and $init) {
466
+        if ($serveur_dest == '' and in_array($table, ['spip_meta', 'spip_auteurs'])) {
467
+            // ne pas dropper auteurs et meta sur le serveur principal
468
+            // faire un simple upgrade a la place
469
+            // pour ajouter les champs manquants
470
+            $upgrade = true;
471
+            // coherence avec le drop sur les autres tables
472
+            base_vider_tables_destination_copie([$table], [], $serveur_dest);
473
+            if ($table == 'spip_meta') {
474
+                // virer les version base qui vont venir avec l'import
475
+                sql_delete($table, "nom like '%_base_version'", $serveur_dest);
476
+                // hum casse la base si pas version_installee a l'import ...
477
+                sql_delete($table, "nom='version_installee'", $serveur_dest);
478
+            }
479
+        } else {
480
+            sql_drop_table($table, '', $serveur_dest);
481
+            spip_log("drop table '$table' sur serveur '$serveur_dest'", 'dump.' . _LOG_INFO_IMPORTANTE);
482
+        }
483
+        $desc_dest = false;
484
+    }
485
+    // si la table n'existe pas dans la destination, la creer a l'identique !
486
+    if (!$desc_dest) {
487
+        spip_log("creation '$table' sur serveur '$serveur_dest'", 'dump.' . _LOG_INFO_IMPORTANTE);
488
+        include_spip('base/create');
489
+        creer_ou_upgrader_table($table, $desc, 'auto', $upgrade, $serveur_dest);
490
+        $desc_dest = sql_showtable($table, true, $serveur_dest);
491
+    }
492
+    if (!$desc_dest) {
493
+        spip_log("Erreur creation '$table' sur serveur '$serveur_dest'" . var_export($desc, 1), 'dump.' . _LOG_ERREUR);
494
+    }
495
+
496
+    return $desc_dest;
497 497
 }
498 498
 
499 499
 /**
@@ -539,211 +539,211 @@  discard block
 block discarded – undo
539 539
  */
540 540
 function base_copier_tables($status_file, $tables, $serveur_source, $serveur_dest, $options = []) {
541 541
 
542
-	$status = [];
543
-	$callback_progression = $options['callback_progression'] ?? '';
544
-	$max_time = $options['max_time'] ?? 0;
545
-	$drop_source = $options['drop_source'] ?? false;
546
-	$no_erase_dest = $options['no_erase_dest'] ?? [];
547
-	$where = $options['where'] ?? [];
548
-	$fonction_base_inserer = $options['fonction_base_inserer'] ?? 'inserer_copie';
549
-	$desc_tables_dest = $options['desc_tables_dest'] ?? [];
550
-	$racine_fonctions = $options['racine_fonctions_dest'] ?? 'base';
551
-	$data_pool = $options['data_pool'] ?? 50 * 1024;
552
-
553
-	spip_log(
554
-		'Copier ' . count($tables) . " tables de '$serveur_source' vers '$serveur_dest'",
555
-		'dump.' . _LOG_INFO_IMPORTANTE
556
-	);
557
-
558
-	if (!$inserer_copie = charger_fonction($fonction_base_inserer, $racine_fonctions, true)) {
559
-		spip_log("Fonction '{$racine_fonctions}_$fonction_base_inserer' inconnue. Abandon", 'dump.' . _LOG_INFO_IMPORTANTE);
560
-
561
-		return true; // echec mais on a fini, donc true
562
-	}
563
-	if (!$preparer_table_dest = charger_fonction('preparer_table_dest', $racine_fonctions, true)) {
564
-		spip_log("Fonction '{$racine_fonctions}_$preparer_table_dest' inconnue. Abandon", 'dump.' . _LOG_INFO_IMPORTANTE);
565
-
566
-		return true; // echec mais on a fini, donc true
567
-	}
568
-
569
-	if (
570
-		!lire_fichier($status_file, $status)
571
-		or !$status = unserialize($status)
572
-	) {
573
-		$status = [];
574
-	}
575
-	$status['etape'] = 'basecopie';
576
-
577
-	// puis relister les tables a importer
578
-	// et les vider si besoin, au moment du premier passage ici
579
-	$initialisation_copie = (!isset($status['dump_status_copie'])) ? 0 : $status['dump_status_copie'];
580
-
581
-	// si init pas encore faite, vider les tables du serveur destination
582
-	if (!$initialisation_copie) {
583
-		if (
584
-			!$vider_tables_destination_copie = charger_fonction(
585
-				'vider_tables_destination_copie',
586
-				$racine_fonctions,
587
-				true
588
-			)
589
-		) {
590
-			spip_log(
591
-				"Fonction '{$racine_fonctions}_vider_tables_destination_copie' inconnue. Abandon",
592
-				'dump.' . _LOG_INFO_IMPORTANTE
593
-			);
594
-
595
-			return true; // echec mais on a fini, donc true
596
-		}
597
-		$vider_tables_destination_copie($tables, $no_erase_dest, $serveur_dest);
598
-		$status['dump_status_copie'] = 'ok';
599
-		ecrire_fichier($status_file, serialize($status));
600
-	}
601
-
602
-	// les tables auteurs et meta doivent etre copiees en dernier !
603
-	if (in_array('spip_auteurs', $tables)) {
604
-		$tables = array_diff($tables, ['spip_auteurs']);
605
-		$tables[] = 'spip_auteurs';
606
-	}
607
-	if (in_array('spip_meta', $tables)) {
608
-		$tables = array_diff($tables, ['spip_meta']);
609
-		$tables[] = 'spip_meta';
610
-	}
611
-	spip_log('Tables a copier :' . implode(', ', $tables), 'dump.' . _LOG_INFO);
612
-
613
-	$trouver_table = charger_fonction('trouver_table', 'base');
614
-
615
-	foreach ($tables as $table) {
616
-		// si table commence par spip_ c'est une table SPIP, renommer le prefixe si besoin
617
-		// sinon chercher la vraie table
618
-		$desc_source = false;
619
-		if (strncmp($table, 'spip_', 5) == 0) {
620
-			$desc_source = $trouver_table(preg_replace(',^spip_,', '', $table), $serveur_source, true);
621
-		}
622
-		if (!$desc_source or !isset($desc_source['exist']) or !$desc_source['exist']) {
623
-			$desc_source = $trouver_table($table, $serveur_source, false);
624
-		}
625
-
626
-		// verifier que la table est presente dans la base source
627
-		if ($desc_source) {
628
-			// $status['tables_copiees'][$table] contient l'avancement
629
-			// de la copie pour la $table : 0 a N et -N quand elle est finie (-1 si vide et finie...)
630
-			if (!isset($status['tables_copiees'][$table])) {
631
-				$status['tables_copiees'][$table] = 0;
632
-			}
633
-
634
-			if (
635
-				is_numeric($status['tables_copiees'][$table])
636
-				and $status['tables_copiees'][$table] >= 0
637
-				and $desc_dest = $preparer_table_dest(
638
-					$table,
639
-					$desc_tables_dest[$table] ?? $desc_source,
640
-					$serveur_dest,
641
-					$status['tables_copiees'][$table] == 0
642
-				)
643
-			) {
644
-				if ($callback_progression) {
645
-					$callback_progression($status['tables_copiees'][$table], 0, $table);
646
-				}
647
-				while (true) {
648
-					$n = intval($status['tables_copiees'][$table]);
649
-					// on copie par lot de 400
650
-					$res = sql_select(
651
-						'*',
652
-						$table,
653
-						$where[$table] ?? '',
654
-						'',
655
-						'',
656
-						"$n,400",
657
-						'',
658
-						$serveur_source
659
-					);
660
-					while ($row = sql_fetch($res, $serveur_source)) {
661
-						$rows = [$row];
662
-						// lire un groupe de donnees si demande en option
663
-						// (permet un envoi par lot vers la destination)
664
-						if ($data_pool > 0) {
665
-							$s = strlen(serialize($row));
666
-							while ($s < $data_pool and $row = sql_fetch($res, $serveur_source)) {
667
-								$s += strlen(serialize($row));
668
-								$rows[] = $row;
669
-							}
670
-						}
671
-						// si l'enregistrement est deja en base, ca fera un echec ou un doublon
672
-						// mais si ca renvoie false c'est une erreur fatale => abandon
673
-						if ($inserer_copie($table, $rows, $desc_dest, $serveur_dest) === false) {
674
-							// forcer la sortie, charge a l'appelant de gerer l'echec
675
-							spip_log("Erreur fatale dans $inserer_copie table $table", 'dump' . _LOG_ERREUR);
676
-							$status['errors'][] = "Erreur fatale  lors de la copie de la table $table";
677
-							ecrire_fichier($status_file, serialize($status));
678
-
679
-							// copie finie
680
-							return true;
681
-						}
682
-						$status['tables_copiees'][$table] += count($rows);
683
-						if ($max_time and time() > $max_time) {
684
-							break;
685
-						}
686
-					}
687
-					if ($n == $status['tables_copiees'][$table]) {
688
-						break;
689
-					}
690
-					spip_log("recopie $table " . $status['tables_copiees'][$table], 'dump.' . _LOG_INFO_IMPORTANTE);
691
-					if ($callback_progression) {
692
-						$callback_progression($status['tables_copiees'][$table], 0, $table);
693
-					}
694
-					ecrire_fichier($status_file, serialize($status));
695
-					if ($max_time and time() > $max_time) {
696
-						return false;
697
-					} // on a pas fini, mais le temps imparti est ecoule
698
-				}
699
-				if ($drop_source) {
700
-					sql_drop_table($table, '', $serveur_source);
701
-					spip_log("drop $table sur serveur source '$serveur_source'", 'dump.' . _LOG_INFO_IMPORTANTE);
702
-				}
703
-				$status['tables_copiees'][$table] = ($status['tables_copiees'][$table] ? -$status['tables_copiees'][$table] : 'zero');
704
-				ecrire_fichier($status_file, serialize($status));
705
-				spip_log('tables_recopiees ' . implode(',', array_keys($status['tables_copiees'])), 'dump.' . _LOG_INFO);
706
-				if ($callback_progression) {
707
-					$callback_progression($status['tables_copiees'][$table], $status['tables_copiees'][$table], $table);
708
-				}
709
-			} else {
710
-				if ($status['tables_copiees'][$table] < 0) {
711
-					spip_log("Table $table deja copiee : " . $status['tables_copiees'][$table], 'dump.' . _LOG_INFO);
712
-				}
713
-				if ($callback_progression) {
714
-					$callback_progression(
715
-						0,
716
-						$status['tables_copiees'][$table],
717
-						"$table" . ((is_numeric($status['tables_copiees'][$table]) and $status['tables_copiees'][$table] >= 0) ? '[Echec]' : '')
718
-					);
719
-				}
720
-			}
721
-		} else {
722
-			$status['errors'][] = "Impossible de lire la description de la table $table";
723
-			ecrire_fichier($status_file, serialize($status));
724
-			spip_log("Impossible de lire la description de la table $table", 'dump.' . _LOG_ERREUR);
725
-		}
726
-	}
727
-
728
-	// si le nombre de tables envoyees n'est pas egal au nombre de tables demandees
729
-	// abandonner
730
-	if ((is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) < count($tables)) {
731
-		spip_log(
732
-			'Nombre de tables copiees incorrect : ' . (is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) . '/' . count($tables),
733
-			'dump.' . _LOG_ERREUR
734
-		);
735
-		$status['errors'][] = 'Nombre de tables copiees incorrect : ' . (is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) . '/' . count($tables);
736
-		ecrire_fichier($status_file, serialize($status));
737
-	}
738
-
739
-	if ($detruire_copieur_si_besoin = charger_fonction('detruire_copieur_si_besoin', $racine_fonctions, true)) {
740
-		$detruire_copieur_si_besoin($serveur_dest);
741
-	} else {
742
-		spip_log("Fonction '{$racine_fonctions}_detruire_copieur_si_besoin' inconnue.", 'dump.' . _LOG_INFO_IMPORTANTE);
743
-	}
744
-
745
-	// OK, copie complete
746
-	return true;
542
+    $status = [];
543
+    $callback_progression = $options['callback_progression'] ?? '';
544
+    $max_time = $options['max_time'] ?? 0;
545
+    $drop_source = $options['drop_source'] ?? false;
546
+    $no_erase_dest = $options['no_erase_dest'] ?? [];
547
+    $where = $options['where'] ?? [];
548
+    $fonction_base_inserer = $options['fonction_base_inserer'] ?? 'inserer_copie';
549
+    $desc_tables_dest = $options['desc_tables_dest'] ?? [];
550
+    $racine_fonctions = $options['racine_fonctions_dest'] ?? 'base';
551
+    $data_pool = $options['data_pool'] ?? 50 * 1024;
552
+
553
+    spip_log(
554
+        'Copier ' . count($tables) . " tables de '$serveur_source' vers '$serveur_dest'",
555
+        'dump.' . _LOG_INFO_IMPORTANTE
556
+    );
557
+
558
+    if (!$inserer_copie = charger_fonction($fonction_base_inserer, $racine_fonctions, true)) {
559
+        spip_log("Fonction '{$racine_fonctions}_$fonction_base_inserer' inconnue. Abandon", 'dump.' . _LOG_INFO_IMPORTANTE);
560
+
561
+        return true; // echec mais on a fini, donc true
562
+    }
563
+    if (!$preparer_table_dest = charger_fonction('preparer_table_dest', $racine_fonctions, true)) {
564
+        spip_log("Fonction '{$racine_fonctions}_$preparer_table_dest' inconnue. Abandon", 'dump.' . _LOG_INFO_IMPORTANTE);
565
+
566
+        return true; // echec mais on a fini, donc true
567
+    }
568
+
569
+    if (
570
+        !lire_fichier($status_file, $status)
571
+        or !$status = unserialize($status)
572
+    ) {
573
+        $status = [];
574
+    }
575
+    $status['etape'] = 'basecopie';
576
+
577
+    // puis relister les tables a importer
578
+    // et les vider si besoin, au moment du premier passage ici
579
+    $initialisation_copie = (!isset($status['dump_status_copie'])) ? 0 : $status['dump_status_copie'];
580
+
581
+    // si init pas encore faite, vider les tables du serveur destination
582
+    if (!$initialisation_copie) {
583
+        if (
584
+            !$vider_tables_destination_copie = charger_fonction(
585
+                'vider_tables_destination_copie',
586
+                $racine_fonctions,
587
+                true
588
+            )
589
+        ) {
590
+            spip_log(
591
+                "Fonction '{$racine_fonctions}_vider_tables_destination_copie' inconnue. Abandon",
592
+                'dump.' . _LOG_INFO_IMPORTANTE
593
+            );
594
+
595
+            return true; // echec mais on a fini, donc true
596
+        }
597
+        $vider_tables_destination_copie($tables, $no_erase_dest, $serveur_dest);
598
+        $status['dump_status_copie'] = 'ok';
599
+        ecrire_fichier($status_file, serialize($status));
600
+    }
601
+
602
+    // les tables auteurs et meta doivent etre copiees en dernier !
603
+    if (in_array('spip_auteurs', $tables)) {
604
+        $tables = array_diff($tables, ['spip_auteurs']);
605
+        $tables[] = 'spip_auteurs';
606
+    }
607
+    if (in_array('spip_meta', $tables)) {
608
+        $tables = array_diff($tables, ['spip_meta']);
609
+        $tables[] = 'spip_meta';
610
+    }
611
+    spip_log('Tables a copier :' . implode(', ', $tables), 'dump.' . _LOG_INFO);
612
+
613
+    $trouver_table = charger_fonction('trouver_table', 'base');
614
+
615
+    foreach ($tables as $table) {
616
+        // si table commence par spip_ c'est une table SPIP, renommer le prefixe si besoin
617
+        // sinon chercher la vraie table
618
+        $desc_source = false;
619
+        if (strncmp($table, 'spip_', 5) == 0) {
620
+            $desc_source = $trouver_table(preg_replace(',^spip_,', '', $table), $serveur_source, true);
621
+        }
622
+        if (!$desc_source or !isset($desc_source['exist']) or !$desc_source['exist']) {
623
+            $desc_source = $trouver_table($table, $serveur_source, false);
624
+        }
625
+
626
+        // verifier que la table est presente dans la base source
627
+        if ($desc_source) {
628
+            // $status['tables_copiees'][$table] contient l'avancement
629
+            // de la copie pour la $table : 0 a N et -N quand elle est finie (-1 si vide et finie...)
630
+            if (!isset($status['tables_copiees'][$table])) {
631
+                $status['tables_copiees'][$table] = 0;
632
+            }
633
+
634
+            if (
635
+                is_numeric($status['tables_copiees'][$table])
636
+                and $status['tables_copiees'][$table] >= 0
637
+                and $desc_dest = $preparer_table_dest(
638
+                    $table,
639
+                    $desc_tables_dest[$table] ?? $desc_source,
640
+                    $serveur_dest,
641
+                    $status['tables_copiees'][$table] == 0
642
+                )
643
+            ) {
644
+                if ($callback_progression) {
645
+                    $callback_progression($status['tables_copiees'][$table], 0, $table);
646
+                }
647
+                while (true) {
648
+                    $n = intval($status['tables_copiees'][$table]);
649
+                    // on copie par lot de 400
650
+                    $res = sql_select(
651
+                        '*',
652
+                        $table,
653
+                        $where[$table] ?? '',
654
+                        '',
655
+                        '',
656
+                        "$n,400",
657
+                        '',
658
+                        $serveur_source
659
+                    );
660
+                    while ($row = sql_fetch($res, $serveur_source)) {
661
+                        $rows = [$row];
662
+                        // lire un groupe de donnees si demande en option
663
+                        // (permet un envoi par lot vers la destination)
664
+                        if ($data_pool > 0) {
665
+                            $s = strlen(serialize($row));
666
+                            while ($s < $data_pool and $row = sql_fetch($res, $serveur_source)) {
667
+                                $s += strlen(serialize($row));
668
+                                $rows[] = $row;
669
+                            }
670
+                        }
671
+                        // si l'enregistrement est deja en base, ca fera un echec ou un doublon
672
+                        // mais si ca renvoie false c'est une erreur fatale => abandon
673
+                        if ($inserer_copie($table, $rows, $desc_dest, $serveur_dest) === false) {
674
+                            // forcer la sortie, charge a l'appelant de gerer l'echec
675
+                            spip_log("Erreur fatale dans $inserer_copie table $table", 'dump' . _LOG_ERREUR);
676
+                            $status['errors'][] = "Erreur fatale  lors de la copie de la table $table";
677
+                            ecrire_fichier($status_file, serialize($status));
678
+
679
+                            // copie finie
680
+                            return true;
681
+                        }
682
+                        $status['tables_copiees'][$table] += count($rows);
683
+                        if ($max_time and time() > $max_time) {
684
+                            break;
685
+                        }
686
+                    }
687
+                    if ($n == $status['tables_copiees'][$table]) {
688
+                        break;
689
+                    }
690
+                    spip_log("recopie $table " . $status['tables_copiees'][$table], 'dump.' . _LOG_INFO_IMPORTANTE);
691
+                    if ($callback_progression) {
692
+                        $callback_progression($status['tables_copiees'][$table], 0, $table);
693
+                    }
694
+                    ecrire_fichier($status_file, serialize($status));
695
+                    if ($max_time and time() > $max_time) {
696
+                        return false;
697
+                    } // on a pas fini, mais le temps imparti est ecoule
698
+                }
699
+                if ($drop_source) {
700
+                    sql_drop_table($table, '', $serveur_source);
701
+                    spip_log("drop $table sur serveur source '$serveur_source'", 'dump.' . _LOG_INFO_IMPORTANTE);
702
+                }
703
+                $status['tables_copiees'][$table] = ($status['tables_copiees'][$table] ? -$status['tables_copiees'][$table] : 'zero');
704
+                ecrire_fichier($status_file, serialize($status));
705
+                spip_log('tables_recopiees ' . implode(',', array_keys($status['tables_copiees'])), 'dump.' . _LOG_INFO);
706
+                if ($callback_progression) {
707
+                    $callback_progression($status['tables_copiees'][$table], $status['tables_copiees'][$table], $table);
708
+                }
709
+            } else {
710
+                if ($status['tables_copiees'][$table] < 0) {
711
+                    spip_log("Table $table deja copiee : " . $status['tables_copiees'][$table], 'dump.' . _LOG_INFO);
712
+                }
713
+                if ($callback_progression) {
714
+                    $callback_progression(
715
+                        0,
716
+                        $status['tables_copiees'][$table],
717
+                        "$table" . ((is_numeric($status['tables_copiees'][$table]) and $status['tables_copiees'][$table] >= 0) ? '[Echec]' : '')
718
+                    );
719
+                }
720
+            }
721
+        } else {
722
+            $status['errors'][] = "Impossible de lire la description de la table $table";
723
+            ecrire_fichier($status_file, serialize($status));
724
+            spip_log("Impossible de lire la description de la table $table", 'dump.' . _LOG_ERREUR);
725
+        }
726
+    }
727
+
728
+    // si le nombre de tables envoyees n'est pas egal au nombre de tables demandees
729
+    // abandonner
730
+    if ((is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) < count($tables)) {
731
+        spip_log(
732
+            'Nombre de tables copiees incorrect : ' . (is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) . '/' . count($tables),
733
+            'dump.' . _LOG_ERREUR
734
+        );
735
+        $status['errors'][] = 'Nombre de tables copiees incorrect : ' . (is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) . '/' . count($tables);
736
+        ecrire_fichier($status_file, serialize($status));
737
+    }
738
+
739
+    if ($detruire_copieur_si_besoin = charger_fonction('detruire_copieur_si_besoin', $racine_fonctions, true)) {
740
+        $detruire_copieur_si_besoin($serveur_dest);
741
+    } else {
742
+        spip_log("Fonction '{$racine_fonctions}_detruire_copieur_si_besoin' inconnue.", 'dump.' . _LOG_INFO_IMPORTANTE);
743
+    }
744
+
745
+    // OK, copie complete
746
+    return true;
747 747
 }
748 748
 
749 749
 /**
@@ -757,31 +757,31 @@  discard block
 block discarded – undo
757 757
  */
758 758
 function base_inserer_copie($table, $rows, $desc_dest, $serveur_dest) {
759 759
 
760
-	// verifier le nombre d'insertion
761
-	$nb1 = sql_countsel($table, '', '', '', $serveur_dest);
762
-	// si l'enregistrement est deja en base, ca fera un echec ou un doublon
763
-	$r = sql_insertq_multi($table, $rows, $desc_dest, $serveur_dest);
764
-	$nb = sql_countsel($table, '', '', '', $serveur_dest);
765
-	if ($nb - $nb1 < count($rows)) {
766
-		spip_log(
767
-			'base_inserer_copie : ' . ($nb - $nb1) . ' insertions au lieu de ' . count($rows) . '. On retente 1 par 1',
768
-			'dump' . _LOG_INFO_IMPORTANTE
769
-		);
770
-		foreach ($rows as $row) {
771
-			// si l'enregistrement est deja en base, ca fera un echec ou un doublon
772
-			$r = sql_insertq($table, $row, $desc_dest, $serveur_dest);
773
-		}
774
-		// on reverifie le total
775
-		$r = 0;
776
-		$nb = sql_countsel($table, '', '', '', $serveur_dest);
777
-		if ($nb - $nb1 < count($rows)) {
778
-			spip_log(
779
-				'base_inserer_copie : ' . ($nb - $nb1) . ' insertions au lieu de ' . count($rows) . ' apres insertion 1 par 1',
780
-				'dump' . _LOG_ERREUR
781
-			);
782
-			$r = false;
783
-		}
784
-	}
785
-
786
-	return $r;
760
+    // verifier le nombre d'insertion
761
+    $nb1 = sql_countsel($table, '', '', '', $serveur_dest);
762
+    // si l'enregistrement est deja en base, ca fera un echec ou un doublon
763
+    $r = sql_insertq_multi($table, $rows, $desc_dest, $serveur_dest);
764
+    $nb = sql_countsel($table, '', '', '', $serveur_dest);
765
+    if ($nb - $nb1 < count($rows)) {
766
+        spip_log(
767
+            'base_inserer_copie : ' . ($nb - $nb1) . ' insertions au lieu de ' . count($rows) . '. On retente 1 par 1',
768
+            'dump' . _LOG_INFO_IMPORTANTE
769
+        );
770
+        foreach ($rows as $row) {
771
+            // si l'enregistrement est deja en base, ca fera un echec ou un doublon
772
+            $r = sql_insertq($table, $row, $desc_dest, $serveur_dest);
773
+        }
774
+        // on reverifie le total
775
+        $r = 0;
776
+        $nb = sql_countsel($table, '', '', '', $serveur_dest);
777
+        if ($nb - $nb1 < count($rows)) {
778
+            spip_log(
779
+                'base_inserer_copie : ' . ($nb - $nb1) . ' insertions au lieu de ' . count($rows) . ' apres insertion 1 par 1',
780
+                'dump' . _LOG_ERREUR
781
+            );
782
+            $r = false;
783
+        }
784
+    }
785
+
786
+    return $r;
787 787
 }
Please login to merge, or discard this patch.
Spacing   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -38,7 +38,7 @@  discard block
 block discarded – undo
38 38
  * @return string
39 39
  **/
40 40
 function base_dump_meta_name($rub) {
41
-	return $meta = "status_dump_{$rub}_" . abs($GLOBALS['visiteur_session']['id_auteur']);
41
+	return $meta = "status_dump_{$rub}_".abs($GLOBALS['visiteur_session']['id_auteur']);
42 42
 }
43 43
 
44 44
 /**
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 	$connexion = $GLOBALS['connexions'][$serveur ?: 0];
85 85
 	$prefixe = $connexion['prefixe'];
86 86
 
87
-	$p = '/^' . $prefixe . '/';
87
+	$p = '/^'.$prefixe.'/';
88 88
 	$res = $tables;
89 89
 	foreach (sql_alltable(null, $serveur) as $t) {
90 90
 		if (preg_match($p, $t)) {
@@ -349,8 +349,8 @@  discard block
 block discarded – undo
349 349
 	$trouver_table = charger_fonction('trouver_table', 'base');
350 350
 
351 351
 	spip_log(
352
-		'Vider ' . count($tables) . " tables sur serveur '$serveur' : " . join(', ', $tables),
353
-		'base.' . _LOG_INFO_IMPORTANTE
352
+		'Vider '.count($tables)." tables sur serveur '$serveur' : ".join(', ', $tables),
353
+		'base.'._LOG_INFO_IMPORTANTE
354 354
 	);
355 355
 	foreach ($tables as $table) {
356 356
 		if (!in_array($table, $exclure_tables)) {
@@ -390,15 +390,15 @@  discard block
 block discarded – undo
390 390
 	// s'asurer qu'on a pas deja fait la manip !
391 391
 	if ($GLOBALS['visiteur_session']['id_auteur'] > 0 and sql_countsel('spip_auteurs', 'id_auteur>0')) {
392 392
 		spip_log(
393
-			'Conserver copieur dans id_auteur=' . $GLOBALS['visiteur_session']['id_auteur'] . " pour le serveur '$serveur'",
394
-			'dump.' . _LOG_INFO_IMPORTANTE
393
+			'Conserver copieur dans id_auteur='.$GLOBALS['visiteur_session']['id_auteur']." pour le serveur '$serveur'",
394
+			'dump.'._LOG_INFO_IMPORTANTE
395 395
 		);
396 396
 		sql_delete('spip_auteurs', 'id_auteur<0', $serveur);
397 397
 		if ($move) {
398 398
 			sql_updateq(
399 399
 				'spip_auteurs',
400 400
 				['id_auteur' => -$GLOBALS['visiteur_session']['id_auteur']],
401
-				'id_auteur=' . intval($GLOBALS['visiteur_session']['id_auteur']),
401
+				'id_auteur='.intval($GLOBALS['visiteur_session']['id_auteur']),
402 402
 				[],
403 403
 				$serveur
404 404
 			);
@@ -406,7 +406,7 @@  discard block
 block discarded – undo
406 406
 			$row = sql_fetsel(
407 407
 				'*',
408 408
 				'spip_auteurs',
409
-				'id_auteur=' . $GLOBALS['visiteur_session']['id_auteur'],
409
+				'id_auteur='.$GLOBALS['visiteur_session']['id_auteur'],
410 410
 				'',
411 411
 				'',
412 412
 				'',
@@ -434,17 +434,17 @@  discard block
 block discarded – undo
434 434
 	// rien a faire si ce n'est pas le serveur principal !
435 435
 	if ($serveur == '') {
436 436
 		if (sql_countsel('spip_auteurs', 'id_auteur>0')) {
437
-			spip_log("Detruire copieur id_auteur<0 pour le serveur '$serveur'", 'dump.' . _LOG_INFO_IMPORTANTE);
437
+			spip_log("Detruire copieur id_auteur<0 pour le serveur '$serveur'", 'dump.'._LOG_INFO_IMPORTANTE);
438 438
 			sql_delete('spip_auteurs', 'id_auteur<0', $serveur);
439 439
 		} else {
440 440
 			spip_log(
441 441
 				"Restaurer copieur id_auteur<0 pour le serveur '$serveur' (aucun autre auteur en base)",
442
-				'dump.' . _LOG_INFO_IMPORTANTE
442
+				'dump.'._LOG_INFO_IMPORTANTE
443 443
 			);
444 444
 			sql_update('spip_auteurs', ['id_auteur' => '-id_auteur'], 'id_auteur<0');
445 445
 		}
446 446
 	} else {
447
-		spip_log("Pas de destruction copieur sur serveur '$serveur'", 'dump.' . _LOG_INFO_IMPORTANTE);
447
+		spip_log("Pas de destruction copieur sur serveur '$serveur'", 'dump.'._LOG_INFO_IMPORTANTE);
448 448
 	}
449 449
 }
450 450
 
@@ -478,19 +478,19 @@  discard block
 block discarded – undo
478 478
 			}
479 479
 		} else {
480 480
 			sql_drop_table($table, '', $serveur_dest);
481
-			spip_log("drop table '$table' sur serveur '$serveur_dest'", 'dump.' . _LOG_INFO_IMPORTANTE);
481
+			spip_log("drop table '$table' sur serveur '$serveur_dest'", 'dump.'._LOG_INFO_IMPORTANTE);
482 482
 		}
483 483
 		$desc_dest = false;
484 484
 	}
485 485
 	// si la table n'existe pas dans la destination, la creer a l'identique !
486 486
 	if (!$desc_dest) {
487
-		spip_log("creation '$table' sur serveur '$serveur_dest'", 'dump.' . _LOG_INFO_IMPORTANTE);
487
+		spip_log("creation '$table' sur serveur '$serveur_dest'", 'dump.'._LOG_INFO_IMPORTANTE);
488 488
 		include_spip('base/create');
489 489
 		creer_ou_upgrader_table($table, $desc, 'auto', $upgrade, $serveur_dest);
490 490
 		$desc_dest = sql_showtable($table, true, $serveur_dest);
491 491
 	}
492 492
 	if (!$desc_dest) {
493
-		spip_log("Erreur creation '$table' sur serveur '$serveur_dest'" . var_export($desc, 1), 'dump.' . _LOG_ERREUR);
493
+		spip_log("Erreur creation '$table' sur serveur '$serveur_dest'".var_export($desc, 1), 'dump.'._LOG_ERREUR);
494 494
 	}
495 495
 
496 496
 	return $desc_dest;
@@ -551,17 +551,17 @@  discard block
 block discarded – undo
551 551
 	$data_pool = $options['data_pool'] ?? 50 * 1024;
552 552
 
553 553
 	spip_log(
554
-		'Copier ' . count($tables) . " tables de '$serveur_source' vers '$serveur_dest'",
555
-		'dump.' . _LOG_INFO_IMPORTANTE
554
+		'Copier '.count($tables)." tables de '$serveur_source' vers '$serveur_dest'",
555
+		'dump.'._LOG_INFO_IMPORTANTE
556 556
 	);
557 557
 
558 558
 	if (!$inserer_copie = charger_fonction($fonction_base_inserer, $racine_fonctions, true)) {
559
-		spip_log("Fonction '{$racine_fonctions}_$fonction_base_inserer' inconnue. Abandon", 'dump.' . _LOG_INFO_IMPORTANTE);
559
+		spip_log("Fonction '{$racine_fonctions}_$fonction_base_inserer' inconnue. Abandon", 'dump.'._LOG_INFO_IMPORTANTE);
560 560
 
561 561
 		return true; // echec mais on a fini, donc true
562 562
 	}
563 563
 	if (!$preparer_table_dest = charger_fonction('preparer_table_dest', $racine_fonctions, true)) {
564
-		spip_log("Fonction '{$racine_fonctions}_$preparer_table_dest' inconnue. Abandon", 'dump.' . _LOG_INFO_IMPORTANTE);
564
+		spip_log("Fonction '{$racine_fonctions}_$preparer_table_dest' inconnue. Abandon", 'dump.'._LOG_INFO_IMPORTANTE);
565 565
 
566 566
 		return true; // echec mais on a fini, donc true
567 567
 	}
@@ -589,7 +589,7 @@  discard block
 block discarded – undo
589 589
 		) {
590 590
 			spip_log(
591 591
 				"Fonction '{$racine_fonctions}_vider_tables_destination_copie' inconnue. Abandon",
592
-				'dump.' . _LOG_INFO_IMPORTANTE
592
+				'dump.'._LOG_INFO_IMPORTANTE
593 593
 			);
594 594
 
595 595
 			return true; // echec mais on a fini, donc true
@@ -608,7 +608,7 @@  discard block
 block discarded – undo
608 608
 		$tables = array_diff($tables, ['spip_meta']);
609 609
 		$tables[] = 'spip_meta';
610 610
 	}
611
-	spip_log('Tables a copier :' . implode(', ', $tables), 'dump.' . _LOG_INFO);
611
+	spip_log('Tables a copier :'.implode(', ', $tables), 'dump.'._LOG_INFO);
612 612
 
613 613
 	$trouver_table = charger_fonction('trouver_table', 'base');
614 614
 
@@ -672,7 +672,7 @@  discard block
 block discarded – undo
672 672
 						// mais si ca renvoie false c'est une erreur fatale => abandon
673 673
 						if ($inserer_copie($table, $rows, $desc_dest, $serveur_dest) === false) {
674 674
 							// forcer la sortie, charge a l'appelant de gerer l'echec
675
-							spip_log("Erreur fatale dans $inserer_copie table $table", 'dump' . _LOG_ERREUR);
675
+							spip_log("Erreur fatale dans $inserer_copie table $table", 'dump'._LOG_ERREUR);
676 676
 							$status['errors'][] = "Erreur fatale  lors de la copie de la table $table";
677 677
 							ecrire_fichier($status_file, serialize($status));
678 678
 
@@ -687,7 +687,7 @@  discard block
 block discarded – undo
687 687
 					if ($n == $status['tables_copiees'][$table]) {
688 688
 						break;
689 689
 					}
690
-					spip_log("recopie $table " . $status['tables_copiees'][$table], 'dump.' . _LOG_INFO_IMPORTANTE);
690
+					spip_log("recopie $table ".$status['tables_copiees'][$table], 'dump.'._LOG_INFO_IMPORTANTE);
691 691
 					if ($callback_progression) {
692 692
 						$callback_progression($status['tables_copiees'][$table], 0, $table);
693 693
 					}
@@ -698,30 +698,30 @@  discard block
 block discarded – undo
698 698
 				}
699 699
 				if ($drop_source) {
700 700
 					sql_drop_table($table, '', $serveur_source);
701
-					spip_log("drop $table sur serveur source '$serveur_source'", 'dump.' . _LOG_INFO_IMPORTANTE);
701
+					spip_log("drop $table sur serveur source '$serveur_source'", 'dump.'._LOG_INFO_IMPORTANTE);
702 702
 				}
703 703
 				$status['tables_copiees'][$table] = ($status['tables_copiees'][$table] ? -$status['tables_copiees'][$table] : 'zero');
704 704
 				ecrire_fichier($status_file, serialize($status));
705
-				spip_log('tables_recopiees ' . implode(',', array_keys($status['tables_copiees'])), 'dump.' . _LOG_INFO);
705
+				spip_log('tables_recopiees '.implode(',', array_keys($status['tables_copiees'])), 'dump.'._LOG_INFO);
706 706
 				if ($callback_progression) {
707 707
 					$callback_progression($status['tables_copiees'][$table], $status['tables_copiees'][$table], $table);
708 708
 				}
709 709
 			} else {
710 710
 				if ($status['tables_copiees'][$table] < 0) {
711
-					spip_log("Table $table deja copiee : " . $status['tables_copiees'][$table], 'dump.' . _LOG_INFO);
711
+					spip_log("Table $table deja copiee : ".$status['tables_copiees'][$table], 'dump.'._LOG_INFO);
712 712
 				}
713 713
 				if ($callback_progression) {
714 714
 					$callback_progression(
715 715
 						0,
716 716
 						$status['tables_copiees'][$table],
717
-						"$table" . ((is_numeric($status['tables_copiees'][$table]) and $status['tables_copiees'][$table] >= 0) ? '[Echec]' : '')
717
+						"$table".((is_numeric($status['tables_copiees'][$table]) and $status['tables_copiees'][$table] >= 0) ? '[Echec]' : '')
718 718
 					);
719 719
 				}
720 720
 			}
721 721
 		} else {
722 722
 			$status['errors'][] = "Impossible de lire la description de la table $table";
723 723
 			ecrire_fichier($status_file, serialize($status));
724
-			spip_log("Impossible de lire la description de la table $table", 'dump.' . _LOG_ERREUR);
724
+			spip_log("Impossible de lire la description de la table $table", 'dump.'._LOG_ERREUR);
725 725
 		}
726 726
 	}
727 727
 
@@ -729,17 +729,17 @@  discard block
 block discarded – undo
729 729
 	// abandonner
730 730
 	if ((is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) < count($tables)) {
731 731
 		spip_log(
732
-			'Nombre de tables copiees incorrect : ' . (is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) . '/' . count($tables),
733
-			'dump.' . _LOG_ERREUR
732
+			'Nombre de tables copiees incorrect : '.(is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0).'/'.count($tables),
733
+			'dump.'._LOG_ERREUR
734 734
 		);
735
-		$status['errors'][] = 'Nombre de tables copiees incorrect : ' . (is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0) . '/' . count($tables);
735
+		$status['errors'][] = 'Nombre de tables copiees incorrect : '.(is_countable($status['tables_copiees']) ? count($status['tables_copiees']) : 0).'/'.count($tables);
736 736
 		ecrire_fichier($status_file, serialize($status));
737 737
 	}
738 738
 
739 739
 	if ($detruire_copieur_si_besoin = charger_fonction('detruire_copieur_si_besoin', $racine_fonctions, true)) {
740 740
 		$detruire_copieur_si_besoin($serveur_dest);
741 741
 	} else {
742
-		spip_log("Fonction '{$racine_fonctions}_detruire_copieur_si_besoin' inconnue.", 'dump.' . _LOG_INFO_IMPORTANTE);
742
+		spip_log("Fonction '{$racine_fonctions}_detruire_copieur_si_besoin' inconnue.", 'dump.'._LOG_INFO_IMPORTANTE);
743 743
 	}
744 744
 
745 745
 	// OK, copie complete
@@ -764,8 +764,8 @@  discard block
 block discarded – undo
764 764
 	$nb = sql_countsel($table, '', '', '', $serveur_dest);
765 765
 	if ($nb - $nb1 < count($rows)) {
766 766
 		spip_log(
767
-			'base_inserer_copie : ' . ($nb - $nb1) . ' insertions au lieu de ' . count($rows) . '. On retente 1 par 1',
768
-			'dump' . _LOG_INFO_IMPORTANTE
767
+			'base_inserer_copie : '.($nb - $nb1).' insertions au lieu de '.count($rows).'. On retente 1 par 1',
768
+			'dump'._LOG_INFO_IMPORTANTE
769 769
 		);
770 770
 		foreach ($rows as $row) {
771 771
 			// si l'enregistrement est deja en base, ca fera un echec ou un doublon
@@ -776,8 +776,8 @@  discard block
 block discarded – undo
776 776
 		$nb = sql_countsel($table, '', '', '', $serveur_dest);
777 777
 		if ($nb - $nb1 < count($rows)) {
778 778
 			spip_log(
779
-				'base_inserer_copie : ' . ($nb - $nb1) . ' insertions au lieu de ' . count($rows) . ' apres insertion 1 par 1',
780
-				'dump' . _LOG_ERREUR
779
+				'base_inserer_copie : '.($nb - $nb1).' insertions au lieu de '.count($rows).' apres insertion 1 par 1',
780
+				'dump'._LOG_ERREUR
781 781
 			);
782 782
 			$r = false;
783 783
 		}
Please login to merge, or discard this patch.
ecrire/install/etape_1.php 1 patch
Indentation   +30 added lines, -30 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
  */
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 /**
@@ -35,45 +35,45 @@  discard block
 block discarded – undo
35 35
  *
36 36
  */
37 37
 function install_etape_1_dist() {
38
-	echo install_debut_html();
38
+    echo install_debut_html();
39 39
 
40
-	// stopper en cas de grosse incompatibilite de l'hebergement
41
-	tester_compatibilite_hebergement();
40
+    // stopper en cas de grosse incompatibilite de l'hebergement
41
+    tester_compatibilite_hebergement();
42 42
 
43
-	// Recuperer les anciennes donnees pour plus de facilite (si presentes)
44
-	$s = !@is_readable(_FILE_CONNECT_TMP) ? ''
45
-		: analyse_fichier_connection(_FILE_CONNECT_TMP);
43
+    // Recuperer les anciennes donnees pour plus de facilite (si presentes)
44
+    $s = !@is_readable(_FILE_CONNECT_TMP) ? ''
45
+        : analyse_fichier_connection(_FILE_CONNECT_TMP);
46 46
 
47
-	[$adresse_db, $login_db] = $s ?: login_hebergeur();
47
+    [$adresse_db, $login_db] = $s ?: login_hebergeur();
48 48
 
49
-	$chmod = (isset($_GET['chmod']) and preg_match(',^[0-9]+$,', $_GET['chmod'])) ?
50
-		sprintf('%04o', $_GET['chmod']) : '0777';
49
+    $chmod = (isset($_GET['chmod']) and preg_match(',^[0-9]+$,', $_GET['chmod'])) ?
50
+        sprintf('%04o', $_GET['chmod']) : '0777';
51 51
 
52
-	if (@is_readable(_FILE_CHMOD_TMP)) {
53
-		$s = @join('', @file(_FILE_CHMOD_TMP));
54
-		if (preg_match("#define\('_SPIP_CHMOD', (.*)\)#", $s, $regs)) {
55
-			$chmod = $regs[1];
56
-		}
57
-	}
52
+    if (@is_readable(_FILE_CHMOD_TMP)) {
53
+        $s = @join('', @file(_FILE_CHMOD_TMP));
54
+        if (preg_match("#define\('_SPIP_CHMOD', (.*)\)#", $s, $regs)) {
55
+            $chmod = $regs[1];
56
+        }
57
+    }
58 58
 
59 59
 
60
-	$db = [$adresse_db, _T('entree_base_donnee_2')];
61
-	$login = [$login_db, _T('entree_login_connexion_2')];
62
-	$pass = ['', _T('entree_mot_passe_2')];
60
+    $db = [$adresse_db, _T('entree_base_donnee_2')];
61
+    $login = [$login_db, _T('entree_login_connexion_2')];
62
+    $pass = ['', _T('entree_mot_passe_2')];
63 63
 
64
-	$predef = [
65
-		defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : '',
66
-		defined('_INSTALL_HOST_DB'),
67
-		defined('_INSTALL_USER_DB'),
68
-		defined('_INSTALL_PASS_DB')
69
-	];
64
+    $predef = [
65
+        defined('_INSTALL_SERVER_DB') ? _INSTALL_SERVER_DB : '',
66
+        defined('_INSTALL_HOST_DB'),
67
+        defined('_INSTALL_USER_DB'),
68
+        defined('_INSTALL_PASS_DB')
69
+    ];
70 70
 
71 71
 
72
-	echo info_progression_etape(1, 'etape_', 'install/');
72
+    echo info_progression_etape(1, 'etape_', 'install/');
73 73
 
74
-	// ces deux chaines de langues doivent etre reecrites
74
+    // ces deux chaines de langues doivent etre reecrites
75 75
 #	echo info_etape(_T('info_connexion_mysql'), _T('texte_connexion_mysql').aide ("install1", true));
76
-	echo info_etape(_T('info_connexion_base_donnee'));
77
-	echo install_connexion_form($db, $login, $pass, $predef, "\n<input type='hidden' name='chmod' value='$chmod' />", 2);
78
-	echo install_fin_html();
76
+    echo info_etape(_T('info_connexion_base_donnee'));
77
+    echo install_connexion_form($db, $login, $pass, $predef, "\n<input type='hidden' name='chmod' value='$chmod' />", 2);
78
+    echo install_fin_html();
79 79
 }
Please login to merge, or discard this patch.
ecrire/install/etape_2.php 2 patches
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -50,7 +50,7 @@  discard block
 block discarded – undo
50 50
 	$GLOBALS['connexions'][$server_db] = $link;
51 51
 
52 52
 	$GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']]
53
-		= $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']];
53
+		= $GLOBALS['spip_'.$server_db.'_functions_'.$GLOBALS['spip_sql_version']];
54 54
 
55 55
 	echo install_debut_html();
56 56
 
@@ -68,18 +68,18 @@  discard block
 block discarded – undo
68 68
 	//echo "\n-->\n";
69 69
 
70 70
 	if (($db_connect == '0') && $link) {
71
-		echo "<div class='success'><b>" . _T('info_connexion_ok') . '</b></div>';
71
+		echo "<div class='success'><b>"._T('info_connexion_ok').'</b></div>';
72 72
 		echo info_progression_etape(2, 'etape_', 'install/');
73 73
 
74
-		echo info_etape(_T('menu_aide_installation_choix_base') . aider('install2', true));
74
+		echo info_etape(_T('menu_aide_installation_choix_base').aider('install2', true));
75 75
 
76 76
 		echo "\n", '<!-- ', sql_version($server_db), ' -->';
77 77
 		[$checked, $res] = install_etape_2_bases($login_db, $server_db);
78 78
 
79 79
 		$hidden = (defined('_SPIP_CHMOD')
80 80
 				? ''
81
-				: ("\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />"))
82
-			. predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db);
81
+				: ("\n<input type='hidden' name='chmod' value='".spip_htmlspecialchars($chmod)."' />"))
82
+			. predef_ou_cache($adresse_db.($port ? ':'.$port : ''), $login_db, $pass_db, $server_db);
83 83
 
84 84
 		echo install_etape_2_form($hidden, $checked, $res, 3);
85 85
 	} else {
@@ -87,8 +87,8 @@  discard block
 block discarded – undo
87 87
 
88 88
 		echo "<div class='error'>";
89 89
 		echo info_etape(_T('info_connexion_base'));
90
-		echo '<h3>' . _T('avis_connexion_echec_1') . '</h3>';
91
-		echo '<p>' . _T('avis_connexion_echec_2') . '</p>';
90
+		echo '<h3>'._T('avis_connexion_echec_1').'</h3>';
91
+		echo '<p>'._T('avis_connexion_echec_2').'</p>';
92 92
 
93 93
 		echo "<p style='font-size: small;'>",
94 94
 		_T('avis_connexion_echec_3'),
@@ -121,8 +121,8 @@  discard block
 block discarded – undo
121 121
 			. ' '
122 122
 		];
123 123
 	}
124
-	$res = '<b>' . _T('avis_lecture_noms_bases_1') . '</b>
125
-		' . _T('avis_lecture_noms_bases_2') . '<p>';
124
+	$res = '<b>'._T('avis_lecture_noms_bases_1').'</b>
125
+		' . _T('avis_lecture_noms_bases_2').'<p>';
126 126
 
127 127
 	$checked = false;
128 128
 	if ($login_db) {
@@ -139,10 +139,10 @@  discard block
 block discarded – undo
139 139
 		if ($ok) {
140 140
 			$res .= _T('avis_lecture_noms_bases_3')
141 141
 				. '<ul>'
142
-				. '<li><input name="choix_db" value="' . $test_base . "\" type='radio' id='stand' checked='checked' />"
143
-				. "<label for='stand'>" . $test_base . "</label></li>\n"
142
+				. '<li><input name="choix_db" value="'.$test_base."\" type='radio' id='stand' checked='checked' />"
143
+				. "<label for='stand'>".$test_base."</label></li>\n"
144 144
 				. '</ul>'
145
-				. '<p>' . _T('info_ou') . ' ';
145
+				. '<p>'._T('info_ou').' ';
146 146
 			$checked = true;
147 147
 		}
148 148
 	}
@@ -156,20 +156,20 @@  discard block
 block discarded – undo
156 156
 		"\n<input type='hidden' name='etape' value='$etape' />"
157 157
 		. $hidden
158 158
 		. (defined('_INSTALL_NAME_DB')
159
-			? '<h3>' . _T('install_nom_base_hebergeur') . ' <tt>' . _INSTALL_NAME_DB . '</tt>' . '</h3>'
160
-			: "\n<fieldset><legend>" . _T('texte_choix_base_1') . "</legend>\n"
159
+			? '<h3>'._T('install_nom_base_hebergeur').' <tt>'._INSTALL_NAME_DB.'</tt>'.'</h3>'
160
+			: "\n<fieldset><legend>"._T('texte_choix_base_1')."</legend>\n"
161 161
 			. $res
162 162
 			. "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'"
163 163
 			. ($checked ? '' : " checked='checked'")
164
-			. " />\n<label for='nou'>" . _T('info_creer_base') . "</label></p>\n<p>"
164
+			. " />\n<label for='nou'>"._T('info_creer_base')."</label></p>\n<p>"
165 165
 			. "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n"
166 166
 		)
167 167
 
168 168
 		. ((defined('_INSTALL_TABLE_PREFIX')
169 169
 			or $GLOBALS['table_prefix'] != 'spip')
170
-			? '<h3>' . _T('install_table_prefix_hebergeur') . '  <tt>' . $GLOBALS['table_prefix'] . '</tt>' . '</h3>'
171
-			: '<fieldset><legend>' . _T('texte_choix_table_prefix') . "</legend>\n"
172
-			. "<p><label for='table_prefix'>" . _T('info_table_prefix') . '</label></p><p>'
170
+			? '<h3>'._T('install_table_prefix_hebergeur').'  <tt>'.$GLOBALS['table_prefix'].'</tt>'.'</h3>'
171
+			: '<fieldset><legend>'._T('texte_choix_table_prefix')."</legend>\n"
172
+			. "<p><label for='table_prefix'>"._T('info_table_prefix').'</label></p><p>'
173 173
 			. "\n<input type='text' id='tprefix' name='tprefix' class='text' value='"
174 174
 			. 'spip' # valeur par defaut
175 175
 			. "' size='20' /></p></fieldset>"
Please login to merge, or discard this patch.
Indentation   +121 added lines, -121 removed lines patch added patch discarded remove patch
@@ -11,166 +11,166 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 include_spip('base/abstract_sql');
18 18
 
19 19
 function install_etape_2_dist() {
20
-	$adresse_db = defined('_INSTALL_HOST_DB')
21
-		? _INSTALL_HOST_DB
22
-		: _request('adresse_db');
20
+    $adresse_db = defined('_INSTALL_HOST_DB')
21
+        ? _INSTALL_HOST_DB
22
+        : _request('adresse_db');
23 23
 
24
-	if (preg_match(',(.*):(.*),', $adresse_db, $r)) {
25
-		[, $adresse_db, $port] = $r;
26
-	} else {
27
-		$port = '';
28
-	}
24
+    if (preg_match(',(.*):(.*),', $adresse_db, $r)) {
25
+        [, $adresse_db, $port] = $r;
26
+    } else {
27
+        $port = '';
28
+    }
29 29
 
30
-	$login_db = defined('_INSTALL_USER_DB')
31
-		? _INSTALL_USER_DB
32
-		: _request('login_db');
30
+    $login_db = defined('_INSTALL_USER_DB')
31
+        ? _INSTALL_USER_DB
32
+        : _request('login_db');
33 33
 
34
-	$pass_db = defined('_INSTALL_PASS_DB')
35
-		? _INSTALL_PASS_DB
36
-		: _request('pass_db');
34
+    $pass_db = defined('_INSTALL_PASS_DB')
35
+        ? _INSTALL_PASS_DB
36
+        : _request('pass_db');
37 37
 
38
-	$server_db = defined('_INSTALL_SERVER_DB')
39
-		? _INSTALL_SERVER_DB
40
-		: _request('server_db');
38
+    $server_db = defined('_INSTALL_SERVER_DB')
39
+        ? _INSTALL_SERVER_DB
40
+        : _request('server_db');
41 41
 
42
-	$name_db = defined('_INSTALL_NAME_DB')
43
-		? _INSTALL_NAME_DB
44
-		: '';
42
+    $name_db = defined('_INSTALL_NAME_DB')
43
+        ? _INSTALL_NAME_DB
44
+        : '';
45 45
 
46
-	$chmod = _request('chmod');
46
+    $chmod = _request('chmod');
47 47
 
48
-	$link = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $name_db, $server_db);
49
-	$GLOBALS['connexions'][$server_db] = $link;
48
+    $link = spip_connect_db($adresse_db, $port, $login_db, $pass_db, $name_db, $server_db);
49
+    $GLOBALS['connexions'][$server_db] = $link;
50 50
 
51
-	$GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']]
52
-		= $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']];
51
+    $GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']]
52
+        = $GLOBALS['spip_' . $server_db . '_functions_' . $GLOBALS['spip_sql_version']];
53 53
 
54
-	echo install_debut_html();
54
+    echo install_debut_html();
55 55
 
56 56
 // prenons toutes les dispositions possibles pour que rien ne s'affiche !
57 57
 
58
-	/*
58
+    /*
59 59
 	 * /!\ sqlite3/PDO : erreur sur join(', ', $link)
60 60
 	 * L'objet PDO ne peut pas etre transformee en chaine
61 61
 	 * Un echo $link ne fonctionne pas non plus
62 62
 	 * Il faut utiliser par exemple print_r($link)
63 63
 	 */
64
-	//echo "\n<!--\n", join(', ', $link), " $login_db ";
65
-	$db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0;
66
-	//echo join(', ', $GLOBALS['connexions'][$server_db]);
67
-	//echo "\n-->\n";
64
+    //echo "\n<!--\n", join(', ', $link), " $login_db ";
65
+    $db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0;
66
+    //echo join(', ', $GLOBALS['connexions'][$server_db]);
67
+    //echo "\n-->\n";
68 68
 
69
-	if (($db_connect == '0') && $link) {
70
-		echo "<div class='success'><b>" . _T('info_connexion_ok') . '</b></div>';
71
-		echo info_progression_etape(2, 'etape_', 'install/');
69
+    if (($db_connect == '0') && $link) {
70
+        echo "<div class='success'><b>" . _T('info_connexion_ok') . '</b></div>';
71
+        echo info_progression_etape(2, 'etape_', 'install/');
72 72
 
73
-		echo info_etape(_T('menu_aide_installation_choix_base') . aider('install2', true));
73
+        echo info_etape(_T('menu_aide_installation_choix_base') . aider('install2', true));
74 74
 
75
-		echo "\n", '<!-- ', sql_version($server_db), ' -->';
76
-		[$checked, $res] = install_etape_2_bases($login_db, $server_db);
75
+        echo "\n", '<!-- ', sql_version($server_db), ' -->';
76
+        [$checked, $res] = install_etape_2_bases($login_db, $server_db);
77 77
 
78
-		$hidden = (defined('_SPIP_CHMOD')
79
-				? ''
80
-				: ("\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />"))
81
-			. predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db);
78
+        $hidden = (defined('_SPIP_CHMOD')
79
+                ? ''
80
+                : ("\n<input type='hidden' name='chmod' value='" . spip_htmlspecialchars($chmod) . "' />"))
81
+            . predef_ou_cache($adresse_db . ($port ? ':' . $port : ''), $login_db, $pass_db, $server_db);
82 82
 
83
-		echo install_etape_2_form($hidden, $checked, $res, 3);
84
-	} else {
85
-		echo info_progression_etape(1, 'etape_', 'install/', true);
83
+        echo install_etape_2_form($hidden, $checked, $res, 3);
84
+    } else {
85
+        echo info_progression_etape(1, 'etape_', 'install/', true);
86 86
 
87
-		echo "<div class='error'>";
88
-		echo info_etape(_T('info_connexion_base'));
89
-		echo '<h3>' . _T('avis_connexion_echec_1') . '</h3>';
90
-		echo '<p>' . _T('avis_connexion_echec_2') . '</p>';
87
+        echo "<div class='error'>";
88
+        echo info_etape(_T('info_connexion_base'));
89
+        echo '<h3>' . _T('avis_connexion_echec_1') . '</h3>';
90
+        echo '<p>' . _T('avis_connexion_echec_2') . '</p>';
91 91
 
92
-		echo "<p style='font-size: small;'>",
93
-		_T('avis_connexion_echec_3'),
94
-		'</p></div>';
95
-	}
92
+        echo "<p style='font-size: small;'>",
93
+        _T('avis_connexion_echec_3'),
94
+        '</p></div>';
95
+    }
96 96
 
97
-	echo install_fin_html();
97
+    echo install_fin_html();
98 98
 }
99 99
 
100 100
 // Liste les bases accessibles,
101 101
 // avec une heuristique pour preselectionner la plus probable
102 102
 
103 103
 function install_etape_2_bases($login_db, $server_db) {
104
-	$res = install_etape_liste_bases($server_db, $login_db);
105
-	if ($res) {
106
-		[$checked, $bases] = $res;
107
-
108
-		return [
109
-			$checked,
110
-			"<label for='choix_db'><b>"
111
-			. _T('texte_choix_base_2')
112
-			. '</b><br />'
113
-			. _T('texte_choix_base_3')
114
-			. '</label>'
115
-			. "<ul>\n<li>"
116
-			. join("</li>\n<li>", $bases)
117
-			. "</li>\n</ul><p>"
118
-			. _T('info_ou')
119
-			. ' '
120
-		];
121
-	}
122
-	$res = '<b>' . _T('avis_lecture_noms_bases_1') . '</b>
104
+    $res = install_etape_liste_bases($server_db, $login_db);
105
+    if ($res) {
106
+        [$checked, $bases] = $res;
107
+
108
+        return [
109
+            $checked,
110
+            "<label for='choix_db'><b>"
111
+            . _T('texte_choix_base_2')
112
+            . '</b><br />'
113
+            . _T('texte_choix_base_3')
114
+            . '</label>'
115
+            . "<ul>\n<li>"
116
+            . join("</li>\n<li>", $bases)
117
+            . "</li>\n</ul><p>"
118
+            . _T('info_ou')
119
+            . ' '
120
+        ];
121
+    }
122
+    $res = '<b>' . _T('avis_lecture_noms_bases_1') . '</b>
123 123
 		' . _T('avis_lecture_noms_bases_2') . '<p>';
124 124
 
125
-	$checked = false;
126
-	if ($login_db) {
127
-		// Si un login comporte un point, le nom de la base est plus
128
-		// probablement le login sans le point -- testons pour savoir
129
-		$test_base = $login_db;
130
-		$ok = sql_selectdb($test_base, $server_db);
131
-		$test_base2 = str_replace('.', '_', $test_base);
132
-		if (sql_selectdb($test_base2, $server_db)) {
133
-			$test_base = $test_base2;
134
-			$ok = true;
135
-		}
136
-
137
-		if ($ok) {
138
-			$res .= _T('avis_lecture_noms_bases_3')
139
-				. '<ul>'
140
-				. '<li><input name="choix_db" value="' . $test_base . "\" type='radio' id='stand' checked='checked' />"
141
-				. "<label for='stand'>" . $test_base . "</label></li>\n"
142
-				. '</ul>'
143
-				. '<p>' . _T('info_ou') . ' ';
144
-			$checked = true;
145
-		}
146
-	}
147
-
148
-	return [$checked, $res];
125
+    $checked = false;
126
+    if ($login_db) {
127
+        // Si un login comporte un point, le nom de la base est plus
128
+        // probablement le login sans le point -- testons pour savoir
129
+        $test_base = $login_db;
130
+        $ok = sql_selectdb($test_base, $server_db);
131
+        $test_base2 = str_replace('.', '_', $test_base);
132
+        if (sql_selectdb($test_base2, $server_db)) {
133
+            $test_base = $test_base2;
134
+            $ok = true;
135
+        }
136
+
137
+        if ($ok) {
138
+            $res .= _T('avis_lecture_noms_bases_3')
139
+                . '<ul>'
140
+                . '<li><input name="choix_db" value="' . $test_base . "\" type='radio' id='stand' checked='checked' />"
141
+                . "<label for='stand'>" . $test_base . "</label></li>\n"
142
+                . '</ul>'
143
+                . '<p>' . _T('info_ou') . ' ';
144
+            $checked = true;
145
+        }
146
+    }
147
+
148
+    return [$checked, $res];
149 149
 }
150 150
 
151 151
 function install_etape_2_form($hidden, $checked, $res, $etape) {
152
-	return generer_form_ecrire('install', (
153
-		"\n<input type='hidden' name='etape' value='$etape' />"
154
-		. $hidden
155
-		. (defined('_INSTALL_NAME_DB')
156
-			? '<h3>' . _T('install_nom_base_hebergeur') . ' <tt>' . _INSTALL_NAME_DB . '</tt>' . '</h3>'
157
-			: "\n<fieldset><legend>" . _T('texte_choix_base_1') . "</legend>\n"
158
-			. $res
159
-			. "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'"
160
-			. ($checked ? '' : " checked='checked'")
161
-			. " />\n<label for='nou'>" . _T('info_creer_base') . "</label></p>\n<p>"
162
-			. "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n"
163
-		)
164
-
165
-		. ((defined('_INSTALL_TABLE_PREFIX')
166
-			or $GLOBALS['table_prefix'] != 'spip')
167
-			? '<h3>' . _T('install_table_prefix_hebergeur') . '  <tt>' . $GLOBALS['table_prefix'] . '</tt>' . '</h3>'
168
-			: '<fieldset><legend>' . _T('texte_choix_table_prefix') . "</legend>\n"
169
-			. "<p><label for='table_prefix'>" . _T('info_table_prefix') . '</label></p><p>'
170
-			. "\n<input type='text' id='tprefix' name='tprefix' class='text' value='"
171
-			. 'spip' # valeur par defaut
172
-			. "' size='20' /></p></fieldset>"
173
-		)
174
-
175
-		. bouton_suivant()));
152
+    return generer_form_ecrire('install', (
153
+        "\n<input type='hidden' name='etape' value='$etape' />"
154
+        . $hidden
155
+        . (defined('_INSTALL_NAME_DB')
156
+            ? '<h3>' . _T('install_nom_base_hebergeur') . ' <tt>' . _INSTALL_NAME_DB . '</tt>' . '</h3>'
157
+            : "\n<fieldset><legend>" . _T('texte_choix_base_1') . "</legend>\n"
158
+            . $res
159
+            . "\n<input name=\"choix_db\" value=\"new_spip\" type='radio' id='nou'"
160
+            . ($checked ? '' : " checked='checked'")
161
+            . " />\n<label for='nou'>" . _T('info_creer_base') . "</label></p>\n<p>"
162
+            . "\n<input type='text' name='table_new' class='text' value=\"spip\" size='20' /></p></fieldset>\n"
163
+        )
164
+
165
+        . ((defined('_INSTALL_TABLE_PREFIX')
166
+            or $GLOBALS['table_prefix'] != 'spip')
167
+            ? '<h3>' . _T('install_table_prefix_hebergeur') . '  <tt>' . $GLOBALS['table_prefix'] . '</tt>' . '</h3>'
168
+            : '<fieldset><legend>' . _T('texte_choix_table_prefix') . "</legend>\n"
169
+            . "<p><label for='table_prefix'>" . _T('info_table_prefix') . '</label></p><p>'
170
+            . "\n<input type='text' id='tprefix' name='tprefix' class='text' value='"
171
+            . 'spip' # valeur par defaut
172
+            . "' size='20' /></p></fieldset>"
173
+        )
174
+
175
+        . bouton_suivant()));
176 176
 }
Please login to merge, or discard this patch.
ecrire/genie/mise_a_jour.php 2 patches
Indentation   +116 added lines, -116 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  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
 /**
@@ -27,15 +27,15 @@  discard block
 block discarded – undo
27 27
  * @return int
28 28
  */
29 29
 function genie_mise_a_jour_dist($t) {
30
-	include_spip('inc/meta');
31
-	$maj = info_maj('spip', 'SPIP', $GLOBALS['spip_version_branche']);
32
-	ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche'] . "|$maj") : '', 'non');
30
+    include_spip('inc/meta');
31
+    $maj = info_maj('spip', 'SPIP', $GLOBALS['spip_version_branche']);
32
+    ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche'] . "|$maj") : '', 'non');
33 33
 
34
-	mise_a_jour_ecran_securite();
34
+    mise_a_jour_ecran_securite();
35 35
 
36
-	spip_log('Verification version SPIP : ' . ($maj ?: 'version a jour'), 'verifie_maj');
36
+    spip_log('Verification version SPIP : ' . ($maj ?: 'version a jour'), 'verifie_maj');
37 37
 
38
-	return 1;
38
+    return 1;
39 39
 }
40 40
 
41 41
 // TODO : fournir une URL sur spip.net pour maitriser la diffusion d'une nouvelle version de l'ecran via l'update auto
@@ -52,46 +52,46 @@  discard block
 block discarded – undo
52 52
  * ou de ne repondre une 304 que si le md5 est bon
53 53
  */
54 54
 function mise_a_jour_ecran_securite() {
55
-	// TODO : url https avec verification du certificat
56
-	return;
57
-
58
-	// si l'ecran n'est pas deja present ou pas updatable, sortir
59
-	if (
60
-		!_URL_ECRAN_SECURITE
61
-		or !file_exists($filename = _DIR_ETC . 'ecran_securite.php')
62
-		or !is_writable($filename)
63
-		or !$last_modified = filemtime($filename)
64
-		or !$md5 = md5_file($filename)
65
-	) {
66
-		return false;
67
-	}
68
-
69
-	include_spip('inc/distant');
70
-	$tmp_file = _DIR_TMP . 'ecran_securite.php';
71
-	$url = parametre_url(_URL_ECRAN_SECURITE, 'md5', $md5);
72
-	$url = parametre_url($url, 'vspip', $GLOBALS['spip_version_branche']);
73
-	$res = recuperer_url($url, [
74
-		'if_modified_since' => $last_modified,
75
-		'file' => $tmp_file
76
-	]);
77
-
78
-	// si il y a une version plus recente que l'on a recu correctement
79
-	if (
80
-		$res['status'] == 200
81
-		and $res['length']
82
-		and $tmp_file = $res['file']
83
-	) {
84
-		if ($md5 !== md5_file($tmp_file)) {
85
-			// on essaye de l'inclure pour verifier que ca ne fait pas erreur fatale
86
-			include_once $tmp_file;
87
-			// ok, on le copie a la place de l'ecran existant
88
-			// en backupant l'ecran avant, au cas ou
89
-			@copy($filename, $filename . '-bck-' . date('Y-m-d-His', $last_modified));
90
-			@rename($tmp_file, $filename);
91
-		} else {
92
-			@unlink($tmp_file);
93
-		}
94
-	}
55
+    // TODO : url https avec verification du certificat
56
+    return;
57
+
58
+    // si l'ecran n'est pas deja present ou pas updatable, sortir
59
+    if (
60
+        !_URL_ECRAN_SECURITE
61
+        or !file_exists($filename = _DIR_ETC . 'ecran_securite.php')
62
+        or !is_writable($filename)
63
+        or !$last_modified = filemtime($filename)
64
+        or !$md5 = md5_file($filename)
65
+    ) {
66
+        return false;
67
+    }
68
+
69
+    include_spip('inc/distant');
70
+    $tmp_file = _DIR_TMP . 'ecran_securite.php';
71
+    $url = parametre_url(_URL_ECRAN_SECURITE, 'md5', $md5);
72
+    $url = parametre_url($url, 'vspip', $GLOBALS['spip_version_branche']);
73
+    $res = recuperer_url($url, [
74
+        'if_modified_since' => $last_modified,
75
+        'file' => $tmp_file
76
+    ]);
77
+
78
+    // si il y a une version plus recente que l'on a recu correctement
79
+    if (
80
+        $res['status'] == 200
81
+        and $res['length']
82
+        and $tmp_file = $res['file']
83
+    ) {
84
+        if ($md5 !== md5_file($tmp_file)) {
85
+            // on essaye de l'inclure pour verifier que ca ne fait pas erreur fatale
86
+            include_once $tmp_file;
87
+            // ok, on le copie a la place de l'ecran existant
88
+            // en backupant l'ecran avant, au cas ou
89
+            @copy($filename, $filename . '-bck-' . date('Y-m-d-His', $last_modified));
90
+            @rename($tmp_file, $filename);
91
+        } else {
92
+            @unlink($tmp_file);
93
+        }
94
+    }
95 95
 }
96 96
 
97 97
 /**
@@ -109,54 +109,54 @@  discard block
 block discarded – undo
109 109
  * @return string
110 110
  */
111 111
 function info_maj($dir, $file, $version) {
112
-	include_spip('inc/plugin');
113
-
114
-	[$maj, $min, $rev] = preg_split('/\D+/', $version);
115
-
116
-	$nom = _DIR_CACHE_XML . _VERSIONS_LISTE;
117
-	$page = !file_exists($nom) ? '' : file_get_contents($nom);
118
-	$page = info_maj_cache($nom, $dir, $page);
119
-
120
-	// reperer toutes les versions de numero majeur superieur ou egal
121
-	// (a revoir quand on arrivera a SPIP V10 ...)
122
-	$p = substr('0123456789', intval($maj));
123
-	$p = ',/' . $file . '\D+([' . $p . ']+)\D+(\d+)(\D+(\d+))?.*?[.]zip",i';
124
-	preg_match_all($p, $page, $m, PREG_SET_ORDER);
125
-	$page = $page_majeure = '';
126
-
127
-	// branche en cours d'utilisation
128
-	$branche = implode('.', array_slice(explode('.', $version, 3), 0, 2));
129
-
130
-	foreach ($m as $v) {
131
-		$v = array_pad($v, 5, 0);
132
-		[, $maj2, $min2, , $rev2] = $v;
133
-		$branche_maj = $maj2 . '.' . $min2;
134
-		$version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
135
-		// d'abord les mises à jour de la même branche
136
-		if (
137
-			(spip_version_compare($version, $version_maj, '<'))
138
-			and (spip_version_compare($page, $version_maj, '<'))
139
-			and spip_version_compare($branche, $branche_maj, '=')
140
-		) {
141
-			$page = $version_maj;
142
-		}
143
-		// puis les mises à jours majeures
144
-		if (
145
-			(spip_version_compare($version, $version_maj, '<'))
146
-			and (spip_version_compare($page, $version_maj, '<'))
147
-			and spip_version_compare($branche, $branche_maj, '<')
148
-		) {
149
-			$page_majeure = $version_maj;
150
-		}
151
-	}
152
-	if (!$page and !$page_majeure) {
153
-		return '';
154
-	}
155
-
156
-	$message = $page ? _T('nouvelle_version_spip', ['version' => $page]) . ($page_majeure ? ' | ' : '') : '';
157
-	$message .= $page_majeure ? _T('nouvelle_version_spip_majeure', ['version' => $page_majeure]) : '';
158
-
159
-	return "<a class='info_maj_spip' href='https://www.spip.net/fr_update' title='$page'>" . $message . '</a>';
112
+    include_spip('inc/plugin');
113
+
114
+    [$maj, $min, $rev] = preg_split('/\D+/', $version);
115
+
116
+    $nom = _DIR_CACHE_XML . _VERSIONS_LISTE;
117
+    $page = !file_exists($nom) ? '' : file_get_contents($nom);
118
+    $page = info_maj_cache($nom, $dir, $page);
119
+
120
+    // reperer toutes les versions de numero majeur superieur ou egal
121
+    // (a revoir quand on arrivera a SPIP V10 ...)
122
+    $p = substr('0123456789', intval($maj));
123
+    $p = ',/' . $file . '\D+([' . $p . ']+)\D+(\d+)(\D+(\d+))?.*?[.]zip",i';
124
+    preg_match_all($p, $page, $m, PREG_SET_ORDER);
125
+    $page = $page_majeure = '';
126
+
127
+    // branche en cours d'utilisation
128
+    $branche = implode('.', array_slice(explode('.', $version, 3), 0, 2));
129
+
130
+    foreach ($m as $v) {
131
+        $v = array_pad($v, 5, 0);
132
+        [, $maj2, $min2, , $rev2] = $v;
133
+        $branche_maj = $maj2 . '.' . $min2;
134
+        $version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
135
+        // d'abord les mises à jour de la même branche
136
+        if (
137
+            (spip_version_compare($version, $version_maj, '<'))
138
+            and (spip_version_compare($page, $version_maj, '<'))
139
+            and spip_version_compare($branche, $branche_maj, '=')
140
+        ) {
141
+            $page = $version_maj;
142
+        }
143
+        // puis les mises à jours majeures
144
+        if (
145
+            (spip_version_compare($version, $version_maj, '<'))
146
+            and (spip_version_compare($page, $version_maj, '<'))
147
+            and spip_version_compare($branche, $branche_maj, '<')
148
+        ) {
149
+            $page_majeure = $version_maj;
150
+        }
151
+    }
152
+    if (!$page and !$page_majeure) {
153
+        return '';
154
+    }
155
+
156
+    $message = $page ? _T('nouvelle_version_spip', ['version' => $page]) . ($page_majeure ? ' | ' : '') : '';
157
+    $message .= $page_majeure ? _T('nouvelle_version_spip_majeure', ['version' => $page_majeure]) : '';
158
+
159
+    return "<a class='info_maj_spip' href='https://www.spip.net/fr_update' title='$page'>" . $message . '</a>';
160 160
 }
161 161
 
162 162
 /**
@@ -177,25 +177,25 @@  discard block
 block discarded – undo
177 177
  *     Contenu du fichier de cache de l'info de maj de SPIP.
178 178
  */
179 179
 function info_maj_cache($nom, $dir, $page = '') {
180
-	include_spip('inc/acces');
181
-	$alea_ephemere = charger_aleas();
182
-	$re = '<archives id="a' . $alea_ephemere . '">';
183
-	if (preg_match("/$re/", $page)) {
184
-		return $page;
185
-	}
186
-
187
-	$url = _VERSIONS_SERVEUR . $dir . '/' . _VERSIONS_LISTE;
188
-	$a = file_exists($nom) ? filemtime($nom) : '';
189
-	include_spip('inc/distant');
190
-	$res = recuperer_url_cache($url, ['if_modified_since' => $a]);
191
-	// Si rien de neuf (ou inaccessible), garder l'ancienne
192
-	if ($res) {
193
-		$page = $res['page'] ?: $page;
194
-	}
195
-	// Placer l'indicateur de fraicheur
196
-	$page = preg_replace('/^<archives.*?>/', $re, $page);
197
-	sous_repertoire(_DIR_CACHE_XML);
198
-	ecrire_fichier($nom, $page);
199
-
200
-	return $page;
180
+    include_spip('inc/acces');
181
+    $alea_ephemere = charger_aleas();
182
+    $re = '<archives id="a' . $alea_ephemere . '">';
183
+    if (preg_match("/$re/", $page)) {
184
+        return $page;
185
+    }
186
+
187
+    $url = _VERSIONS_SERVEUR . $dir . '/' . _VERSIONS_LISTE;
188
+    $a = file_exists($nom) ? filemtime($nom) : '';
189
+    include_spip('inc/distant');
190
+    $res = recuperer_url_cache($url, ['if_modified_since' => $a]);
191
+    // Si rien de neuf (ou inaccessible), garder l'ancienne
192
+    if ($res) {
193
+        $page = $res['page'] ?: $page;
194
+    }
195
+    // Placer l'indicateur de fraicheur
196
+    $page = preg_replace('/^<archives.*?>/', $re, $page);
197
+    sous_repertoire(_DIR_CACHE_XML);
198
+    ecrire_fichier($nom, $page);
199
+
200
+    return $page;
201 201
 }
Please login to merge, or discard this patch.
Spacing   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -29,11 +29,11 @@  discard block
 block discarded – undo
29 29
 function genie_mise_a_jour_dist($t) {
30 30
 	include_spip('inc/meta');
31 31
 	$maj = info_maj('spip', 'SPIP', $GLOBALS['spip_version_branche']);
32
-	ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche'] . "|$maj") : '', 'non');
32
+	ecrire_meta('info_maj_spip', $maj ? ($GLOBALS['spip_version_branche']."|$maj") : '', 'non');
33 33
 
34 34
 	mise_a_jour_ecran_securite();
35 35
 
36
-	spip_log('Verification version SPIP : ' . ($maj ?: 'version a jour'), 'verifie_maj');
36
+	spip_log('Verification version SPIP : '.($maj ?: 'version a jour'), 'verifie_maj');
37 37
 
38 38
 	return 1;
39 39
 }
@@ -58,7 +58,7 @@  discard block
 block discarded – undo
58 58
 	// si l'ecran n'est pas deja present ou pas updatable, sortir
59 59
 	if (
60 60
 		!_URL_ECRAN_SECURITE
61
-		or !file_exists($filename = _DIR_ETC . 'ecran_securite.php')
61
+		or !file_exists($filename = _DIR_ETC.'ecran_securite.php')
62 62
 		or !is_writable($filename)
63 63
 		or !$last_modified = filemtime($filename)
64 64
 		or !$md5 = md5_file($filename)
@@ -67,7 +67,7 @@  discard block
 block discarded – undo
67 67
 	}
68 68
 
69 69
 	include_spip('inc/distant');
70
-	$tmp_file = _DIR_TMP . 'ecran_securite.php';
70
+	$tmp_file = _DIR_TMP.'ecran_securite.php';
71 71
 	$url = parametre_url(_URL_ECRAN_SECURITE, 'md5', $md5);
72 72
 	$url = parametre_url($url, 'vspip', $GLOBALS['spip_version_branche']);
73 73
 	$res = recuperer_url($url, [
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
 			include_once $tmp_file;
87 87
 			// ok, on le copie a la place de l'ecran existant
88 88
 			// en backupant l'ecran avant, au cas ou
89
-			@copy($filename, $filename . '-bck-' . date('Y-m-d-His', $last_modified));
89
+			@copy($filename, $filename.'-bck-'.date('Y-m-d-His', $last_modified));
90 90
 			@rename($tmp_file, $filename);
91 91
 		} else {
92 92
 			@unlink($tmp_file);
@@ -113,14 +113,14 @@  discard block
 block discarded – undo
113 113
 
114 114
 	[$maj, $min, $rev] = preg_split('/\D+/', $version);
115 115
 
116
-	$nom = _DIR_CACHE_XML . _VERSIONS_LISTE;
116
+	$nom = _DIR_CACHE_XML._VERSIONS_LISTE;
117 117
 	$page = !file_exists($nom) ? '' : file_get_contents($nom);
118 118
 	$page = info_maj_cache($nom, $dir, $page);
119 119
 
120 120
 	// reperer toutes les versions de numero majeur superieur ou egal
121 121
 	// (a revoir quand on arrivera a SPIP V10 ...)
122 122
 	$p = substr('0123456789', intval($maj));
123
-	$p = ',/' . $file . '\D+([' . $p . ']+)\D+(\d+)(\D+(\d+))?.*?[.]zip",i';
123
+	$p = ',/'.$file.'\D+(['.$p.']+)\D+(\d+)(\D+(\d+))?.*?[.]zip",i';
124 124
 	preg_match_all($p, $page, $m, PREG_SET_ORDER);
125 125
 	$page = $page_majeure = '';
126 126
 
@@ -129,9 +129,9 @@  discard block
 block discarded – undo
129 129
 
130 130
 	foreach ($m as $v) {
131 131
 		$v = array_pad($v, 5, 0);
132
-		[, $maj2, $min2, , $rev2] = $v;
133
-		$branche_maj = $maj2 . '.' . $min2;
134
-		$version_maj = $maj2 . '.' . $min2 . '.' . $rev2;
132
+		[, $maj2, $min2,, $rev2] = $v;
133
+		$branche_maj = $maj2.'.'.$min2;
134
+		$version_maj = $maj2.'.'.$min2.'.'.$rev2;
135 135
 		// d'abord les mises à jour de la même branche
136 136
 		if (
137 137
 			(spip_version_compare($version, $version_maj, '<'))
@@ -153,10 +153,10 @@  discard block
 block discarded – undo
153 153
 		return '';
154 154
 	}
155 155
 
156
-	$message = $page ? _T('nouvelle_version_spip', ['version' => $page]) . ($page_majeure ? ' | ' : '') : '';
156
+	$message = $page ? _T('nouvelle_version_spip', ['version' => $page]).($page_majeure ? ' | ' : '') : '';
157 157
 	$message .= $page_majeure ? _T('nouvelle_version_spip_majeure', ['version' => $page_majeure]) : '';
158 158
 
159
-	return "<a class='info_maj_spip' href='https://www.spip.net/fr_update' title='$page'>" . $message . '</a>';
159
+	return "<a class='info_maj_spip' href='https://www.spip.net/fr_update' title='$page'>".$message.'</a>';
160 160
 }
161 161
 
162 162
 /**
@@ -179,12 +179,12 @@  discard block
 block discarded – undo
179 179
 function info_maj_cache($nom, $dir, $page = '') {
180 180
 	include_spip('inc/acces');
181 181
 	$alea_ephemere = charger_aleas();
182
-	$re = '<archives id="a' . $alea_ephemere . '">';
182
+	$re = '<archives id="a'.$alea_ephemere.'">';
183 183
 	if (preg_match("/$re/", $page)) {
184 184
 		return $page;
185 185
 	}
186 186
 
187
-	$url = _VERSIONS_SERVEUR . $dir . '/' . _VERSIONS_LISTE;
187
+	$url = _VERSIONS_SERVEUR.$dir.'/'._VERSIONS_LISTE;
188 188
 	$a = file_exists($nom) ? filemtime($nom) : '';
189 189
 	include_spip('inc/distant');
190 190
 	$res = recuperer_url_cache($url, ['if_modified_since' => $a]);
Please login to merge, or discard this patch.
ecrire/genie/mail.php 2 patches
Indentation   +27 added lines, -27 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  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
 /**
@@ -32,35 +32,35 @@  discard block
 block discarded – undo
32 32
  * @return int
33 33
  */
34 34
 function genie_mail_dist($t) {
35
-	$adresse_neuf = $GLOBALS['meta']['adresse_neuf'];
36
-	$jours_neuf = $GLOBALS['meta']['jours_neuf'];
35
+    $adresse_neuf = $GLOBALS['meta']['adresse_neuf'];
36
+    $jours_neuf = $GLOBALS['meta']['jours_neuf'];
37 37
 
38
-	$now = time();
39
-	if (!isset($GLOBALS['meta']['dernier_envoi_neuf'])) {
40
-		ecrire_meta('dernier_envoi_neuf', date('Y-m-d H:i:s', $now - (3600 * 24 * $jours_neuf)));
41
-	}
38
+    $now = time();
39
+    if (!isset($GLOBALS['meta']['dernier_envoi_neuf'])) {
40
+        ecrire_meta('dernier_envoi_neuf', date('Y-m-d H:i:s', $now - (3600 * 24 * $jours_neuf)));
41
+    }
42 42
 
43
-	$page = recuperer_fond(
44
-		'nouveautes',
45
-		['date' => $GLOBALS['meta']['dernier_envoi_neuf'], 'jours_neuf' => $jours_neuf],
46
-		['raw' => true]
47
-	);
43
+    $page = recuperer_fond(
44
+        'nouveautes',
45
+        ['date' => $GLOBALS['meta']['dernier_envoi_neuf'], 'jours_neuf' => $jours_neuf],
46
+        ['raw' => true]
47
+    );
48 48
 
49
-	if (strlen(trim($page['texte']))) {
50
-		// recuperer les entetes envoyes par #HTTP_HEADER
51
-		$headers = '';
52
-		if (isset($page['entetes']) and is_countable($page['entetes']) ? count($page['entetes']) : 0) {
53
-			foreach ($page['entetes'] as $k => $v) {
54
-				$headers .= (strlen($v) ? "$k: $v" : $k) . "\n";
55
-			}
56
-		}
49
+    if (strlen(trim($page['texte']))) {
50
+        // recuperer les entetes envoyes par #HTTP_HEADER
51
+        $headers = '';
52
+        if (isset($page['entetes']) and is_countable($page['entetes']) ? count($page['entetes']) : 0) {
53
+            foreach ($page['entetes'] as $k => $v) {
54
+                $headers .= (strlen($v) ? "$k: $v" : $k) . "\n";
55
+            }
56
+        }
57 57
 
58
-		include_spip('inc/notifications');
59
-		notifications_envoyer_mails($adresse_neuf, $page['texte'], '', '', $headers);
60
-		ecrire_meta('dernier_envoi_neuf', date('Y-m-d H:i:s', $now));
61
-	} else {
62
-		spip_log("mail nouveautes : rien de neuf depuis $jours_neuf jours");
63
-	}
58
+        include_spip('inc/notifications');
59
+        notifications_envoyer_mails($adresse_neuf, $page['texte'], '', '', $headers);
60
+        ecrire_meta('dernier_envoi_neuf', date('Y-m-d H:i:s', $now));
61
+    } else {
62
+        spip_log("mail nouveautes : rien de neuf depuis $jours_neuf jours");
63
+    }
64 64
 
65
-	return 1;
65
+    return 1;
66 66
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -51,7 +51,7 @@
 block discarded – undo
51 51
 		$headers = '';
52 52
 		if (isset($page['entetes']) and is_countable($page['entetes']) ? count($page['entetes']) : 0) {
53 53
 			foreach ($page['entetes'] as $k => $v) {
54
-				$headers .= (strlen($v) ? "$k: $v" : $k) . "\n";
54
+				$headers .= (strlen($v) ? "$k: $v" : $k)."\n";
55 55
 			}
56 56
 		}
57 57
 
Please login to merge, or discard this patch.
ecrire/req/sqlite_fonctions.php 2 patches
Spacing   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -333,7 +333,7 @@  discard block
 block discarded – undo
333 333
  * @return string
334 334
  */
335 335
 function _sqlite_func_preg_replace($quoi, $cherche, $remplace) {
336
-	$return = preg_replace('%' . $cherche . '%', $remplace, $quoi);
336
+	$return = preg_replace('%'.$cherche.'%', $remplace, $quoi);
337 337
 
338 338
 	#spip_log("preg_replace : $quoi, $cherche, $remplace, $return",'sqlite.'._LOG_DEBUG);
339 339
 	return $return;
@@ -409,7 +409,7 @@  discard block
 block discarded – undo
409 409
 	// il faut enlever un niveau d'echappement pour être homogène à mysql
410 410
 	$cherche = str_replace('\\\\', '\\', $cherche);
411 411
 	$u = $GLOBALS['meta']['pcre_u'] ?? 'u';
412
-	$return = preg_match('%' . $cherche . '%imsS' . $u, $quoi);
412
+	$return = preg_match('%'.$cherche.'%imsS'.$u, $quoi);
413 413
 
414 414
 	#spip_log("regexp_replace : $quoi, $cherche, $remplace, $return",'sqlite.'._LOG_DEBUG);
415 415
 	return $return;
@@ -461,7 +461,7 @@  discard block
 block discarded – undo
461 461
 		$count = 0;
462 462
 		str_replace($mysql_to_strftime_not_ok, '', $conv, $count);
463 463
 		if ($count > 0) {
464
-			spip_log("DATE_FORMAT : At least one parameter can't be parsed by strftime with format '$conv'", 'sqlite.' . _LOG_ERREUR);
464
+			spip_log("DATE_FORMAT : At least one parameter can't be parsed by strftime with format '$conv'", 'sqlite.'._LOG_ERREUR);
465 465
 		}
466 466
 		$to_strftime[$conv] = str_replace(array_keys($mysql_to_strftime), $mysql_to_strftime, $conv);
467 467
 	}
@@ -480,7 +480,7 @@  discard block
 block discarded – undo
480 480
  */
481 481
 function _sqlite_func_to_days($d) {
482 482
 	static $offset = 719528; // nb de jour entre 0000-00-00 et timestamp 0=1970-01-01
483
-	$result = $offset + (int)ceil(_sqlite_func_unix_timestamp($d) / (24 * 3600));
483
+	$result = $offset + (int) ceil(_sqlite_func_unix_timestamp($d) / (24 * 3600));
484 484
 
485 485
 	#spip_log("Passage avec TO_DAYS : $d, $result",'sqlite.'._LOG_DEBUG);
486 486
 	return $result;
Please login to merge, or discard this patch.
Indentation   +216 added lines, -216 removed lines patch added patch discarded remove patch
@@ -22,7 +22,7 @@  discard block
 block discarded – undo
22 22
  */
23 23
 
24 24
 if (!defined('_ECRIRE_INC_VERSION')) {
25
-	return;
25
+    return;
26 26
 }
27 27
 
28 28
 /**
@@ -43,90 +43,90 @@  discard block
 block discarded – undo
43 43
  */
44 44
 function _sqlite_init_functions(&$sqlite) {
45 45
 
46
-	if (!$sqlite) {
47
-		return false;
48
-	}
46
+    if (!$sqlite) {
47
+        return false;
48
+    }
49 49
 
50 50
 
51
-	$fonctions = [
52
-		// A
53
-		'ACOS'  => ['acos', 1],
54
-		'ASIN'  => ['asin', 1],
55
-		'ATAN'  => ['atan', 1], // mysql accepte 2 params comme atan2… hum ?
56
-		'ATAN2' => ['atan2', 2],
51
+    $fonctions = [
52
+        // A
53
+        'ACOS'  => ['acos', 1],
54
+        'ASIN'  => ['asin', 1],
55
+        'ATAN'  => ['atan', 1], // mysql accepte 2 params comme atan2… hum ?
56
+        'ATAN2' => ['atan2', 2],
57 57
 
58
-		// C
59
-		'CEIL'   => ['_sqlite_func_ceil', 1],
60
-		'CONCAT' => ['_sqlite_func_concat', -1],
61
-		'COS'    => ['cos', 1],
58
+        // C
59
+        'CEIL'   => ['_sqlite_func_ceil', 1],
60
+        'CONCAT' => ['_sqlite_func_concat', -1],
61
+        'COS'    => ['cos', 1],
62 62
 
63
-		// D
64
-		'DATE_FORMAT' => ['_sqlite_func_date_format', 2], // équivalent a strftime avec args inversés
65
-		'DAYOFMONTH'  => ['_sqlite_func_dayofmonth', 1],
66
-		'DEGREES'     => ['rad2deg', 1],
63
+        // D
64
+        'DATE_FORMAT' => ['_sqlite_func_date_format', 2], // équivalent a strftime avec args inversés
65
+        'DAYOFMONTH'  => ['_sqlite_func_dayofmonth', 1],
66
+        'DEGREES'     => ['rad2deg', 1],
67 67
 
68
-		// E
69
-		'EXTRAIRE_MULTI' => ['_sqlite_func_extraire_multi', 2], // specifique a SPIP/sql_multi()
70
-		'EXP'            => ['exp', 1],
68
+        // E
69
+        'EXTRAIRE_MULTI' => ['_sqlite_func_extraire_multi', 2], // specifique a SPIP/sql_multi()
70
+        'EXP'            => ['exp', 1],
71 71
 
72
-		// F
73
-		'FIND_IN_SET' => ['_sqlite_func_find_in_set', 2],
74
-		'FLOOR'       => ['_sqlite_func_floor', 1],
72
+        // F
73
+        'FIND_IN_SET' => ['_sqlite_func_find_in_set', 2],
74
+        'FLOOR'       => ['_sqlite_func_floor', 1],
75 75
 
76
-		// G
77
-		'GREATEST' => ['_sqlite_func_greatest', -1],
76
+        // G
77
+        'GREATEST' => ['_sqlite_func_greatest', -1],
78 78
 
79
-		// I
80
-		'IF'     => ['_sqlite_func_if', 3],
81
-		'INSERT' => ['_sqlite_func_insert', 4],
82
-		'INSTR'  => ['_sqlite_func_instr', 2],
79
+        // I
80
+        'IF'     => ['_sqlite_func_if', 3],
81
+        'INSERT' => ['_sqlite_func_insert', 4],
82
+        'INSTR'  => ['_sqlite_func_instr', 2],
83 83
 
84
-		// L
85
-		'LEAST'  => ['_sqlite_func_least', -1],
86
-		'_LEFT'  => ['_sqlite_func_left', 2],
84
+        // L
85
+        'LEAST'  => ['_sqlite_func_least', -1],
86
+        '_LEFT'  => ['_sqlite_func_left', 2],
87 87
 
88
-		// N
89
-		'NOW' => ['_sqlite_func_now', 0],
88
+        // N
89
+        'NOW' => ['_sqlite_func_now', 0],
90 90
 
91
-		// M
92
-		'MD5'   => ['md5', 1],
93
-		'MONTH' => ['_sqlite_func_month', 1],
91
+        // M
92
+        'MD5'   => ['md5', 1],
93
+        'MONTH' => ['_sqlite_func_month', 1],
94 94
 
95
-		// P
96
-		'PREG_REPLACE' => ['_sqlite_func_preg_replace', 3],
95
+        // P
96
+        'PREG_REPLACE' => ['_sqlite_func_preg_replace', 3],
97 97
 
98
-		// R
99
-		'RADIANS' => ['deg2rad', 1],
100
-		'RAND'    => ['_sqlite_func_rand', 0], // sinon random() v2.4
101
-		'REGEXP'  => ['_sqlite_func_regexp_match', 2], // critere REGEXP supporte a partir de v3.3.2
102
-		'RIGHT'   => ['_sqlite_func_right', 2],
98
+        // R
99
+        'RADIANS' => ['deg2rad', 1],
100
+        'RAND'    => ['_sqlite_func_rand', 0], // sinon random() v2.4
101
+        'REGEXP'  => ['_sqlite_func_regexp_match', 2], // critere REGEXP supporte a partir de v3.3.2
102
+        'RIGHT'   => ['_sqlite_func_right', 2],
103 103
 
104
-		// S
105
-		'SETTYPE'   => ['settype', 2], // CAST present en v3.2.3
106
-		'SIN'       => ['sin', 1],
107
-		'SQRT'      => ['sqrt', 1],
108
-		'SUBSTRING' => ['_sqlite_func_substring' /*, 3*/], // peut etre appelee avec 2 ou 3 arguments, index base 1 et non 0
104
+        // S
105
+        'SETTYPE'   => ['settype', 2], // CAST present en v3.2.3
106
+        'SIN'       => ['sin', 1],
107
+        'SQRT'      => ['sqrt', 1],
108
+        'SUBSTRING' => ['_sqlite_func_substring' /*, 3*/], // peut etre appelee avec 2 ou 3 arguments, index base 1 et non 0
109 109
 
110
-		// T
111
-		'TAN'           => ['tan', 1],
112
-		'TIMESTAMPDIFF' => ['_sqlite_timestampdiff'    /*, 3*/],
113
-		'TO_DAYS'       => ['_sqlite_func_to_days', 1],
110
+        // T
111
+        'TAN'           => ['tan', 1],
112
+        'TIMESTAMPDIFF' => ['_sqlite_timestampdiff'    /*, 3*/],
113
+        'TO_DAYS'       => ['_sqlite_func_to_days', 1],
114 114
 
115
-		// U
116
-		'UNIX_TIMESTAMP' => ['_sqlite_func_unix_timestamp', 1],
115
+        // U
116
+        'UNIX_TIMESTAMP' => ['_sqlite_func_unix_timestamp', 1],
117 117
 
118
-		// V
119
-		'VIDE' => ['_sqlite_func_vide', 0], // du vide pour SELECT 0 as x ... ORDER BY x -> ORDER BY vide()
118
+        // V
119
+        'VIDE' => ['_sqlite_func_vide', 0], // du vide pour SELECT 0 as x ... ORDER BY x -> ORDER BY vide()
120 120
 
121
-		// Y
122
-		'YEAR' => ['_sqlite_func_year', 1]
123
-	];
121
+        // Y
122
+        'YEAR' => ['_sqlite_func_year', 1]
123
+    ];
124 124
 
125
-	foreach ($fonctions as $f => $r) {
126
-		_sqlite_add_function($sqlite, $f, $r);
127
-	}
125
+    foreach ($fonctions as $f => $r) {
126
+        _sqlite_add_function($sqlite, $f, $r);
127
+    }
128 128
 
129
-	#spip_log('functions sqlite chargees ','sqlite.'._LOG_DEBUG);
129
+    #spip_log('functions sqlite chargees ','sqlite.'._LOG_DEBUG);
130 130
 }
131 131
 
132 132
 
@@ -147,9 +147,9 @@  discard block
 block discarded – undo
147 147
  *
148 148
 **/
149 149
 function _sqlite_add_function(&$sqlite, &$f, &$r) {
150
-	isset($r[1])
151
-		? $sqlite->sqliteCreateFunction($f, $r[0], $r[1])
152
-		: $sqlite->sqliteCreateFunction($f, $r[0]);
150
+    isset($r[1])
151
+        ? $sqlite->sqliteCreateFunction($f, $r[0], $r[1])
152
+        : $sqlite->sqliteCreateFunction($f, $r[0]);
153 153
 }
154 154
 
155 155
 /**
@@ -159,7 +159,7 @@  discard block
 block discarded – undo
159 159
  * @return int
160 160
  */
161 161
 function _sqlite_func_ceil($a) {
162
-	return ceil($a);
162
+    return ceil($a);
163 163
 }
164 164
 
165 165
 /**
@@ -169,7 +169,7 @@  discard block
 block discarded – undo
169 169
  * @return string
170 170
  */
171 171
 function _sqlite_func_concat(...$args) {
172
-	return join('', $args);
172
+    return join('', $args);
173 173
 }
174 174
 
175 175
 
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
  * @return string
183 183
  */
184 184
 function _sqlite_func_dayofmonth($d) {
185
-	return _sqlite_func_date('d', $d);
185
+    return _sqlite_func_date('d', $d);
186 186
 }
187 187
 
188 188
 
@@ -194,15 +194,15 @@  discard block
 block discarded – undo
194 194
  * @return int
195 195
  */
196 196
 function _sqlite_func_find_in_set($num, $set) {
197
-	$rank = 0;
198
-	foreach (explode(',', $set) as $v) {
199
-		if ($v == $num) {
200
-			return (++$rank);
201
-		}
202
-		$rank++;
203
-	}
204
-
205
-	return 0;
197
+    $rank = 0;
198
+    foreach (explode(',', $set) as $v) {
199
+        if ($v == $num) {
200
+            return (++$rank);
201
+        }
202
+        $rank++;
203
+    }
204
+
205
+    return 0;
206 206
 }
207 207
 
208 208
 /**
@@ -212,7 +212,7 @@  discard block
 block discarded – undo
212 212
  * @return int
213 213
  */
214 214
 function _sqlite_func_floor($a) {
215
-	return floor($a);
215
+    return floor($a);
216 216
 }
217 217
 
218 218
 
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
  * @return mixed
226 226
  */
227 227
 function _sqlite_func_if($bool, $oui, $non) {
228
-	return ($bool) ? $oui : $non;
228
+    return ($bool) ? $oui : $non;
229 229
 }
230 230
 
231 231
 
@@ -242,10 +242,10 @@  discard block
 block discarded – undo
242 242
  * @return string
243 243
  */
244 244
 function _sqlite_func_insert($s, $index, $longueur, $chaine) {
245
-	return
246
-		substr($s, 0, $index)
247
-		. $chaine
248
-		. substr(substr($s, $index), $longueur);
245
+    return
246
+        substr($s, 0, $index)
247
+        . $chaine
248
+        . substr(substr($s, $index), $longueur);
249 249
 }
250 250
 
251 251
 
@@ -257,7 +257,7 @@  discard block
 block discarded – undo
257 257
  * @return int
258 258
  */
259 259
 function _sqlite_func_instr($s, $search) {
260
-	return strpos($s, $search);
260
+    return strpos($s, $search);
261 261
 }
262 262
 
263 263
 
@@ -268,7 +268,7 @@  discard block
 block discarded – undo
268 268
  * @return int
269 269
  */
270 270
 function _sqlite_func_least(...$args) {
271
-	return min($args);
271
+    return min($args);
272 272
 }
273 273
 
274 274
 
@@ -279,7 +279,7 @@  discard block
 block discarded – undo
279 279
  * @return int
280 280
  */
281 281
 function _sqlite_func_greatest(...$args) {
282
-	return max($args);
282
+    return max($args);
283 283
 }
284 284
 
285 285
 
@@ -291,7 +291,7 @@  discard block
 block discarded – undo
291 291
  * @return string
292 292
  */
293 293
 function _sqlite_func_left($s, $lenght) {
294
-	return substr($s, $lenght);
294
+    return substr($s, $lenght);
295 295
 }
296 296
 
297 297
 /**
@@ -301,13 +301,13 @@  discard block
 block discarded – undo
301 301
  * @return string
302 302
  */
303 303
 function _sqlite_func_now($force_refresh = false) {
304
-	static $now = null;
305
-	if (is_null($now) or $force_refresh) {
306
-		$now = date('Y-m-d H:i:s');
307
-	}
304
+    static $now = null;
305
+    if (is_null($now) or $force_refresh) {
306
+        $now = date('Y-m-d H:i:s');
307
+    }
308 308
 
309
-	#spip_log("Passage avec NOW : $now | ".time(),'sqlite.'._LOG_DEBUG);
310
-	return $now;
309
+    #spip_log("Passage avec NOW : $now | ".time(),'sqlite.'._LOG_DEBUG);
310
+    return $now;
311 311
 }
312 312
 
313 313
 
@@ -320,7 +320,7 @@  discard block
 block discarded – undo
320 320
  * @return string
321 321
  */
322 322
 function _sqlite_func_month($d) {
323
-	return _sqlite_func_date('m', $d);
323
+    return _sqlite_func_date('m', $d);
324 324
 }
325 325
 
326 326
 
@@ -333,10 +333,10 @@  discard block
 block discarded – undo
333 333
  * @return string
334 334
  */
335 335
 function _sqlite_func_preg_replace($quoi, $cherche, $remplace) {
336
-	$return = preg_replace('%' . $cherche . '%', $remplace, $quoi);
336
+    $return = preg_replace('%' . $cherche . '%', $remplace, $quoi);
337 337
 
338
-	#spip_log("preg_replace : $quoi, $cherche, $remplace, $return",'sqlite.'._LOG_DEBUG);
339
-	return $return;
338
+    #spip_log("preg_replace : $quoi, $cherche, $remplace, $return",'sqlite.'._LOG_DEBUG);
339
+    return $return;
340 340
 }
341 341
 
342 342
 /**
@@ -349,13 +349,13 @@  discard block
 block discarded – undo
349 349
  * @return string, l'extrait trouve.
350 350
  **/
351 351
 function _sqlite_func_extraire_multi($quoi, $lang) {
352
-	if (strpos($quoi, '<') !== false) {
353
-		include_spip("src/Texte/Collecteur/AbstractCollecteur");
354
-		include_spip("src/Texte/Collecteur/Multis");
355
-		$collecteurMultis = new Spip\Texte\Collecteur\Multis();
356
-		$quoi = $collecteurMultis->traiter($quoi, ['lang' => $lang, 'appliquer_typo' => false]);
357
-	}
358
-	return $quoi;
352
+    if (strpos($quoi, '<') !== false) {
353
+        include_spip("src/Texte/Collecteur/AbstractCollecteur");
354
+        include_spip("src/Texte/Collecteur/Multis");
355
+        $collecteurMultis = new Spip\Texte\Collecteur\Multis();
356
+        $quoi = $collecteurMultis->traiter($quoi, ['lang' => $lang, 'appliquer_typo' => false]);
357
+    }
358
+    return $quoi;
359 359
 }
360 360
 
361 361
 
@@ -365,7 +365,7 @@  discard block
 block discarded – undo
365 365
  * @return float
366 366
  */
367 367
 function _sqlite_func_rand() {
368
-	return random_int(0, mt_getrandmax());
368
+    return random_int(0, mt_getrandmax());
369 369
 }
370 370
 
371 371
 
@@ -377,7 +377,7 @@  discard block
 block discarded – undo
377 377
  * @return string
378 378
  */
379 379
 function _sqlite_func_right($s, $length) {
380
-	return substr($s, 0 - $length);
380
+    return substr($s, 0 - $length);
381 381
 }
382 382
 
383 383
 
@@ -389,17 +389,17 @@  discard block
 block discarded – undo
389 389
  * @return bool
390 390
  */
391 391
 function _sqlite_func_regexp_match($cherche, $quoi) {
392
-	// optimiser un cas tres courant avec les requetes en base
393
-	if (!$quoi and !strlen($quoi)) {
394
-		return false;
395
-	}
396
-	// il faut enlever un niveau d'echappement pour être homogène à mysql
397
-	$cherche = str_replace('\\\\', '\\', $cherche);
398
-	$u = $GLOBALS['meta']['pcre_u'] ?? 'u';
399
-	$return = preg_match('%' . $cherche . '%imsS' . $u, $quoi);
400
-
401
-	#spip_log("regexp_replace : $quoi, $cherche, $remplace, $return",'sqlite.'._LOG_DEBUG);
402
-	return $return;
392
+    // optimiser un cas tres courant avec les requetes en base
393
+    if (!$quoi and !strlen($quoi)) {
394
+        return false;
395
+    }
396
+    // il faut enlever un niveau d'echappement pour être homogène à mysql
397
+    $cherche = str_replace('\\\\', '\\', $cherche);
398
+    $u = $GLOBALS['meta']['pcre_u'] ?? 'u';
399
+    $return = preg_match('%' . $cherche . '%imsS' . $u, $quoi);
400
+
401
+    #spip_log("regexp_replace : $quoi, $cherche, $remplace, $return",'sqlite.'._LOG_DEBUG);
402
+    return $return;
403 403
 }
404 404
 
405 405
 
@@ -414,8 +414,8 @@  discard block
 block discarded – undo
414 414
  * @return string
415 415
  */
416 416
 function _sqlite_func_date_format($date, $conv) {
417
-	$conv = _sqlite_func_strftime_format_converter($conv);
418
-	return strftime($conv, is_int($date) ? $date : strtotime($date));
417
+    $conv = _sqlite_func_strftime_format_converter($conv);
418
+    return strftime($conv, is_int($date) ? $date : strtotime($date));
419 419
 }
420 420
 
421 421
 /**
@@ -431,28 +431,28 @@  discard block
 block discarded – undo
431 431
  * @return void
432 432
  */
433 433
 function _sqlite_func_strftime_format_converter(string $conv): string {
434
-	// ok : %a %b %d %e %H %I %l %j %k %m %p %r %S %T %w %y %Y
435
-	// on ne sait pas en gérer certains...
436
-	static $mysql_to_strftime_not_ok = ['%c', '%D', '%f', '%U', '%V', '%W', '%X'];
437
-	static $mysql_to_strftime = [
438
-		'%h' => '%I',
439
-		'%i' => '%M',
440
-		'%M' => '%B',
441
-		'%s' => '%S',
442
-		'%u' => '%U',
443
-		'%v' => '%V',
444
-		'%x' => '%G',
445
-	];
446
-	static $to_strftime = [];
447
-	if (!isset($to_strftime[$conv])) {
448
-		$count = 0;
449
-		str_replace($mysql_to_strftime_not_ok, '', $conv, $count);
450
-		if ($count > 0) {
451
-			spip_log("DATE_FORMAT : At least one parameter can't be parsed by strftime with format '$conv'", 'sqlite.' . _LOG_ERREUR);
452
-		}
453
-		$to_strftime[$conv] = str_replace(array_keys($mysql_to_strftime), $mysql_to_strftime, $conv);
454
-	}
455
-	return $to_strftime[$conv];
434
+    // ok : %a %b %d %e %H %I %l %j %k %m %p %r %S %T %w %y %Y
435
+    // on ne sait pas en gérer certains...
436
+    static $mysql_to_strftime_not_ok = ['%c', '%D', '%f', '%U', '%V', '%W', '%X'];
437
+    static $mysql_to_strftime = [
438
+        '%h' => '%I',
439
+        '%i' => '%M',
440
+        '%M' => '%B',
441
+        '%s' => '%S',
442
+        '%u' => '%U',
443
+        '%v' => '%V',
444
+        '%x' => '%G',
445
+    ];
446
+    static $to_strftime = [];
447
+    if (!isset($to_strftime[$conv])) {
448
+        $count = 0;
449
+        str_replace($mysql_to_strftime_not_ok, '', $conv, $count);
450
+        if ($count > 0) {
451
+            spip_log("DATE_FORMAT : At least one parameter can't be parsed by strftime with format '$conv'", 'sqlite.' . _LOG_ERREUR);
452
+        }
453
+        $to_strftime[$conv] = str_replace(array_keys($mysql_to_strftime), $mysql_to_strftime, $conv);
454
+    }
455
+    return $to_strftime[$conv];
456 456
 }
457 457
 
458 458
 /**
@@ -466,11 +466,11 @@  discard block
 block discarded – undo
466 466
  * @return int
467 467
  */
468 468
 function _sqlite_func_to_days($d) {
469
-	static $offset = 719528; // nb de jour entre 0000-00-00 et timestamp 0=1970-01-01
470
-	$result = $offset + (int)ceil(_sqlite_func_unix_timestamp($d) / (24 * 3600));
469
+    static $offset = 719528; // nb de jour entre 0000-00-00 et timestamp 0=1970-01-01
470
+    $result = $offset + (int)ceil(_sqlite_func_unix_timestamp($d) / (24 * 3600));
471 471
 
472
-	#spip_log("Passage avec TO_DAYS : $d, $result",'sqlite.'._LOG_DEBUG);
473
-	return $result;
472
+    #spip_log("Passage avec TO_DAYS : $d, $result",'sqlite.'._LOG_DEBUG);
473
+    return $result;
474 474
 }
475 475
 
476 476
 /**
@@ -482,13 +482,13 @@  discard block
 block discarded – undo
482 482
  * @return string
483 483
  */
484 484
 function _sqlite_func_substring($string, $start, $len = null) {
485
-	// SQL compte a partir de 1, php a partir de 0
486
-	$start = ($start > 0) ? $start - 1 : $start;
487
-	if (is_null($len)) {
488
-		return substr($string, $start);
489
-	} else {
490
-		return substr($string, $start, $len);
491
-	}
485
+    // SQL compte a partir de 1, php a partir de 0
486
+    $start = ($start > 0) ? $start - 1 : $start;
487
+    if (is_null($len)) {
488
+        return substr($string, $start);
489
+    } else {
490
+        return substr($string, $start, $len);
491
+    }
492 492
 }
493 493
 
494 494
 /**
@@ -504,33 +504,33 @@  discard block
 block discarded – undo
504 504
  * @return int
505 505
  */
506 506
 function _sqlite_timestampdiff($unit, $date1, $date2) {
507
-	$d1 = date_create($date1);
508
-	$d2 = date_create($date2);
509
-	$diff = date_diff($d1, $d2);
510
-	$inv = $diff->invert ? -1 : 1;
511
-	switch ($unit) {
512
-		case 'YEAR':
513
-			return $inv * $diff->y;
514
-		case 'QUARTER':
515
-			return $inv * (4 * $diff->y + intval(floor($diff->m / 3)));
516
-		case 'MONTH':
517
-			return $inv * (12 * $diff->y + $diff->m);
518
-		case 'WEEK':
519
-			return $inv * intval(floor($diff->days / 7));
520
-		case 'DAY':
521
-			#var_dump($inv*$diff->days);
522
-			return $inv * $diff->days;
523
-		case 'HOUR':
524
-			return $inv * (24 * $diff->days + $diff->h);
525
-		case 'MINUTE':
526
-			return $inv * ((24 * $diff->days + $diff->h) * 60 + $diff->i);
527
-		case 'SECOND':
528
-			return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s);
529
-		case 'MICROSECOND':
530
-			return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s) * 1_000_000;
531
-	}
532
-
533
-	return 0;
507
+    $d1 = date_create($date1);
508
+    $d2 = date_create($date2);
509
+    $diff = date_diff($d1, $d2);
510
+    $inv = $diff->invert ? -1 : 1;
511
+    switch ($unit) {
512
+        case 'YEAR':
513
+            return $inv * $diff->y;
514
+        case 'QUARTER':
515
+            return $inv * (4 * $diff->y + intval(floor($diff->m / 3)));
516
+        case 'MONTH':
517
+            return $inv * (12 * $diff->y + $diff->m);
518
+        case 'WEEK':
519
+            return $inv * intval(floor($diff->days / 7));
520
+        case 'DAY':
521
+            #var_dump($inv*$diff->days);
522
+            return $inv * $diff->days;
523
+        case 'HOUR':
524
+            return $inv * (24 * $diff->days + $diff->h);
525
+        case 'MINUTE':
526
+            return $inv * ((24 * $diff->days + $diff->h) * 60 + $diff->i);
527
+        case 'SECOND':
528
+            return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s);
529
+        case 'MICROSECOND':
530
+            return $inv * (((24 * $diff->days + $diff->h) * 60 + $diff->i) * 60 + $diff->s) * 1_000_000;
531
+    }
532
+
533
+    return 0;
534 534
 }
535 535
 
536 536
 /**
@@ -540,24 +540,24 @@  discard block
 block discarded – undo
540 540
  * @return int
541 541
  */
542 542
 function _sqlite_func_unix_timestamp($d) {
543
-	static $mem = [];
544
-	static $n = 0;
545
-	if (isset($mem[$d])) {
546
-		return $mem[$d];
547
-	}
548
-	if ($n++ > 100) {
549
-		$mem = [];
550
-		$n = 0;
551
-	}
552
-
553
-	//2005-12-02 20:53:53
554
-	#spip_log("Passage avec UNIX_TIMESTAMP : $d",'sqlite.'._LOG_DEBUG);
555
-	if (!$d) {
556
-		return $mem[$d] = time();
557
-	}
558
-
559
-	// une pile plus grosse n'accelere pas le calcul
560
-	return $mem[$d] = strtotime($d);
543
+    static $mem = [];
544
+    static $n = 0;
545
+    if (isset($mem[$d])) {
546
+        return $mem[$d];
547
+    }
548
+    if ($n++ > 100) {
549
+        $mem = [];
550
+        $n = 0;
551
+    }
552
+
553
+    //2005-12-02 20:53:53
554
+    #spip_log("Passage avec UNIX_TIMESTAMP : $d",'sqlite.'._LOG_DEBUG);
555
+    if (!$d) {
556
+        return $mem[$d] = time();
557
+    }
558
+
559
+    // une pile plus grosse n'accelere pas le calcul
560
+    return $mem[$d] = strtotime($d);
561 561
 }
562 562
 
563 563
 
@@ -570,7 +570,7 @@  discard block
 block discarded – undo
570 570
  * @return string
571 571
  */
572 572
 function _sqlite_func_year($d) {
573
-	return _sqlite_func_date('Y', $d);
573
+    return _sqlite_func_date('Y', $d);
574 574
 }
575 575
 
576 576
 /**
@@ -583,20 +583,20 @@  discard block
 block discarded – undo
583 583
  * @return string
584 584
  */
585 585
 function _sqlite_func_date($quoi, $d) {
586
-	static $mem = [];
587
-	static $n = 0;
588
-	if (isset($mem[$d])) {
589
-		return $mem[$d][$quoi];
590
-	}
591
-	if ($n++ > 100) {
592
-		$mem = [];
593
-		$n = 0;
594
-	}
595
-
596
-	$dec = date('Y-m-d', _sqlite_func_unix_timestamp($d));
597
-	$mem[$d] = ['Y' => substr($dec, 0, 4), 'm' => substr($dec, 5, 2), 'd' => substr($dec, 8, 2)];
598
-
599
-	return $mem[$d][$quoi];
586
+    static $mem = [];
587
+    static $n = 0;
588
+    if (isset($mem[$d])) {
589
+        return $mem[$d][$quoi];
590
+    }
591
+    if ($n++ > 100) {
592
+        $mem = [];
593
+        $n = 0;
594
+    }
595
+
596
+    $dec = date('Y-m-d', _sqlite_func_unix_timestamp($d));
597
+    $mem[$d] = ['Y' => substr($dec, 0, 4), 'm' => substr($dec, 5, 2), 'd' => substr($dec, 8, 2)];
598
+
599
+    return $mem[$d][$quoi];
600 600
 }
601 601
 
602 602
 /**
@@ -605,5 +605,5 @@  discard block
 block discarded – undo
605 605
  * @return void
606 606
  */
607 607
 function _sqlite_func_vide() {
608
-	return;
608
+    return;
609 609
 }
Please login to merge, or discard this patch.
ecrire/req/mysql.php 3 patches
Braces   +2 added lines, -4 removed lines patch added patch discarded remove patch
@@ -553,16 +553,14 @@
 block discarded – undo
553 553
 		if (stripos($suite, 'SELECT') !== false) {
554 554
 			if ($echappe_textes) {
555 555
 				[$suite_echap, $textes] = query_echappe_textes($suite);
556
-			}
557
-			else {
556
+			} else {
558 557
 				$suite_echap = $suite;
559 558
 			}
560 559
 			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
561 560
 				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
562 561
 				if ($echappe_textes) {
563 562
 					$suite = query_reinjecte_textes($suite_echap, $textes);
564
-				}
565
-				else {
563
+				} else {
566 564
 					$suite = $suite_echap;
567 565
 				}
568 566
 			}
Please login to merge, or discard this patch.
Indentation   +884 added lines, -884 removed lines patch added patch discarded remove patch
@@ -20,11 +20,11 @@  discard block
 block discarded – undo
20 20
  */
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 if (!defined('_MYSQL_NOPLANES')) {
27
-	define('_MYSQL_NOPLANES', true);
27
+    define('_MYSQL_NOPLANES', true);
28 28
 }
29 29
 
30 30
 /**
@@ -41,112 +41,112 @@  discard block
 block discarded – undo
41 41
  *     - tableau décrivant la connexion sinon
42 42
  */
43 43
 function req_mysql_dist($host, $port, $login, $pass, $db = '', $prefixe = '') {
44
-	if (!extension_loaded(\mysqli::class)) {
45
-		return false;
46
-	}
47
-
48
-	// si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
49
-	try {
50
-		if (
51
-			$port and !is_numeric($socket = $port)
52
-			and (!$host or $host === 'localhost')
53
-		) {
54
-			$link = @mysqli_connect($host, $login, $pass, '', null, $socket);
55
-		} elseif ($port) {
56
-			$link = @mysqli_connect($host, $login, $pass, '', $port);
57
-		} else {
58
-			$link = @mysqli_connect($host, $login, $pass);
59
-		}
60
-	} catch (\mysqli_sql_exception $e) {
61
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
62
-		$link = false;
63
-	}
64
-
65
-	if (!$link) {
66
-		spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
67
-
68
-		return false;
69
-	}
70
-	$last = '';
71
-	if (!$db) {
72
-		$ok = $link;
73
-		$db = 'spip';
74
-	} else {
75
-		$ok = mysqli_select_db($link, $db);
76
-		if (
77
-			defined('_MYSQL_SET_SQL_MODE')
78
-			or defined('_MYSQL_SQL_MODE_TEXT_NOT_NULL') // compatibilite
79
-		) {
80
-			mysqli_query($link, $last = "set sql_mode=''");
81
-		}
82
-	}
83
-
84
-	spip_log(
85
-		"Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
86
-		_LOG_DEBUG
87
-	);
88
-
89
-	return !$ok ? false : [
90
-		'db' => $db,
91
-		'last' => $last,
92
-		'prefixe' => $prefixe ?: $db,
93
-		'link' => $link,
94
-		'total_requetes' => 0,
95
-	];
44
+    if (!extension_loaded(\mysqli::class)) {
45
+        return false;
46
+    }
47
+
48
+    // si port est fourni mais pas host, c'est un socket -> compat avec vieille syntaxe de mysql_connect() et anciens fichiers connect.php
49
+    try {
50
+        if (
51
+            $port and !is_numeric($socket = $port)
52
+            and (!$host or $host === 'localhost')
53
+        ) {
54
+            $link = @mysqli_connect($host, $login, $pass, '', null, $socket);
55
+        } elseif ($port) {
56
+            $link = @mysqli_connect($host, $login, $pass, '', $port);
57
+        } else {
58
+            $link = @mysqli_connect($host, $login, $pass);
59
+        }
60
+    } catch (\mysqli_sql_exception $e) {
61
+        spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
62
+        $link = false;
63
+    }
64
+
65
+    if (!$link) {
66
+        spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
67
+
68
+        return false;
69
+    }
70
+    $last = '';
71
+    if (!$db) {
72
+        $ok = $link;
73
+        $db = 'spip';
74
+    } else {
75
+        $ok = mysqli_select_db($link, $db);
76
+        if (
77
+            defined('_MYSQL_SET_SQL_MODE')
78
+            or defined('_MYSQL_SQL_MODE_TEXT_NOT_NULL') // compatibilite
79
+        ) {
80
+            mysqli_query($link, $last = "set sql_mode=''");
81
+        }
82
+    }
83
+
84
+    spip_log(
85
+        "Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
86
+        _LOG_DEBUG
87
+    );
88
+
89
+    return !$ok ? false : [
90
+        'db' => $db,
91
+        'last' => $last,
92
+        'prefixe' => $prefixe ?: $db,
93
+        'link' => $link,
94
+        'total_requetes' => 0,
95
+    ];
96 96
 }
97 97
 
98 98
 
99 99
 $GLOBALS['spip_mysql_functions_1'] = [
100
-	'alter' => 'spip_mysql_alter',
101
-	'count' => 'spip_mysql_count',
102
-	'countsel' => 'spip_mysql_countsel',
103
-	'create' => 'spip_mysql_create',
104
-	'create_base' => 'spip_mysql_create_base',
105
-	'create_view' => 'spip_mysql_create_view',
106
-	'date_proche' => 'spip_mysql_date_proche',
107
-	'delete' => 'spip_mysql_delete',
108
-	'drop_table' => 'spip_mysql_drop_table',
109
-	'drop_view' => 'spip_mysql_drop_view',
110
-	'errno' => 'spip_mysql_errno',
111
-	'error' => 'spip_mysql_error',
112
-	'explain' => 'spip_mysql_explain',
113
-	'fetch' => 'spip_mysql_fetch',
114
-	'seek' => 'spip_mysql_seek',
115
-	'free' => 'spip_mysql_free',
116
-	'hex' => 'spip_mysql_hex',
117
-	'in' => 'spip_mysql_in',
118
-	'insert' => 'spip_mysql_insert',
119
-	'insertq' => 'spip_mysql_insertq',
120
-	'insertq_multi' => 'spip_mysql_insertq_multi',
121
-	'listdbs' => 'spip_mysql_listdbs',
122
-	'multi' => 'spip_mysql_multi',
123
-	'optimize' => 'spip_mysql_optimize',
124
-	'query' => 'spip_mysql_query',
125
-	'quote' => 'spip_mysql_quote',
126
-	'replace' => 'spip_mysql_replace',
127
-	'replace_multi' => 'spip_mysql_replace_multi',
128
-	'repair' => 'spip_mysql_repair',
129
-	'select' => 'spip_mysql_select',
130
-	'selectdb' => 'spip_mysql_selectdb',
131
-	'set_charset' => 'spip_mysql_set_charset',
132
-	'get_charset' => 'spip_mysql_get_charset',
133
-	'showbase' => 'spip_mysql_showbase',
134
-	'showtable' => 'spip_mysql_showtable',
135
-	'table_exists' => 'spip_mysql_table_exists',
136
-	'update' => 'spip_mysql_update',
137
-	'updateq' => 'spip_mysql_updateq',
138
-
139
-	// association de chaque nom http d'un charset aux couples MySQL
140
-	'charsets' => [
141
-		'cp1250' => ['charset' => 'cp1250', 'collation' => 'cp1250_general_ci'],
142
-		'cp1251' => ['charset' => 'cp1251', 'collation' => 'cp1251_general_ci'],
143
-		'cp1256' => ['charset' => 'cp1256', 'collation' => 'cp1256_general_ci'],
144
-		'iso-8859-1' => ['charset' => 'latin1', 'collation' => 'latin1_swedish_ci'],
100
+    'alter' => 'spip_mysql_alter',
101
+    'count' => 'spip_mysql_count',
102
+    'countsel' => 'spip_mysql_countsel',
103
+    'create' => 'spip_mysql_create',
104
+    'create_base' => 'spip_mysql_create_base',
105
+    'create_view' => 'spip_mysql_create_view',
106
+    'date_proche' => 'spip_mysql_date_proche',
107
+    'delete' => 'spip_mysql_delete',
108
+    'drop_table' => 'spip_mysql_drop_table',
109
+    'drop_view' => 'spip_mysql_drop_view',
110
+    'errno' => 'spip_mysql_errno',
111
+    'error' => 'spip_mysql_error',
112
+    'explain' => 'spip_mysql_explain',
113
+    'fetch' => 'spip_mysql_fetch',
114
+    'seek' => 'spip_mysql_seek',
115
+    'free' => 'spip_mysql_free',
116
+    'hex' => 'spip_mysql_hex',
117
+    'in' => 'spip_mysql_in',
118
+    'insert' => 'spip_mysql_insert',
119
+    'insertq' => 'spip_mysql_insertq',
120
+    'insertq_multi' => 'spip_mysql_insertq_multi',
121
+    'listdbs' => 'spip_mysql_listdbs',
122
+    'multi' => 'spip_mysql_multi',
123
+    'optimize' => 'spip_mysql_optimize',
124
+    'query' => 'spip_mysql_query',
125
+    'quote' => 'spip_mysql_quote',
126
+    'replace' => 'spip_mysql_replace',
127
+    'replace_multi' => 'spip_mysql_replace_multi',
128
+    'repair' => 'spip_mysql_repair',
129
+    'select' => 'spip_mysql_select',
130
+    'selectdb' => 'spip_mysql_selectdb',
131
+    'set_charset' => 'spip_mysql_set_charset',
132
+    'get_charset' => 'spip_mysql_get_charset',
133
+    'showbase' => 'spip_mysql_showbase',
134
+    'showtable' => 'spip_mysql_showtable',
135
+    'table_exists' => 'spip_mysql_table_exists',
136
+    'update' => 'spip_mysql_update',
137
+    'updateq' => 'spip_mysql_updateq',
138
+
139
+    // association de chaque nom http d'un charset aux couples MySQL
140
+    'charsets' => [
141
+        'cp1250' => ['charset' => 'cp1250', 'collation' => 'cp1250_general_ci'],
142
+        'cp1251' => ['charset' => 'cp1251', 'collation' => 'cp1251_general_ci'],
143
+        'cp1256' => ['charset' => 'cp1256', 'collation' => 'cp1256_general_ci'],
144
+        'iso-8859-1' => ['charset' => 'latin1', 'collation' => 'latin1_swedish_ci'],
145 145
 //'iso-8859-6'=>array('charset'=>'latin1','collation'=>'latin1_swedish_ci'),
146
-		'iso-8859-9' => ['charset' => 'latin5', 'collation' => 'latin5_turkish_ci'],
146
+        'iso-8859-9' => ['charset' => 'latin5', 'collation' => 'latin5_turkish_ci'],
147 147
 //'iso-8859-15'=>array('charset'=>'latin1','collation'=>'latin1_swedish_ci'),
148
-		'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci']
149
-	]
148
+        'utf-8' => ['charset' => 'utf8', 'collation' => 'utf8_general_ci']
149
+    ]
150 150
 ];
151 151
 
152 152
 
@@ -157,9 +157,9 @@  discard block
 block discarded – undo
157 157
  * @return Object Information de connexion pour mysqli
158 158
  */
159 159
 function _mysql_link($serveur = '') {
160
-	$link = &$GLOBALS['connexions'][$serveur ?: 0]['link'];
160
+    $link = &$GLOBALS['connexions'][$serveur ?: 0]['link'];
161 161
 
162
-	return $link;
162
+    return $link;
163 163
 }
164 164
 
165 165
 
@@ -172,10 +172,10 @@  discard block
 block discarded – undo
172 172
  * @return mysqli_result|bool Jeu de résultats pour fetch()
173 173
  */
174 174
 function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) {
175
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
176
-	spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
175
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
176
+    spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
177 177
 
178
-	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
178
+    return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
179 179
 }
180 180
 
181 181
 
@@ -188,11 +188,11 @@  discard block
 block discarded – undo
188 188
  * @return array Description du charset (son nom est dans 'charset')
189 189
  */
190 190
 function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) {
191
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
192
-	$connexion['last'] = $c = 'SHOW CHARACTER SET'
193
-		. (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
191
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
192
+    $connexion['last'] = $c = 'SHOW CHARACTER SET'
193
+        . (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
194 194
 
195
-	return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
195
+    return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
196 196
 }
197 197
 
198 198
 /**
@@ -208,80 +208,80 @@  discard block
 block discarded – undo
208 208
  */
209 209
 function spip_mysql_query($query, $serveur = '', $requeter = true) {
210 210
 
211
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
212
-	$prefixe = $connexion['prefixe'];
213
-	$link = $connexion['link'];
214
-	$db = $connexion['db'];
215
-
216
-	$query = _mysql_traite_query($query, $db, $prefixe);
217
-
218
-	// renvoyer la requete inerte si demandee
219
-	if (!$requeter) {
220
-		return $query;
221
-	}
222
-
223
-	if (isset($_GET['var_profile']) or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
224
-		include_spip('public/tracer');
225
-		$t = trace_query_start();
226
-	} else {
227
-		$t = 0;
228
-	}
229
-
230
-	$connexion['last'] = $query;
231
-	$connexion['total_requetes']++;
232
-
233
-	// ajouter un debug utile dans log/mysql-slow.log ?
234
-	$debug = '';
235
-	if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
236
-		if (isset($GLOBALS['debug']['aucasou'])) {
237
-			[, $id, , $infos] = $GLOBALS['debug']['aucasou'];
238
-			$debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | ';
239
-		}
240
-		if (isset($_SERVER['REQUEST_URI'])) {
241
-			$debug .= $_SERVER['REQUEST_URI'];
242
-		}
243
-		if (!empty($GLOBALS['ip'])) {
244
-			$debug .= ' + ' . $GLOBALS['ip'];
245
-		}
246
-		$debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
247
-	}
248
-	try {
249
-		$r = mysqli_query($link, $query . $debug);
250
-	} catch (\mysqli_sql_exception $e) {
251
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
252
-		$r = false;
253
-		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
254
-		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
255
-	}
256
-
257
-	//Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
258
-	if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
259
-		if ($e == 2006) { //Si Gone Away on relance une connexion vierge
260
-			//Fermer la connexion defaillante
261
-			mysqli_close($connexion['link']);
262
-			unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
263
-			//Relancer une connexion vierge
264
-			spip_connect($serveur);
265
-			$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
266
-			$link = $connexion['link'];
267
-			//On retente au cas où
268
-			try {
269
-				$r = mysqli_query($link, $query . $debug);
270
-			} catch (\mysqli_sql_exception $e) {
271
-				spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
272
-				$r = false;
273
-				// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
274
-				// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
275
-			}
276
-		}
277
-	}
278
-
279
-	// Log de l'erreur eventuelle
280
-	if ($e = spip_mysql_errno($serveur)) {
281
-		// et du fautif
282
-		$e .= spip_mysql_error($query, $serveur);
283
-	}
284
-	return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
211
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
212
+    $prefixe = $connexion['prefixe'];
213
+    $link = $connexion['link'];
214
+    $db = $connexion['db'];
215
+
216
+    $query = _mysql_traite_query($query, $db, $prefixe);
217
+
218
+    // renvoyer la requete inerte si demandee
219
+    if (!$requeter) {
220
+        return $query;
221
+    }
222
+
223
+    if (isset($_GET['var_profile']) or (defined('_DEBUG_TRACE_QUERIES') and _DEBUG_TRACE_QUERIES)) {
224
+        include_spip('public/tracer');
225
+        $t = trace_query_start();
226
+    } else {
227
+        $t = 0;
228
+    }
229
+
230
+    $connexion['last'] = $query;
231
+    $connexion['total_requetes']++;
232
+
233
+    // ajouter un debug utile dans log/mysql-slow.log ?
234
+    $debug = '';
235
+    if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
236
+        if (isset($GLOBALS['debug']['aucasou'])) {
237
+            [, $id, , $infos] = $GLOBALS['debug']['aucasou'];
238
+            $debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | ';
239
+        }
240
+        if (isset($_SERVER['REQUEST_URI'])) {
241
+            $debug .= $_SERVER['REQUEST_URI'];
242
+        }
243
+        if (!empty($GLOBALS['ip'])) {
244
+            $debug .= ' + ' . $GLOBALS['ip'];
245
+        }
246
+        $debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
247
+    }
248
+    try {
249
+        $r = mysqli_query($link, $query . $debug);
250
+    } catch (\mysqli_sql_exception $e) {
251
+        spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
252
+        $r = false;
253
+        // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
254
+        // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
255
+    }
256
+
257
+    //Eviter de propager le GoneAway sur les autres requetes d'un même processus PHP
258
+    if ($e = spip_mysql_errno($serveur)) {  // Log d'un Gone Away
259
+        if ($e == 2006) { //Si Gone Away on relance une connexion vierge
260
+            //Fermer la connexion defaillante
261
+            mysqli_close($connexion['link']);
262
+            unset($GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]);
263
+            //Relancer une connexion vierge
264
+            spip_connect($serveur);
265
+            $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
266
+            $link = $connexion['link'];
267
+            //On retente au cas où
268
+            try {
269
+                $r = mysqli_query($link, $query . $debug);
270
+            } catch (\mysqli_sql_exception $e) {
271
+                spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
272
+                $r = false;
273
+                // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
274
+                // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
275
+            }
276
+        }
277
+    }
278
+
279
+    // Log de l'erreur eventuelle
280
+    if ($e = spip_mysql_errno($serveur)) {
281
+        // et du fautif
282
+        $e .= spip_mysql_error($query, $serveur);
283
+    }
284
+    return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
285 285
 }
286 286
 
287 287
 /**
@@ -296,12 +296,12 @@  discard block
 block discarded – undo
296 296
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
297 297
  */
298 298
 function spip_mysql_alter($query, $serveur = '', $requeter = true) {
299
-	// ici on supprime les ` entourant le nom de table pour permettre
300
-	// la transposition du prefixe, compte tenu que les plugins ont la mauvaise habitude
301
-	// d'utiliser ceux-ci, copie-colle de phpmyadmin
302
-	$query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
299
+    // ici on supprime les ` entourant le nom de table pour permettre
300
+    // la transposition du prefixe, compte tenu que les plugins ont la mauvaise habitude
301
+    // d'utiliser ceux-ci, copie-colle de phpmyadmin
302
+    $query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
303 303
 
304
-	return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
304
+    return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
305 305
 }
306 306
 
307 307
 
@@ -314,9 +314,9 @@  discard block
 block discarded – undo
314 314
  * @return bool            Toujours true
315 315
  */
316 316
 function spip_mysql_optimize($table, $serveur = '', $requeter = true) {
317
-	spip_mysql_query('OPTIMIZE TABLE ' . $table);
317
+    spip_mysql_query('OPTIMIZE TABLE ' . $table);
318 318
 
319
-	return true;
319
+    return true;
320 320
 }
321 321
 
322 322
 
@@ -329,18 +329,18 @@  discard block
 block discarded – undo
329 329
  * @return array           Tableau de l'explication
330 330
  */
331 331
 function spip_mysql_explain($query, $serveur = '', $requeter = true) {
332
-	if (strpos(ltrim($query), 'SELECT') !== 0) {
333
-		return [];
334
-	}
335
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
336
-	$prefixe = $connexion['prefixe'];
337
-	$link = $connexion['link'];
338
-	$db = $connexion['db'];
339
-
340
-	$query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
341
-	$r = mysqli_query($link, $query);
342
-
343
-	return spip_mysql_fetch($r, null, $serveur);
332
+    if (strpos(ltrim($query), 'SELECT') !== 0) {
333
+        return [];
334
+    }
335
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
336
+    $prefixe = $connexion['prefixe'];
337
+    $link = $connexion['link'];
338
+    $db = $connexion['db'];
339
+
340
+    $query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
341
+    $r = mysqli_query($link, $query);
342
+
343
+    return spip_mysql_fetch($r, null, $serveur);
344 344
 }
345 345
 
346 346
 
@@ -369,35 +369,35 @@  discard block
 block discarded – undo
369 369
  *     - array  : Tableau décrivant requête et temps d'exécution si var_profile actif pour tracer.
370 370
  */
371 371
 function spip_mysql_select(
372
-	$select,
373
-	$from,
374
-	$where = '',
375
-	$groupby = '',
376
-	$orderby = '',
377
-	$limit = '',
378
-	$having = '',
379
-	$serveur = '',
380
-	$requeter = true
372
+    $select,
373
+    $from,
374
+    $where = '',
375
+    $groupby = '',
376
+    $orderby = '',
377
+    $limit = '',
378
+    $having = '',
379
+    $serveur = '',
380
+    $requeter = true
381 381
 ) {
382 382
 
383 383
 
384
-	$from = (!is_array($from) ? $from : spip_mysql_select_as($from));
385
-	$query =
386
-		calculer_mysql_expression('SELECT', $select, ', ')
387
-		. calculer_mysql_expression('FROM', $from, ', ')
388
-		. calculer_mysql_expression('WHERE', $where)
389
-		. calculer_mysql_expression('GROUP BY', $groupby, ',')
390
-		. calculer_mysql_expression('HAVING', $having)
391
-		. ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
392
-		. ($limit ? "\nLIMIT $limit" : '');
384
+    $from = (!is_array($from) ? $from : spip_mysql_select_as($from));
385
+    $query =
386
+        calculer_mysql_expression('SELECT', $select, ', ')
387
+        . calculer_mysql_expression('FROM', $from, ', ')
388
+        . calculer_mysql_expression('WHERE', $where)
389
+        . calculer_mysql_expression('GROUP BY', $groupby, ',')
390
+        . calculer_mysql_expression('HAVING', $having)
391
+        . ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
392
+        . ($limit ? "\nLIMIT $limit" : '');
393 393
 
394
-	// renvoyer la requete inerte si demandee
395
-	if ($requeter === false) {
396
-		return $query;
397
-	}
398
-	$r = spip_mysql_query($query, $serveur, $requeter);
394
+    // renvoyer la requete inerte si demandee
395
+    if ($requeter === false) {
396
+        return $query;
397
+    }
398
+    $r = spip_mysql_query($query, $serveur, $requeter);
399 399
 
400
-	return $r ?: $query;
400
+    return $r ?: $query;
401 401
 }
402 402
 
403 403
 
@@ -414,7 +414,7 @@  discard block
 block discarded – undo
414 414
  * @return string texte du orderby préparé
415 415
  */
416 416
 function spip_mysql_order($orderby) {
417
-	return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
417
+    return (is_array($orderby)) ? join(', ', $orderby) : $orderby;
418 418
 }
419 419
 
420 420
 
@@ -437,26 +437,26 @@  discard block
 block discarded – undo
437 437
  *     Contrainte pour clause WHERE
438 438
  */
439 439
 function calculer_mysql_where($v) {
440
-	if (!is_array($v)) {
441
-		return $v;
442
-	}
443
-
444
-	$op = array_shift($v);
445
-	if (!($n = count($v))) {
446
-		return $op;
447
-	} else {
448
-		$arg = calculer_mysql_where(array_shift($v));
449
-		if ($n == 1) {
450
-			return "$op($arg)";
451
-		} else {
452
-			$arg2 = calculer_mysql_where(array_shift($v));
453
-			if ($n == 2) {
454
-				return "($arg $op $arg2)";
455
-			} else {
456
-				return "($arg $op ($arg2) : $v[0])";
457
-			}
458
-		}
459
-	}
440
+    if (!is_array($v)) {
441
+        return $v;
442
+    }
443
+
444
+    $op = array_shift($v);
445
+    if (!($n = count($v))) {
446
+        return $op;
447
+    } else {
448
+        $arg = calculer_mysql_where(array_shift($v));
449
+        if ($n == 1) {
450
+            return "$op($arg)";
451
+        } else {
452
+            $arg2 = calculer_mysql_where(array_shift($v));
453
+            if ($n == 2) {
454
+                return "($arg $op $arg2)";
455
+            } else {
456
+                return "($arg $op ($arg2) : $v[0])";
457
+            }
458
+        }
459
+    }
460 460
 }
461 461
 
462 462
 /**
@@ -471,21 +471,21 @@  discard block
 block discarded – undo
471 471
  * @return string            texte de l'expression, une partie donc, du texte la requête.
472 472
  */
473 473
 function calculer_mysql_expression($expression, $v, $join = 'AND') {
474
-	if (empty($v)) {
475
-		return '';
476
-	}
477
-
478
-	$exp = "\n$expression ";
479
-
480
-	if (!is_array($v)) {
481
-		return $exp . $v;
482
-	} else {
483
-		if (strtoupper($join) === 'AND') {
484
-			return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
485
-		} else {
486
-			return $exp . join($join, $v);
487
-		}
488
-	}
474
+    if (empty($v)) {
475
+        return '';
476
+    }
477
+
478
+    $exp = "\n$expression ";
479
+
480
+    if (!is_array($v)) {
481
+        return $exp . $v;
482
+    } else {
483
+        if (strtoupper($join) === 'AND') {
484
+            return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
485
+        } else {
486
+            return $exp . join($join, $v);
487
+        }
488
+    }
489 489
 }
490 490
 
491 491
 
@@ -496,26 +496,26 @@  discard block
 block discarded – undo
496 496
  * @return string Sélection de colonnes pour une clause SELECT
497 497
  */
498 498
 function spip_mysql_select_as($args) {
499
-	$res = '';
500
-	foreach ($args as $k => $v) {
501
-		if (substr($k, -1) == '@') {
502
-			// c'est une jointure qui se refere au from precedent
503
-			// pas de virgule
504
-			$res .= '  ' . $v;
505
-		} else {
506
-			if (!is_numeric($k)) {
507
-				$p = strpos($v, ' ');
508
-				if ($p) {
509
-					$v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
510
-				} else {
511
-					$v .= " AS `$k`";
512
-				}
513
-			}
514
-			$res .= ', ' . $v;
515
-		}
516
-	}
517
-
518
-	return substr($res, 2);
499
+    $res = '';
500
+    foreach ($args as $k => $v) {
501
+        if (substr($k, -1) == '@') {
502
+            // c'est une jointure qui se refere au from precedent
503
+            // pas de virgule
504
+            $res .= '  ' . $v;
505
+        } else {
506
+            if (!is_numeric($k)) {
507
+                $p = strpos($v, ' ');
508
+                if ($p) {
509
+                    $v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
510
+                } else {
511
+                    $v .= " AS `$k`";
512
+                }
513
+            }
514
+            $res .= ', ' . $v;
515
+        }
516
+    }
517
+
518
+    return substr($res, 2);
519 519
 }
520 520
 
521 521
 
@@ -540,58 +540,58 @@  discard block
 block discarded – undo
540 540
  */
541 541
 function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) {
542 542
 
543
-	if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
544
-		$pref = '`' . $db . '`.';
545
-	} else {
546
-		$pref = '';
547
-	}
548
-
549
-	if ($prefixe) {
550
-		$pref .= $prefixe . '_';
551
-	}
552
-
553
-	if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
554
-		$suite = '';
555
-	} else {
556
-		$suite = strstr($query, (string) $regs[0]);
557
-		$query = substr($query, 0, -strlen($suite));
558
-		// propager le prefixe en cas de requete imbriquee
559
-		// il faut alors echapper les chaine avant de le faire, pour ne pas risquer de
560
-		// modifier une requete qui est en fait juste du texte dans un champ
561
-		if (stripos($suite, 'SELECT') !== false) {
562
-			if ($echappe_textes) {
563
-				[$suite_echap, $textes] = query_echappe_textes($suite);
564
-			}
565
-			else {
566
-				$suite_echap = $suite;
567
-			}
568
-			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
569
-				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
570
-				if ($echappe_textes) {
571
-					$suite = query_reinjecte_textes($suite_echap, $textes);
572
-				}
573
-				else {
574
-					$suite = $suite_echap;
575
-				}
576
-			}
577
-		}
578
-	}
579
-	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
580
-
581
-	// en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
582
-	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
583
-	if (
584
-		defined('_MYSQL_NOPLANES')
585
-		and _MYSQL_NOPLANES
586
-		and !empty($GLOBALS['meta']['charset_sql_connexion'])
587
-		and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
588
-	) {
589
-		include_spip('inc/charsets');
590
-		$r = utf8_noplanes($r);
591
-	}
592
-
593
-	#spip_log("_mysql_traite_query: " . substr($r,0, 50) . ".... $db, $prefixe", _LOG_DEBUG);
594
-	return $r;
543
+    if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
544
+        $pref = '`' . $db . '`.';
545
+    } else {
546
+        $pref = '';
547
+    }
548
+
549
+    if ($prefixe) {
550
+        $pref .= $prefixe . '_';
551
+    }
552
+
553
+    if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
554
+        $suite = '';
555
+    } else {
556
+        $suite = strstr($query, (string) $regs[0]);
557
+        $query = substr($query, 0, -strlen($suite));
558
+        // propager le prefixe en cas de requete imbriquee
559
+        // il faut alors echapper les chaine avant de le faire, pour ne pas risquer de
560
+        // modifier une requete qui est en fait juste du texte dans un champ
561
+        if (stripos($suite, 'SELECT') !== false) {
562
+            if ($echappe_textes) {
563
+                [$suite_echap, $textes] = query_echappe_textes($suite);
564
+            }
565
+            else {
566
+                $suite_echap = $suite;
567
+            }
568
+            if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
569
+                $suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
570
+                if ($echappe_textes) {
571
+                    $suite = query_reinjecte_textes($suite_echap, $textes);
572
+                }
573
+                else {
574
+                    $suite = $suite_echap;
575
+                }
576
+            }
577
+        }
578
+    }
579
+    $r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
580
+
581
+    // en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
582
+    // remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
583
+    if (
584
+        defined('_MYSQL_NOPLANES')
585
+        and _MYSQL_NOPLANES
586
+        and !empty($GLOBALS['meta']['charset_sql_connexion'])
587
+        and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
588
+    ) {
589
+        include_spip('inc/charsets');
590
+        $r = utf8_noplanes($r);
591
+    }
592
+
593
+    #spip_log("_mysql_traite_query: " . substr($r,0, 50) . ".... $db, $prefixe", _LOG_DEBUG);
594
+    return $r;
595 595
 }
596 596
 
597 597
 /**
@@ -609,17 +609,17 @@  discard block
 block discarded – undo
609 609
  *     - False en cas d'erreur.
610 610
  **/
611 611
 function spip_mysql_selectdb($db, $serveur = '', $requeter = true) {
612
-	$link = _mysql_link($serveur);
613
-	try {
614
-		$ok = mysqli_select_db($link, $db);
615
-	} catch (\mysqli_sql_exception $e) {
616
-		$ok = false;
617
-	}
618
-	if (!$ok) {
619
-		spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
620
-	}
621
-
622
-	return $ok;
612
+    $link = _mysql_link($serveur);
613
+    try {
614
+        $ok = mysqli_select_db($link, $db);
615
+    } catch (\mysqli_sql_exception $e) {
616
+        $ok = false;
617
+    }
618
+    if (!$ok) {
619
+        spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
620
+    }
621
+
622
+    return $ok;
623 623
 }
624 624
 
625 625
 
@@ -640,14 +640,14 @@  discard block
 block discarded – undo
640 640
  *     Liste de noms de bases de données
641 641
  **/
642 642
 function spip_mysql_listdbs($serveur = '', $requeter = true) {
643
-	$dbs = [];
644
-	if ($res = spip_mysql_query('SHOW DATABASES', $serveur)) {
645
-		while ($row = mysqli_fetch_assoc($res)) {
646
-			$dbs[] = $row['Database'];
647
-		}
648
-	}
649
-
650
-	return $dbs;
643
+    $dbs = [];
644
+    if ($res = spip_mysql_query('SHOW DATABASES', $serveur)) {
645
+        while ($row = mysqli_fetch_assoc($res)) {
646
+            $dbs[] = $row['Database'];
647
+        }
648
+    }
649
+
650
+    return $dbs;
651 651
 }
652 652
 
653 653
 
@@ -670,73 +670,73 @@  discard block
 block discarded – undo
670 670
  *     - true si la requête réussie, false sinon.
671 671
  */
672 672
 function spip_mysql_create(
673
-	$nom,
674
-	$champs,
675
-	$cles,
676
-	$autoinc = false,
677
-	$temporary = false,
678
-	$serveur = '',
679
-	$requeter = true
673
+    $nom,
674
+    $champs,
675
+    $cles,
676
+    $autoinc = false,
677
+    $temporary = false,
678
+    $serveur = '',
679
+    $requeter = true
680 680
 ) {
681 681
 
682
-	$query = '';
683
-	$keys = '';
684
-	$s = '';
685
-	$p = '';
686
-
687
-	// certains plugins declarent les tables  (permet leur inclusion dans le dump)
688
-	// sans les renseigner (laisse le compilo recuperer la description)
689
-	if (!is_array($champs) || !is_array($cles)) {
690
-		return;
691
-	}
692
-
693
-	$res = spip_mysql_query('SELECT version() as v', $serveur);
694
-	if (($row = mysqli_fetch_array($res)) && (version_compare($row['v'], '5.0', '>='))) {
695
-		spip_mysql_query("SET sql_mode=''", $serveur);
696
-	}
697
-
698
-	foreach ($cles as $k => $v) {
699
-		$keys .= "$s\n\t\t$k ($v)";
700
-		if ($k == 'PRIMARY KEY') {
701
-			$p = $v;
702
-		}
703
-		$s = ',';
704
-	}
705
-	$s = '';
706
-
707
-	$character_set = '';
708
-	if (@$GLOBALS['meta']['charset_sql_base']) {
709
-		$character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
710
-	}
711
-	if (@$GLOBALS['meta']['charset_collation_sql_base']) {
712
-		$character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
713
-	}
714
-
715
-	foreach ($champs as $k => $v) {
716
-		$v = _mysql_remplacements_definitions_table($v);
717
-		if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?(\s*binary)?),i', $v, $defs)) {
718
-			if (
719
-				preg_match(',(char|text),i', $defs[1])
720
-				and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
721
-			) {
722
-				$v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
723
-			}
724
-		}
725
-
726
-		$query .= "$s\n\t\t$k $v"
727
-			. (($autoinc && ($p == $k) && preg_match(',\b(big|small|medium)?int\b,i', $v))
728
-				? ' auto_increment'
729
-				: ''
730
-			);
731
-		$s = ',';
732
-	}
733
-	$temporary = $temporary ? 'TEMPORARY' : '';
734
-	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
735
-		. (defined('_MYSQL_ENGINE') ? ' ENGINE=' . _MYSQL_ENGINE : '')
736
-		. ($character_set ? " DEFAULT $character_set" : '')
737
-		. "\n";
738
-
739
-	return spip_mysql_query($q, $serveur);
682
+    $query = '';
683
+    $keys = '';
684
+    $s = '';
685
+    $p = '';
686
+
687
+    // certains plugins declarent les tables  (permet leur inclusion dans le dump)
688
+    // sans les renseigner (laisse le compilo recuperer la description)
689
+    if (!is_array($champs) || !is_array($cles)) {
690
+        return;
691
+    }
692
+
693
+    $res = spip_mysql_query('SELECT version() as v', $serveur);
694
+    if (($row = mysqli_fetch_array($res)) && (version_compare($row['v'], '5.0', '>='))) {
695
+        spip_mysql_query("SET sql_mode=''", $serveur);
696
+    }
697
+
698
+    foreach ($cles as $k => $v) {
699
+        $keys .= "$s\n\t\t$k ($v)";
700
+        if ($k == 'PRIMARY KEY') {
701
+            $p = $v;
702
+        }
703
+        $s = ',';
704
+    }
705
+    $s = '';
706
+
707
+    $character_set = '';
708
+    if (@$GLOBALS['meta']['charset_sql_base']) {
709
+        $character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
710
+    }
711
+    if (@$GLOBALS['meta']['charset_collation_sql_base']) {
712
+        $character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
713
+    }
714
+
715
+    foreach ($champs as $k => $v) {
716
+        $v = _mysql_remplacements_definitions_table($v);
717
+        if (preg_match(',([a-z]*\s*(\(\s*[0-9]*\s*\))?(\s*binary)?),i', $v, $defs)) {
718
+            if (
719
+                preg_match(',(char|text),i', $defs[1])
720
+                and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
721
+            ) {
722
+                $v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
723
+            }
724
+        }
725
+
726
+        $query .= "$s\n\t\t$k $v"
727
+            . (($autoinc && ($p == $k) && preg_match(',\b(big|small|medium)?int\b,i', $v))
728
+                ? ' auto_increment'
729
+                : ''
730
+            );
731
+        $s = ',';
732
+    }
733
+    $temporary = $temporary ? 'TEMPORARY' : '';
734
+    $q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
735
+        . (defined('_MYSQL_ENGINE') ? ' ENGINE=' . _MYSQL_ENGINE : '')
736
+        . ($character_set ? " DEFAULT $character_set" : '')
737
+        . "\n";
738
+
739
+    return spip_mysql_query($q, $serveur);
740 740
 }
741 741
 
742 742
 
@@ -749,25 +749,25 @@  discard block
 block discarded – undo
749 749
  *     Définition SQL adaptée pour MySQL d'un champ de table
750 750
  */
751 751
 function _mysql_remplacements_definitions_table($query) {
752
-	// quelques remplacements
753
-	$num = '(\s*\([0-9]*\))?';
754
-	$enum = '(\s*\([^\)]*\))?';
755
-
756
-	$remplace = [
757
-		'/VARCHAR(\s*[^\s\(])/is' => 'VARCHAR(255)\\1',
758
-		'/^TIMESTAMP($| NULL DEFAULT NULL)/is' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
759
-	];
760
-
761
-	if (is_string($query)) {
762
-		$query = preg_replace(array_keys($remplace), $remplace, $query);
763
-	} elseif (is_array($query)) {
764
-		$keys = array_keys($remplace);
765
-		foreach ($query as $k => $q) {
766
-			$query[$k] = preg_replace($keys, $remplace, $q);
767
-		}
768
-	}
769
-
770
-	return $query;
752
+    // quelques remplacements
753
+    $num = '(\s*\([0-9]*\))?';
754
+    $enum = '(\s*\([^\)]*\))?';
755
+
756
+    $remplace = [
757
+        '/VARCHAR(\s*[^\s\(])/is' => 'VARCHAR(255)\\1',
758
+        '/^TIMESTAMP($| NULL DEFAULT NULL)/is' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP',
759
+    ];
760
+
761
+    if (is_string($query)) {
762
+        $query = preg_replace(array_keys($remplace), $remplace, $query);
763
+    } elseif (is_array($query)) {
764
+        $keys = array_keys($remplace);
765
+        foreach ($query as $k => $q) {
766
+            $query[$k] = preg_replace($keys, $remplace, $q);
767
+        }
768
+    }
769
+
770
+    return $query;
771 771
 }
772 772
 
773 773
 
@@ -780,7 +780,7 @@  discard block
 block discarded – undo
780 780
  * @return bool true si la base est créee.
781 781
  **/
782 782
 function spip_mysql_create_base($nom, $serveur = '', $requeter = true) {
783
-	return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter);
783
+    return spip_mysql_query("CREATE DATABASE `$nom`", $serveur, $requeter);
784 784
 }
785 785
 
786 786
 
@@ -801,19 +801,19 @@  discard block
 block discarded – undo
801 801
  *     - string texte de la requête si $requeter vaut false
802 802
  */
803 803
 function spip_mysql_create_view($nom, $query_select, $serveur = '', $requeter = true) {
804
-	if (!$query_select) {
805
-		return false;
806
-	}
807
-	// vue deja presente
808
-	if (sql_showtable($nom, false, $serveur)) {
809
-		spip_log("Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)", _LOG_ERREUR);
804
+    if (!$query_select) {
805
+        return false;
806
+    }
807
+    // vue deja presente
808
+    if (sql_showtable($nom, false, $serveur)) {
809
+        spip_log("Echec creation d'une vue sql ($nom) car celle-ci existe deja (serveur:$serveur)", _LOG_ERREUR);
810 810
 
811
-		return false;
812
-	}
811
+        return false;
812
+    }
813 813
 
814
-	$query = "CREATE VIEW $nom AS " . $query_select;
814
+    $query = "CREATE VIEW $nom AS " . $query_select;
815 815
 
816
-	return spip_mysql_query($query, $serveur, $requeter);
816
+    return spip_mysql_query($query, $serveur, $requeter);
817 817
 }
818 818
 
819 819
 
@@ -829,11 +829,11 @@  discard block
 block discarded – undo
829 829
  *     - true si la requête a réussie, false sinon
830 830
  */
831 831
 function spip_mysql_drop_table($table, $exist = '', $serveur = '', $requeter = true) {
832
-	if ($exist) {
833
-		$exist = ' IF EXISTS';
834
-	}
832
+    if ($exist) {
833
+        $exist = ' IF EXISTS';
834
+    }
835 835
 
836
-	return spip_mysql_query("DROP TABLE$exist $table", $serveur, $requeter);
836
+    return spip_mysql_query("DROP TABLE$exist $table", $serveur, $requeter);
837 837
 }
838 838
 
839 839
 /**
@@ -848,11 +848,11 @@  discard block
 block discarded – undo
848 848
  *     - true si la requête a réussie, false sinon
849 849
  */
850 850
 function spip_mysql_drop_view($view, $exist = '', $serveur = '', $requeter = true) {
851
-	if ($exist) {
852
-		$exist = ' IF EXISTS';
853
-	}
851
+    if ($exist) {
852
+        $exist = ' IF EXISTS';
853
+    }
854 854
 
855
-	return spip_mysql_query("DROP VIEW$exist $view", $serveur, $requeter);
855
+    return spip_mysql_query("DROP VIEW$exist $view", $serveur, $requeter);
856 856
 }
857 857
 
858 858
 /**
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
  *     Ressource à utiliser avec sql_fetch()
870 870
  **/
871 871
 function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
872
-	return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
872
+    return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
873 873
 }
874 874
 
875 875
 /**
@@ -885,18 +885,18 @@  discard block
 block discarded – undo
885 885
  *     - true si la requête a réussie, false sinon
886 886
  */
887 887
 function spip_mysql_repair($table, $serveur = '', $requeter = true) {
888
-	$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
889
-	$engine = $table_status['Engine'];
890
-	if ($engine == 'InnoDB') {
891
-		if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
892
-			return [' OK '];
893
-		}
894
-	} elseif ($engine == 'MyISAM') {
895
-		return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
896
-	} else {
897
-		spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
898
-	}
899
-	return false;
888
+    $table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
889
+    $engine = $table_status['Engine'];
890
+    if ($engine == 'InnoDB') {
891
+        if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
892
+            return [' OK '];
893
+        }
894
+    } elseif ($engine == 'MyISAM') {
895
+        return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
896
+    } else {
897
+        spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
898
+    }
899
+    return false;
900 900
 }
901 901
 
902 902
 /**
@@ -914,12 +914,12 @@  discard block
 block discarded – undo
914 914
  *     - string : requete sql, si $requeter = true
915 915
  **/
916 916
 function spip_mysql_table_exists(string $table, $serveur = '', $requeter = true) {
917
-	$r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter);
918
-	if (!$requeter) {
919
-		return $r;
920
-	}
921
-	$res = spip_mysql_fetch($r);
922
-	return (bool) $res;
917
+    $r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter);
918
+    if (!$requeter) {
919
+        return $r;
920
+    }
921
+    $res = spip_mysql_fetch($r);
922
+    return (bool) $res;
923 923
 }
924 924
 
925 925
 define('_MYSQL_RE_SHOW_TABLE', '/^[^(),]*\(((?:[^()]*\((?:[^()]*\([^()]*\))?[^()]*\)[^()]*)*[^()]*)\)[^()]*$/');
@@ -942,86 +942,86 @@  discard block
 block discarded – undo
942 942
  *     - array description de la table sinon
943 943
  */
944 944
 function spip_mysql_showtable($nom_table, $serveur = '', $requeter = true) {
945
-	$s = spip_mysql_query("SHOW CREATE TABLE `$nom_table`", $serveur, $requeter);
946
-	if (!$s) {
947
-		return '';
948
-	}
949
-	if (!$requeter) {
950
-		return $s;
951
-	}
952
-
953
-	[, $a] = mysqli_fetch_array($s, MYSQLI_NUM);
954
-	if (preg_match(_MYSQL_RE_SHOW_TABLE, $a, $r)) {
955
-		$desc = $r[1];
956
-		// extraction d'une KEY éventuelle en prenant garde de ne pas
957
-		// relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
958
-		if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
959
-			$namedkeys = $r[2];
960
-			$desc = $r[1];
961
-		} else {
962
-			$namedkeys = '';
963
-		}
964
-
965
-		$fields = [];
966
-		foreach (preg_split('/,\s*`/', $desc) as $v) {
967
-			preg_match('/^\s*`?([^`]*)`\s*(.*)/', $v, $r);
968
-			$fields[strtolower($r[1])] = $r[2];
969
-		}
970
-		$keys = [];
971
-
972
-		foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
973
-			if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
974
-				$k = str_replace('`', '', trim($r[1]));
975
-				$t = strtolower(str_replace('`', '', $r[2]));
976
-				if ($k && !isset($keys[$k])) {
977
-					$keys[$k] = $t;
978
-				} else {
979
-					$keys[] = $t;
980
-				}
981
-			}
982
-		}
983
-		spip_mysql_free($s);
984
-
985
-		return ['field' => $fields, 'key' => $keys];
986
-	}
987
-
988
-	$res = spip_mysql_query("SHOW COLUMNS FROM `$nom_table`", $serveur);
989
-	if ($res) {
990
-		$nfields = [];
991
-		$nkeys = [];
992
-		while ($val = spip_mysql_fetch($res)) {
993
-			$nfields[$val['Field']] = $val['Type'];
994
-			if ($val['Null'] == 'NO') {
995
-				$nfields[$val['Field']] .= ' NOT NULL';
996
-			}
997
-			if ($val['Default'] === '0' || $val['Default']) {
998
-				if (preg_match('/[A-Z_]/', $val['Default'])) {
999
-					$nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
1000
-				} else {
1001
-					$nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
1002
-				}
1003
-			}
1004
-			if ($val['Extra']) {
1005
-				$nfields[$val['Field']] .= ' ' . $val['Extra'];
1006
-			}
1007
-			if ($val['Key'] == 'PRI') {
1008
-				$nkeys['PRIMARY KEY'] = $val['Field'];
1009
-			} else {
1010
-				if ($val['Key'] == 'MUL') {
1011
-					$nkeys['KEY ' . $val['Field']] = $val['Field'];
1012
-				} else {
1013
-					if ($val['Key'] == 'UNI') {
1014
-						$nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
1015
-					}
1016
-				}
1017
-			}
1018
-		}
1019
-		spip_mysql_free($res);
1020
-
1021
-		return ['field' => $nfields, 'key' => $nkeys];
1022
-	}
1023
-
1024
-	return '';
945
+    $s = spip_mysql_query("SHOW CREATE TABLE `$nom_table`", $serveur, $requeter);
946
+    if (!$s) {
947
+        return '';
948
+    }
949
+    if (!$requeter) {
950
+        return $s;
951
+    }
952
+
953
+    [, $a] = mysqli_fetch_array($s, MYSQLI_NUM);
954
+    if (preg_match(_MYSQL_RE_SHOW_TABLE, $a, $r)) {
955
+        $desc = $r[1];
956
+        // extraction d'une KEY éventuelle en prenant garde de ne pas
957
+        // relever un champ dont le nom contient KEY (ex. ID_WHISKEY)
958
+        if (preg_match('/^(.*?),([^,]*\sKEY[ (].*)$/s', $desc, $r)) {
959
+            $namedkeys = $r[2];
960
+            $desc = $r[1];
961
+        } else {
962
+            $namedkeys = '';
963
+        }
964
+
965
+        $fields = [];
966
+        foreach (preg_split('/,\s*`/', $desc) as $v) {
967
+            preg_match('/^\s*`?([^`]*)`\s*(.*)/', $v, $r);
968
+            $fields[strtolower($r[1])] = $r[2];
969
+        }
970
+        $keys = [];
971
+
972
+        foreach (preg_split('/\)\s*(,|$)/', $namedkeys) as $v) {
973
+            if (preg_match('/^\s*([^(]*)\(([^(]*(\(\d+\))?)$/', $v, $r)) {
974
+                $k = str_replace('`', '', trim($r[1]));
975
+                $t = strtolower(str_replace('`', '', $r[2]));
976
+                if ($k && !isset($keys[$k])) {
977
+                    $keys[$k] = $t;
978
+                } else {
979
+                    $keys[] = $t;
980
+                }
981
+            }
982
+        }
983
+        spip_mysql_free($s);
984
+
985
+        return ['field' => $fields, 'key' => $keys];
986
+    }
987
+
988
+    $res = spip_mysql_query("SHOW COLUMNS FROM `$nom_table`", $serveur);
989
+    if ($res) {
990
+        $nfields = [];
991
+        $nkeys = [];
992
+        while ($val = spip_mysql_fetch($res)) {
993
+            $nfields[$val['Field']] = $val['Type'];
994
+            if ($val['Null'] == 'NO') {
995
+                $nfields[$val['Field']] .= ' NOT NULL';
996
+            }
997
+            if ($val['Default'] === '0' || $val['Default']) {
998
+                if (preg_match('/[A-Z_]/', $val['Default'])) {
999
+                    $nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
1000
+                } else {
1001
+                    $nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
1002
+                }
1003
+            }
1004
+            if ($val['Extra']) {
1005
+                $nfields[$val['Field']] .= ' ' . $val['Extra'];
1006
+            }
1007
+            if ($val['Key'] == 'PRI') {
1008
+                $nkeys['PRIMARY KEY'] = $val['Field'];
1009
+            } else {
1010
+                if ($val['Key'] == 'MUL') {
1011
+                    $nkeys['KEY ' . $val['Field']] = $val['Field'];
1012
+                } else {
1013
+                    if ($val['Key'] == 'UNI') {
1014
+                        $nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
1015
+                    }
1016
+                }
1017
+            }
1018
+        }
1019
+        spip_mysql_free($res);
1020
+
1021
+        return ['field' => $nfields, 'key' => $nkeys];
1022
+    }
1023
+
1024
+    return '';
1025 1025
 }
1026 1026
 
1027 1027
 
@@ -1040,13 +1040,13 @@  discard block
 block discarded – undo
1040 1040
  *     - false Erreur
1041 1041
  */
1042 1042
 function spip_mysql_fetch($r, $t = '', $serveur = '', $requeter = true) {
1043
-	if (!$t) {
1044
-		$t = \MYSQLI_ASSOC;
1045
-	}
1046
-	if ($r) {
1047
-		return mysqli_fetch_array($r, $t);
1048
-	}
1049
-	return false;
1043
+    if (!$t) {
1044
+        $t = \MYSQLI_ASSOC;
1045
+    }
1046
+    if ($r) {
1047
+        return mysqli_fetch_array($r, $t);
1048
+    }
1049
+    return false;
1050 1050
 }
1051 1051
 
1052 1052
 /**
@@ -1059,10 +1059,10 @@  discard block
 block discarded – undo
1059 1059
  * @return bool True si déplacement réussi, false sinon.
1060 1060
  **/
1061 1061
 function spip_mysql_seek($r, $row_number, $serveur = '', $requeter = true) {
1062
-	if ($r and mysqli_num_rows($r)) {
1063
-		return mysqli_data_seek($r, $row_number);
1064
-	}
1065
-	return false;
1062
+    if ($r and mysqli_num_rows($r)) {
1063
+        return mysqli_data_seek($r, $row_number);
1064
+    }
1065
+    return false;
1066 1066
 }
1067 1067
 
1068 1068
 
@@ -1080,26 +1080,26 @@  discard block
 block discarded – undo
1080 1080
  *     - int Nombre de lignes (0 si la requête n'a pas réussie)
1081 1081
  **/
1082 1082
 function spip_mysql_countsel(
1083
-	$from = [],
1084
-	$where = [],
1085
-	$groupby = '',
1086
-	$having = [],
1087
-	$serveur = '',
1088
-	$requeter = true
1083
+    $from = [],
1084
+    $where = [],
1085
+    $groupby = '',
1086
+    $having = [],
1087
+    $serveur = '',
1088
+    $requeter = true
1089 1089
 ) {
1090
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1091
-
1092
-	$r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1093
-	if (!$requeter) {
1094
-		return $r;
1095
-	}
1096
-	if (!$r instanceof mysqli_result) {
1097
-		return 0;
1098
-	}
1099
-	[$c] = mysqli_fetch_array($r, MYSQLI_NUM);
1100
-	mysqli_free_result($r);
1101
-
1102
-	return intval($c);
1090
+    $c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1091
+
1092
+    $r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1093
+    if (!$requeter) {
1094
+        return $r;
1095
+    }
1096
+    if (!$r instanceof mysqli_result) {
1097
+        return 0;
1098
+    }
1099
+    [$c] = mysqli_fetch_array($r, MYSQLI_NUM);
1100
+    mysqli_free_result($r);
1101
+
1102
+    return intval($c);
1103 1103
 }
1104 1104
 
1105 1105
 
@@ -1122,16 +1122,16 @@  discard block
 block discarded – undo
1122 1122
  *     Erreur eventuelle
1123 1123
  **/
1124 1124
 function spip_mysql_error($query = '', $serveur = '', $requeter = true) {
1125
-	$link = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]['link'];
1126
-	$s = mysqli_error($link);
1127
-	if ($s) {
1128
-		$trace = debug_backtrace();
1129
-		if ($trace[0]['function'] != 'spip_mysql_error') {
1130
-			spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1131
-		}
1132
-	}
1133
-
1134
-	return $s;
1125
+    $link = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0]['link'];
1126
+    $s = mysqli_error($link);
1127
+    if ($s) {
1128
+        $trace = debug_backtrace();
1129
+        if ($trace[0]['function'] != 'spip_mysql_error') {
1130
+            spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1131
+        }
1132
+    }
1133
+
1134
+    return $s;
1135 1135
 }
1136 1136
 
1137 1137
 
@@ -1146,18 +1146,18 @@  discard block
 block discarded – undo
1146 1146
  *     0, pas d'erreur. Autre, numéro de l'erreur.
1147 1147
  **/
1148 1148
 function spip_mysql_errno($serveur = '', $requeter = true) {
1149
-	$link = $GLOBALS['connexions'][$serveur ?: 0]['link'];
1150
-	$s = mysqli_errno($link);
1151
-	// 2006 MySQL server has gone away
1152
-	// 2013 Lost connection to MySQL server during query
1153
-	if (in_array($s, [2006, 2013])) {
1154
-		define('spip_interdire_cache', true);
1155
-	}
1156
-	if ($s) {
1157
-		spip_log("Erreur mysql $s", _LOG_ERREUR);
1158
-	}
1159
-
1160
-	return $s;
1149
+    $link = $GLOBALS['connexions'][$serveur ?: 0]['link'];
1150
+    $s = mysqli_errno($link);
1151
+    // 2006 MySQL server has gone away
1152
+    // 2013 Lost connection to MySQL server during query
1153
+    if (in_array($s, [2006, 2013])) {
1154
+        define('spip_interdire_cache', true);
1155
+    }
1156
+    if ($s) {
1157
+        spip_log("Erreur mysql $s", _LOG_ERREUR);
1158
+    }
1159
+
1160
+    return $s;
1161 1161
 }
1162 1162
 
1163 1163
 
@@ -1171,9 +1171,9 @@  discard block
 block discarded – undo
1171 1171
  * @return int               Nombre de lignes
1172 1172
  */
1173 1173
 function spip_mysql_count($r, $serveur = '', $requeter = true) {
1174
-	if ($r) {
1175
-		return mysqli_num_rows($r);
1176
-	}
1174
+    if ($r) {
1175
+        return mysqli_num_rows($r);
1176
+    }
1177 1177
 }
1178 1178
 
1179 1179
 
@@ -1189,11 +1189,11 @@  discard block
 block discarded – undo
1189 1189
  * @return bool              True si réussi
1190 1190
  */
1191 1191
 function spip_mysql_free($r, $serveur = '', $requeter = true) {
1192
-	if ($r instanceof mysqli_result) {
1193
-		mysqli_free_result($r);
1194
-		return true;
1195
-	}
1196
-	return false;
1192
+    if ($r instanceof mysqli_result) {
1193
+        mysqli_free_result($r);
1194
+        return true;
1195
+    }
1196
+    return false;
1197 1197
 }
1198 1198
 
1199 1199
 
@@ -1221,59 +1221,59 @@  discard block
 block discarded – undo
1221 1221
  **/
1222 1222
 function spip_mysql_insert($table, $champs, $valeurs, $desc = [], $serveur = '', $requeter = true) {
1223 1223
 
1224
-	$e = null;
1225
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1226
-	$link = $connexion['link'];
1227
-	$table = prefixer_table_spip($table, $connexion['prefixe']);
1228
-
1229
-	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
1230
-	if (
1231
-		defined('_MYSQL_NOPLANES')
1232
-		and _MYSQL_NOPLANES
1233
-		and !empty($GLOBALS['meta']['charset_sql_connexion'])
1234
-		and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
1235
-	) {
1236
-		include_spip('inc/charsets');
1237
-		$valeurs = utf8_noplanes($valeurs);
1238
-	}
1239
-
1240
-	$query = "INSERT INTO $table $champs VALUES $valeurs";
1241
-	if (!$requeter) {
1242
-		return $query;
1243
-	}
1244
-
1245
-	if (isset($_GET['var_profile'])) {
1246
-		include_spip('public/tracer');
1247
-		$t = trace_query_start();
1248
-		$e = '';
1249
-	} else {
1250
-		$t = 0;
1251
-	}
1252
-
1253
-	$connexion['last'] = $query;
1254
-	#spip_log($query, 'mysql.'._LOG_DEBUG);
1255
-	$r = false;
1256
-	$insert = false;
1257
-	try {
1258
-		$insert = mysqli_query($link, $query);
1259
-	} catch (\mysqli_sql_exception $e) {
1260
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
1261
-		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
1262
-		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
1263
-	}
1264
-	if ($insert) {
1265
-		$r = mysqli_insert_id($link);
1266
-	} else {
1267
-		// Log de l'erreur eventuelle
1268
-		if ($e = spip_mysql_errno($serveur)) {
1269
-			// et du fautif
1270
-			$e .= spip_mysql_error($query, $serveur);
1271
-		}
1272
-	}
1273
-
1274
-	return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
1275
-
1276
-	// return $r ? $r : (($r===0) ? -1 : 0); pb avec le multi-base.
1224
+    $e = null;
1225
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
1226
+    $link = $connexion['link'];
1227
+    $table = prefixer_table_spip($table, $connexion['prefixe']);
1228
+
1229
+    // remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
1230
+    if (
1231
+        defined('_MYSQL_NOPLANES')
1232
+        and _MYSQL_NOPLANES
1233
+        and !empty($GLOBALS['meta']['charset_sql_connexion'])
1234
+        and $GLOBALS['meta']['charset_sql_connexion'] == 'utf8'
1235
+    ) {
1236
+        include_spip('inc/charsets');
1237
+        $valeurs = utf8_noplanes($valeurs);
1238
+    }
1239
+
1240
+    $query = "INSERT INTO $table $champs VALUES $valeurs";
1241
+    if (!$requeter) {
1242
+        return $query;
1243
+    }
1244
+
1245
+    if (isset($_GET['var_profile'])) {
1246
+        include_spip('public/tracer');
1247
+        $t = trace_query_start();
1248
+        $e = '';
1249
+    } else {
1250
+        $t = 0;
1251
+    }
1252
+
1253
+    $connexion['last'] = $query;
1254
+    #spip_log($query, 'mysql.'._LOG_DEBUG);
1255
+    $r = false;
1256
+    $insert = false;
1257
+    try {
1258
+        $insert = mysqli_query($link, $query);
1259
+    } catch (\mysqli_sql_exception $e) {
1260
+        spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
1261
+        // TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
1262
+        // mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
1263
+    }
1264
+    if ($insert) {
1265
+        $r = mysqli_insert_id($link);
1266
+    } else {
1267
+        // Log de l'erreur eventuelle
1268
+        if ($e = spip_mysql_errno($serveur)) {
1269
+            // et du fautif
1270
+            $e .= spip_mysql_error($query, $serveur);
1271
+        }
1272
+    }
1273
+
1274
+    return $t ? trace_query_end($query, $t, $r, $e, $serveur) : $r;
1275
+
1276
+    // return $r ? $r : (($r===0) ? -1 : 0); pb avec le multi-base.
1277 1277
 }
1278 1278
 
1279 1279
 /**
@@ -1298,26 +1298,26 @@  discard block
 block discarded – undo
1298 1298
  **/
1299 1299
 function spip_mysql_insertq($table, $couples = [], $desc = [], $serveur = '', $requeter = true) {
1300 1300
 
1301
-	if (!$desc) {
1302
-		$desc = description_table($table, $serveur);
1303
-	}
1304
-	if (!$desc) {
1305
-		$couples = [];
1306
-	}
1307
-	$fields = $desc['field'] ?? [];
1308
-
1309
-	foreach ($couples as $champ => $val) {
1310
-		$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1311
-	}
1312
-
1313
-	return spip_mysql_insert(
1314
-		$table,
1315
-		'(' . join(',', array_keys($couples)) . ')',
1316
-		'(' . join(',', $couples) . ')',
1317
-		$desc,
1318
-		$serveur,
1319
-		$requeter
1320
-	);
1301
+    if (!$desc) {
1302
+        $desc = description_table($table, $serveur);
1303
+    }
1304
+    if (!$desc) {
1305
+        $couples = [];
1306
+    }
1307
+    $fields = $desc['field'] ?? [];
1308
+
1309
+    foreach ($couples as $champ => $val) {
1310
+        $couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1311
+    }
1312
+
1313
+    return spip_mysql_insert(
1314
+        $table,
1315
+        '(' . join(',', array_keys($couples)) . ')',
1316
+        '(' . join(',', $couples) . ')',
1317
+        $desc,
1318
+        $serveur,
1319
+        $requeter
1320
+    );
1321 1321
 }
1322 1322
 
1323 1323
 
@@ -1342,34 +1342,34 @@  discard block
 block discarded – undo
1342 1342
  **/
1343 1343
 function spip_mysql_insertq_multi($table, $tab_couples = [], $desc = [], $serveur = '', $requeter = true) {
1344 1344
 
1345
-	if (!$desc) {
1346
-		$desc = description_table($table, $serveur);
1347
-	}
1348
-	if (!$desc) {
1349
-		$tab_couples = [];
1350
-	}
1351
-	$fields = $desc['field'] ?? [];
1352
-
1353
-	$cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1354
-	$valeurs = [];
1355
-	$r = false;
1356
-
1357
-	// Quoter et Inserer par groupes de 100 max pour eviter un debordement de pile
1358
-	foreach ($tab_couples as $couples) {
1359
-		foreach ($couples as $champ => $val) {
1360
-			$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1361
-		}
1362
-		$valeurs[] = '(' . join(',', $couples) . ')';
1363
-		if (count($valeurs) >= 100) {
1364
-			$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1365
-			$valeurs = [];
1366
-		}
1367
-	}
1368
-	if (count($valeurs)) {
1369
-		$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1370
-	}
1371
-
1372
-	return $r; // dans le cas d'une table auto_increment, le dernier insert_id
1345
+    if (!$desc) {
1346
+        $desc = description_table($table, $serveur);
1347
+    }
1348
+    if (!$desc) {
1349
+        $tab_couples = [];
1350
+    }
1351
+    $fields = $desc['field'] ?? [];
1352
+
1353
+    $cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1354
+    $valeurs = [];
1355
+    $r = false;
1356
+
1357
+    // Quoter et Inserer par groupes de 100 max pour eviter un debordement de pile
1358
+    foreach ($tab_couples as $couples) {
1359
+        foreach ($couples as $champ => $val) {
1360
+            $couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1361
+        }
1362
+        $valeurs[] = '(' . join(',', $couples) . ')';
1363
+        if (count($valeurs) >= 100) {
1364
+            $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1365
+            $valeurs = [];
1366
+        }
1367
+    }
1368
+    if (count($valeurs)) {
1369
+        $r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1370
+    }
1371
+
1372
+    return $r; // dans le cas d'une table auto_increment, le dernier insert_id
1373 1373
 }
1374 1374
 
1375 1375
 /**
@@ -1394,20 +1394,20 @@  discard block
 block discarded – undo
1394 1394
  *     - array Tableau décrivant la requête et son temps d'exécution si var_profile est actif
1395 1395
  */
1396 1396
 function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1397
-	$set = [];
1398
-	foreach ($champs as $champ => $val) {
1399
-		$set[] = $champ . "=$val";
1400
-	}
1401
-	if (!empty($set)) {
1402
-		return spip_mysql_query(
1403
-			calculer_mysql_expression('UPDATE', $table, ',')
1404
-			. calculer_mysql_expression('SET', $set, ',')
1405
-			. calculer_mysql_expression('WHERE', $where),
1406
-			$serveur,
1407
-			$requeter
1408
-		);
1409
-	}
1410
-	return false;
1397
+    $set = [];
1398
+    foreach ($champs as $champ => $val) {
1399
+        $set[] = $champ . "=$val";
1400
+    }
1401
+    if (!empty($set)) {
1402
+        return spip_mysql_query(
1403
+            calculer_mysql_expression('UPDATE', $table, ',')
1404
+            . calculer_mysql_expression('SET', $set, ',')
1405
+            . calculer_mysql_expression('WHERE', $where),
1406
+            $serveur,
1407
+            $requeter
1408
+        );
1409
+    }
1410
+    return false;
1411 1411
 }
1412 1412
 
1413 1413
 /**
@@ -1440,29 +1440,29 @@  discard block
 block discarded – undo
1440 1440
  */
1441 1441
 function spip_mysql_updateq($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1442 1442
 
1443
-	if (!$champs) {
1444
-		return;
1445
-	}
1446
-	if (!$desc) {
1447
-		$desc = description_table($table, $serveur);
1448
-	}
1449
-	if (!$desc) {
1450
-		$champs = [];
1451
-	} else {
1452
-		$fields = $desc['field'];
1453
-	}
1454
-	$set = [];
1455
-	foreach ($champs as $champ => $val) {
1456
-		$set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1457
-	}
1458
-
1459
-	return spip_mysql_query(
1460
-		calculer_mysql_expression('UPDATE', $table, ',')
1461
-		. calculer_mysql_expression('SET', $set, ',')
1462
-		. calculer_mysql_expression('WHERE', $where),
1463
-		$serveur,
1464
-		$requeter
1465
-	);
1443
+    if (!$champs) {
1444
+        return;
1445
+    }
1446
+    if (!$desc) {
1447
+        $desc = description_table($table, $serveur);
1448
+    }
1449
+    if (!$desc) {
1450
+        $champs = [];
1451
+    } else {
1452
+        $fields = $desc['field'];
1453
+    }
1454
+    $set = [];
1455
+    foreach ($champs as $champ => $val) {
1456
+        $set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1457
+    }
1458
+
1459
+    return spip_mysql_query(
1460
+        calculer_mysql_expression('UPDATE', $table, ',')
1461
+        . calculer_mysql_expression('SET', $set, ',')
1462
+        . calculer_mysql_expression('WHERE', $where),
1463
+        $serveur,
1464
+        $requeter
1465
+    );
1466 1466
 }
1467 1467
 
1468 1468
 /**
@@ -1478,22 +1478,22 @@  discard block
 block discarded – undo
1478 1478
  *     - false en cas d'erreur.
1479 1479
  **/
1480 1480
 function spip_mysql_delete($table, $where = '', $serveur = '', $requeter = true) {
1481
-	$res = spip_mysql_query(
1482
-		calculer_mysql_expression('DELETE FROM', $table, ',')
1483
-		. calculer_mysql_expression('WHERE', $where),
1484
-		$serveur,
1485
-		$requeter
1486
-	);
1487
-	if (!$requeter) {
1488
-		return $res;
1489
-	}
1490
-	if ($res) {
1491
-		$link = _mysql_link($serveur);
1492
-
1493
-		return mysqli_affected_rows($link);
1494
-	} else {
1495
-		return false;
1496
-	}
1481
+    $res = spip_mysql_query(
1482
+        calculer_mysql_expression('DELETE FROM', $table, ',')
1483
+        . calculer_mysql_expression('WHERE', $where),
1484
+        $serveur,
1485
+        $requeter
1486
+    );
1487
+    if (!$requeter) {
1488
+        return $res;
1489
+    }
1490
+    if ($res) {
1491
+        $link = _mysql_link($serveur);
1492
+
1493
+        return mysqli_affected_rows($link);
1494
+    } else {
1495
+        return false;
1496
+    }
1497 1497
 }
1498 1498
 
1499 1499
 
@@ -1522,10 +1522,10 @@  discard block
 block discarded – undo
1522 1522
  *     - false en cas d'erreur.
1523 1523
  **/
1524 1524
 function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1525
-	return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1526
-		',',
1527
-		array_map('_q', $couples)
1528
-	) . ')', $serveur, $requeter);
1525
+    return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1526
+        ',',
1527
+        array_map('_q', $couples)
1528
+    ) . ')', $serveur, $requeter);
1529 1529
 }
1530 1530
 
1531 1531
 
@@ -1554,14 +1554,14 @@  discard block
 block discarded – undo
1554 1554
  *     - false en cas d'erreur.
1555 1555
  **/
1556 1556
 function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1557
-	$cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1558
-	$valeurs = [];
1559
-	foreach ($tab_couples as $couples) {
1560
-		$valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1561
-	}
1562
-	$valeurs = implode(', ', $valeurs);
1563
-
1564
-	return spip_mysql_query("REPLACE $table $cles VALUES $valeurs", $serveur, $requeter);
1557
+    $cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1558
+    $valeurs = [];
1559
+    foreach ($tab_couples as $couples) {
1560
+        $valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1561
+    }
1562
+    $valeurs = implode(', ', $valeurs);
1563
+
1564
+    return spip_mysql_query("REPLACE $table $cles VALUES $valeurs", $serveur, $requeter);
1565 1565
 }
1566 1566
 
1567 1567
 
@@ -1576,32 +1576,32 @@  discard block
 block discarded – undo
1576 1576
  * @return string       texte de sélection pour la requête
1577 1577
  */
1578 1578
 function spip_mysql_multi($objet, $lang) {
1579
-	$lengthlang = strlen("[$lang]");
1580
-	$posmulti = 'INSTR(' . $objet . ", '<multi>')";
1581
-	$posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1582
-	$debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1583
-	$finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1584
-	$chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1585
-	$poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1586
-	$poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1587
-	$chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1588
-	$posfinlang = 'INSTR(' . $chainelang . ", '[')";
1589
-	$chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1590
-	//$chainelang = "LEFT($chainelang,$posfinlang-1)";
1591
-	$retour = "(TRIM(IF($posmulti = 0 , " .
1592
-		'     TRIM(' . $objet . '), ' .
1593
-		'     CONCAT( ' .
1594
-		"          $debutchaine, " .
1595
-		'          IF( ' .
1596
-		"               $poslang = 0, " .
1597
-		"                     $chainemulti, " .
1598
-		"               $chainelang" .
1599
-		'          ), ' .
1600
-		"          $finchaine" .
1601
-		'     ) ' .
1602
-		'))) AS multi';
1603
-
1604
-	return $retour;
1579
+    $lengthlang = strlen("[$lang]");
1580
+    $posmulti = 'INSTR(' . $objet . ", '<multi>')";
1581
+    $posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1582
+    $debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1583
+    $finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1584
+    $chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1585
+    $poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1586
+    $poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1587
+    $chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1588
+    $posfinlang = 'INSTR(' . $chainelang . ", '[')";
1589
+    $chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1590
+    //$chainelang = "LEFT($chainelang,$posfinlang-1)";
1591
+    $retour = "(TRIM(IF($posmulti = 0 , " .
1592
+        '     TRIM(' . $objet . '), ' .
1593
+        '     CONCAT( ' .
1594
+        "          $debutchaine, " .
1595
+        '          IF( ' .
1596
+        "               $poslang = 0, " .
1597
+        "                     $chainemulti, " .
1598
+        "               $chainelang" .
1599
+        '          ), ' .
1600
+        "          $finchaine" .
1601
+        '     ) ' .
1602
+        '))) AS multi';
1603
+
1604
+    return $retour;
1605 1605
 }
1606 1606
 
1607 1607
 /**
@@ -1615,7 +1615,7 @@  discard block
 block discarded – undo
1615 1615
  *     Valeur hexadécimale pour MySQL
1616 1616
  **/
1617 1617
 function spip_mysql_hex($v) {
1618
-	return '0x' . $v;
1618
+    return '0x' . $v;
1619 1619
 }
1620 1620
 
1621 1621
 /**
@@ -1631,15 +1631,15 @@  discard block
 block discarded – undo
1631 1631
  *    Donnée prête à être utilisée par le gestionnaire SQL
1632 1632
  */
1633 1633
 function spip_mysql_quote($v, $type = '') {
1634
-	if (!is_array($v)) {
1635
-		return spip_mysql_cite($v, $type);
1636
-	}
1637
-
1638
-	// si c'est un tableau, le parcourir en propageant le type
1639
-	foreach ($v as $k => $r) {
1640
-		$v[$k] = spip_mysql_quote($r, $type);
1641
-	}
1642
-	return implode(',', $v);
1634
+    if (!is_array($v)) {
1635
+        return spip_mysql_cite($v, $type);
1636
+    }
1637
+
1638
+    // si c'est un tableau, le parcourir en propageant le type
1639
+    foreach ($v as $k => $r) {
1640
+        $v[$k] = spip_mysql_quote($r, $type);
1641
+    }
1642
+    return implode(',', $v);
1643 1643
 }
1644 1644
 
1645 1645
 /**
@@ -1655,18 +1655,18 @@  discard block
 block discarded – undo
1655 1655
  *     Expression SQL
1656 1656
  **/
1657 1657
 function spip_mysql_date_proche($champ, $interval, $unite) {
1658
-	$use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1659
-	return '('
1660
-	. $champ
1661
-	. (($interval <= 0) ? '>' : '<')
1662
-	. (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
1663
-	. '('
1664
-	. ($use_now ? 'NOW()' : sql_quote(date('Y-m-d H:i:s')))
1665
-	. ', INTERVAL '
1666
-	. (($interval > 0) ? $interval : (0 - $interval))
1667
-	. ' '
1668
-	. $unite
1669
-	. '))';
1658
+    $use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1659
+    return '('
1660
+    . $champ
1661
+    . (($interval <= 0) ? '>' : '<')
1662
+    . (($interval <= 0) ? 'DATE_SUB' : 'DATE_ADD')
1663
+    . '('
1664
+    . ($use_now ? 'NOW()' : sql_quote(date('Y-m-d H:i:s')))
1665
+    . ', INTERVAL '
1666
+    . (($interval > 0) ? $interval : (0 - $interval))
1667
+    . ' '
1668
+    . $unite
1669
+    . '))';
1670 1670
 }
1671 1671
 
1672 1672
 
@@ -1690,7 +1690,7 @@  discard block
 block discarded – undo
1690 1690
  *     Expression de requête SQL
1691 1691
  **/
1692 1692
 function spip_mysql_in($val, $valeurs, $not = '', $serveur = '', $requeter = true) {
1693
-	return "($val $not IN ($valeurs))";
1693
+    return "($val $not IN ($valeurs))";
1694 1694
 }
1695 1695
 
1696 1696
 
@@ -1702,39 +1702,39 @@  discard block
 block discarded – undo
1702 1702
  * @return string|number     texte ou nombre échappé
1703 1703
  */
1704 1704
 function spip_mysql_cite($v, $type) {
1705
-	if (!$type) {
1706
-		if (is_bool($v)) {
1707
-			return strval(intval($v));
1708
-		} elseif (is_numeric($v)) {
1709
-			return strval($v);
1710
-		} elseif ($v === null) {
1711
-			return "''";
1712
-		}
1713
-		return "'" . addslashes($v) . "'";
1714
-	}
1715
-
1716
-	if ($v === null) {
1717
-		if (stripos($type, 'NOT NULL') === false) {
1718
-			// null php se traduit en NULL SQL
1719
-			return 'NULL';
1720
-		} else {
1721
-			return "''";
1722
-		}
1723
-	} elseif (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
1724
-		return $v;
1725
-	} elseif (sql_test_int($type)) {
1726
-		if (
1727
-			is_numeric($v)
1728
-			or ($v and ctype_xdigit(substr($v, 2)) and $v[0] === '0' and $v[1] === 'x')
1729
-		) {
1730
-			return $v;
1731
-		} else {
1732
-			// si pas numerique, forcer le intval
1733
-			return intval($v);
1734
-		}
1735
-	}
1736
-
1737
-	return ("'" . addslashes($v) . "'");
1705
+    if (!$type) {
1706
+        if (is_bool($v)) {
1707
+            return strval(intval($v));
1708
+        } elseif (is_numeric($v)) {
1709
+            return strval($v);
1710
+        } elseif ($v === null) {
1711
+            return "''";
1712
+        }
1713
+        return "'" . addslashes($v) . "'";
1714
+    }
1715
+
1716
+    if ($v === null) {
1717
+        if (stripos($type, 'NOT NULL') === false) {
1718
+            // null php se traduit en NULL SQL
1719
+            return 'NULL';
1720
+        } else {
1721
+            return "''";
1722
+        }
1723
+    } elseif (sql_test_date($type) and preg_match('/^\w+\(/', $v)) {
1724
+        return $v;
1725
+    } elseif (sql_test_int($type)) {
1726
+        if (
1727
+            is_numeric($v)
1728
+            or ($v and ctype_xdigit(substr($v, 2)) and $v[0] === '0' and $v[1] === 'x')
1729
+        ) {
1730
+            return $v;
1731
+        } else {
1732
+            // si pas numerique, forcer le intval
1733
+            return intval($v);
1734
+        }
1735
+    }
1736
+
1737
+    return ("'" . addslashes($v) . "'");
1738 1738
 }
1739 1739
 
1740 1740
 /**
@@ -1744,7 +1744,7 @@  discard block
 block discarded – undo
1744 1744
  *     True si on a les fonctions, false sinon
1745 1745
  */
1746 1746
 function spip_versions_mysql() {
1747
-	return function_exists('mysqli_query');
1747
+    return function_exists('mysqli_query');
1748 1748
 }
1749 1749
 
1750 1750
 
@@ -1757,20 +1757,20 @@  discard block
 block discarded – undo
1757 1757
  *     - chaîne : code compilé pour le faire désactiver par SPIP sinon
1758 1758
  */
1759 1759
 function test_rappel_nom_base_mysql($server_db) {
1760
-	$GLOBALS['mysql_rappel_nom_base'] = true;
1761
-	sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1762
-	$ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
1760
+    $GLOBALS['mysql_rappel_nom_base'] = true;
1761
+    sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1762
+    $ok = spip_query("INSERT INTO spip_meta (nom,valeur) VALUES ('mysql_rappel_nom_base', 'test')", $server_db);
1763 1763
 
1764
-	if ($ok) {
1765
-		sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1764
+    if ($ok) {
1765
+        sql_delete('spip_meta', "nom='mysql_rappel_nom_base'", $server_db);
1766 1766
 
1767
-		return '';
1768
-	} else {
1769
-		$GLOBALS['mysql_rappel_nom_base'] = false;
1767
+        return '';
1768
+    } else {
1769
+        $GLOBALS['mysql_rappel_nom_base'] = false;
1770 1770
 
1771
-		return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1772
-		"/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1773
-	}
1771
+        return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1772
+        "/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1773
+    }
1774 1774
 }
1775 1775
 
1776 1776
 /**
@@ -1784,13 +1784,13 @@  discard block
 block discarded – undo
1784 1784
  *     - chaîne : code compilé pour l'indiquer le résultat du test à SPIP
1785 1785
  */
1786 1786
 function test_sql_mode_mysql($server_db) {
1787
-	$res = sql_select('version() as v', '', '', '', '', '', '', $server_db);
1788
-	$row = sql_fetch($res, $server_db);
1789
-	if (version_compare($row['v'], '5.0.0', '>=')) {
1790
-		defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true);
1787
+    $res = sql_select('version() as v', '', '', '', '', '', '', $server_db);
1788
+    $row = sql_fetch($res, $server_db);
1789
+    if (version_compare($row['v'], '5.0.0', '>=')) {
1790
+        defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE', true);
1791 1791
 
1792
-		return "defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);\n";
1793
-	}
1792
+        return "defined('_MYSQL_SET_SQL_MODE') || define('_MYSQL_SET_SQL_MODE',true);\n";
1793
+    }
1794 1794
 
1795
-	return '';
1795
+    return '';
1796 1796
 }
Please login to merge, or discard this patch.
Spacing   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -58,12 +58,12 @@  discard block
 block discarded – undo
58 58
 			$link = @mysqli_connect($host, $login, $pass);
59 59
 		}
60 60
 	} catch (\mysqli_sql_exception $e) {
61
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
61
+		spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
62 62
 		$link = false;
63 63
 	}
64 64
 
65 65
 	if (!$link) {
66
-		spip_log('Echec mysqli_connect. Erreur : ' . mysqli_connect_error(), 'mysql.' . _LOG_HS);
66
+		spip_log('Echec mysqli_connect. Erreur : '.mysqli_connect_error(), 'mysql.'._LOG_HS);
67 67
 
68 68
 		return false;
69 69
 	}
@@ -82,7 +82,7 @@  discard block
 block discarded – undo
82 82
 	}
83 83
 
84 84
 	spip_log(
85
-		"Connexion MySQLi vers $host, base $db, prefixe $prefixe " . ($ok ? 'operationnelle' : 'impossible'),
85
+		"Connexion MySQLi vers $host, base $db, prefixe $prefixe ".($ok ? 'operationnelle' : 'impossible'),
86 86
 		_LOG_DEBUG
87 87
 	);
88 88
 
@@ -173,9 +173,9 @@  discard block
 block discarded – undo
173 173
  */
174 174
 function spip_mysql_set_charset($charset, $serveur = '', $requeter = true) {
175 175
 	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
176
-	spip_log('changement de charset sql : ' . 'SET NAMES ' . _q($charset), _LOG_DEBUG);
176
+	spip_log('changement de charset sql : '.'SET NAMES '._q($charset), _LOG_DEBUG);
177 177
 
178
-	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES ' . _q($charset));
178
+	return mysqli_query($connexion['link'], $connexion['last'] = 'SET NAMES '._q($charset));
179 179
 }
180 180
 
181 181
 
@@ -190,7 +190,7 @@  discard block
 block discarded – undo
190 190
 function spip_mysql_get_charset($charset = [], $serveur = '', $requeter = true) {
191 191
 	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
192 192
 	$connexion['last'] = $c = 'SHOW CHARACTER SET'
193
-		. (!$charset ? '' : (' LIKE ' . _q($charset['charset'])));
193
+		. (!$charset ? '' : (' LIKE '._q($charset['charset'])));
194 194
 
195 195
 	return spip_mysql_fetch(mysqli_query($connexion['link'], $c), null, $serveur);
196 196
 }
@@ -234,21 +234,21 @@  discard block
 block discarded – undo
234 234
 	$debug = '';
235 235
 	if (defined('_DEBUG_SLOW_QUERIES') and _DEBUG_SLOW_QUERIES) {
236 236
 		if (isset($GLOBALS['debug']['aucasou'])) {
237
-			[, $id, , $infos] = $GLOBALS['debug']['aucasou'];
238
-			$debug .= "BOUCLE$id @ " . ($infos[0] ?? '') . ' | ';
237
+			[, $id,, $infos] = $GLOBALS['debug']['aucasou'];
238
+			$debug .= "BOUCLE$id @ ".($infos[0] ?? '').' | ';
239 239
 		}
240 240
 		if (isset($_SERVER['REQUEST_URI'])) {
241 241
 			$debug .= $_SERVER['REQUEST_URI'];
242 242
 		}
243 243
 		if (!empty($GLOBALS['ip'])) {
244
-			$debug .= ' + ' . $GLOBALS['ip'];
244
+			$debug .= ' + '.$GLOBALS['ip'];
245 245
 		}
246
-		$debug = ' /* ' . mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)) . ' */';
246
+		$debug = ' /* '.mysqli_real_escape_string($link, str_replace('*/', '@/', $debug)).' */';
247 247
 	}
248 248
 	try {
249
-		$r = mysqli_query($link, $query . $debug);
249
+		$r = mysqli_query($link, $query.$debug);
250 250
 	} catch (\mysqli_sql_exception $e) {
251
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
251
+		spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
252 252
 		$r = false;
253 253
 		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
254 254
 		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
@@ -266,9 +266,9 @@  discard block
 block discarded – undo
266 266
 			$link = $connexion['link'];
267 267
 			//On retente au cas où
268 268
 			try {
269
-				$r = mysqli_query($link, $query . $debug);
269
+				$r = mysqli_query($link, $query.$debug);
270 270
 			} catch (\mysqli_sql_exception $e) {
271
-				spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
271
+				spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
272 272
 				$r = false;
273 273
 				// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
274 274
 				// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
@@ -301,7 +301,7 @@  discard block
 block discarded – undo
301 301
 	// d'utiliser ceux-ci, copie-colle de phpmyadmin
302 302
 	$query = preg_replace(',^TABLE\s*`([^`]*)`,i', "TABLE \\1", $query);
303 303
 
304
-	return spip_mysql_query('ALTER ' . $query, $serveur, $requeter); # i.e. que PG se debrouille
304
+	return spip_mysql_query('ALTER '.$query, $serveur, $requeter); # i.e. que PG se debrouille
305 305
 }
306 306
 
307 307
 
@@ -314,7 +314,7 @@  discard block
 block discarded – undo
314 314
  * @return bool            Toujours true
315 315
  */
316 316
 function spip_mysql_optimize($table, $serveur = '', $requeter = true) {
317
-	spip_mysql_query('OPTIMIZE TABLE ' . $table);
317
+	spip_mysql_query('OPTIMIZE TABLE '.$table);
318 318
 
319 319
 	return true;
320 320
 }
@@ -337,7 +337,7 @@  discard block
 block discarded – undo
337 337
 	$link = $connexion['link'];
338 338
 	$db = $connexion['db'];
339 339
 
340
-	$query = 'EXPLAIN ' . _mysql_traite_query($query, $db, $prefixe);
340
+	$query = 'EXPLAIN '._mysql_traite_query($query, $db, $prefixe);
341 341
 	$r = mysqli_query($link, $query);
342 342
 
343 343
 	return spip_mysql_fetch($r, null, $serveur);
@@ -388,7 +388,7 @@  discard block
 block discarded – undo
388 388
 		. calculer_mysql_expression('WHERE', $where)
389 389
 		. calculer_mysql_expression('GROUP BY', $groupby, ',')
390 390
 		. calculer_mysql_expression('HAVING', $having)
391
-		. ($orderby ? ("\nORDER BY " . spip_mysql_order($orderby)) : '')
391
+		. ($orderby ? ("\nORDER BY ".spip_mysql_order($orderby)) : '')
392 392
 		. ($limit ? "\nLIMIT $limit" : '');
393 393
 
394 394
 	// renvoyer la requete inerte si demandee
@@ -478,12 +478,12 @@  discard block
 block discarded – undo
478 478
 	$exp = "\n$expression ";
479 479
 
480 480
 	if (!is_array($v)) {
481
-		return $exp . $v;
481
+		return $exp.$v;
482 482
 	} else {
483 483
 		if (strtoupper($join) === 'AND') {
484
-			return $exp . join("\n\t$join ", array_map('calculer_mysql_where', $v));
484
+			return $exp.join("\n\t$join ", array_map('calculer_mysql_where', $v));
485 485
 		} else {
486
-			return $exp . join($join, $v);
486
+			return $exp.join($join, $v);
487 487
 		}
488 488
 	}
489 489
 }
@@ -501,17 +501,17 @@  discard block
 block discarded – undo
501 501
 		if (substr($k, -1) == '@') {
502 502
 			// c'est une jointure qui se refere au from precedent
503 503
 			// pas de virgule
504
-			$res .= '  ' . $v;
504
+			$res .= '  '.$v;
505 505
 		} else {
506 506
 			if (!is_numeric($k)) {
507 507
 				$p = strpos($v, ' ');
508 508
 				if ($p) {
509
-					$v = substr($v, 0, $p) . " AS `$k`" . substr($v, $p);
509
+					$v = substr($v, 0, $p)." AS `$k`".substr($v, $p);
510 510
 				} else {
511 511
 					$v .= " AS `$k`";
512 512
 				}
513 513
 			}
514
-			$res .= ', ' . $v;
514
+			$res .= ', '.$v;
515 515
 		}
516 516
 	}
517 517
 
@@ -541,13 +541,13 @@  discard block
 block discarded – undo
541 541
 function _mysql_traite_query($query, $db = '', $prefixe = '', $echappe_textes = true) {
542 542
 
543 543
 	if ($GLOBALS['mysql_rappel_nom_base'] and $db) {
544
-		$pref = '`' . $db . '`.';
544
+		$pref = '`'.$db.'`.';
545 545
 	} else {
546 546
 		$pref = '';
547 547
 	}
548 548
 
549 549
 	if ($prefixe) {
550
-		$pref .= $prefixe . '_';
550
+		$pref .= $prefixe.'_';
551 551
 	}
552 552
 
553 553
 	if (!preg_match('/\s(SET|VALUES|WHERE|DATABASE)\s/i', $query, $regs)) {
@@ -566,7 +566,7 @@  discard block
 block discarded – undo
566 566
 				$suite_echap = $suite;
567 567
 			}
568 568
 			if (preg_match('/^(.*?)([(]\s*SELECT\b.*)$/si', $suite_echap, $r)) {
569
-				$suite_echap = $r[1] . _mysql_traite_query($r[2], $db, $prefixe, false);
569
+				$suite_echap = $r[1]._mysql_traite_query($r[2], $db, $prefixe, false);
570 570
 				if ($echappe_textes) {
571 571
 					$suite = query_reinjecte_textes($suite_echap, $textes);
572 572
 				}
@@ -576,7 +576,7 @@  discard block
 block discarded – undo
576 576
 			}
577 577
 		}
578 578
 	}
579
-	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1' . $pref, $query) . $suite;
579
+	$r = preg_replace(_SQL_PREFIXE_TABLE_MYSQL, '\1'.$pref, $query).$suite;
580 580
 
581 581
 	// en option, remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
582 582
 	// remplacer les emoji (que mysql ne sait pas gérer) en &#128169;
@@ -616,7 +616,7 @@  discard block
 block discarded – undo
616 616
 		$ok = false;
617 617
 	}
618 618
 	if (!$ok) {
619
-		spip_log('Echec mysqli_selectdb. Erreur : ' . mysqli_error($link), 'mysql.' . _LOG_CRITIQUE);
619
+		spip_log('Echec mysqli_selectdb. Erreur : '.mysqli_error($link), 'mysql.'._LOG_CRITIQUE);
620 620
 	}
621 621
 
622 622
 	return $ok;
@@ -706,10 +706,10 @@  discard block
 block discarded – undo
706 706
 
707 707
 	$character_set = '';
708 708
 	if (@$GLOBALS['meta']['charset_sql_base']) {
709
-		$character_set .= ' CHARACTER SET ' . $GLOBALS['meta']['charset_sql_base'];
709
+		$character_set .= ' CHARACTER SET '.$GLOBALS['meta']['charset_sql_base'];
710 710
 	}
711 711
 	if (@$GLOBALS['meta']['charset_collation_sql_base']) {
712
-		$character_set .= ' COLLATE ' . $GLOBALS['meta']['charset_collation_sql_base'];
712
+		$character_set .= ' COLLATE '.$GLOBALS['meta']['charset_collation_sql_base'];
713 713
 	}
714 714
 
715 715
 	foreach ($champs as $k => $v) {
@@ -719,7 +719,7 @@  discard block
 block discarded – undo
719 719
 				preg_match(',(char|text),i', $defs[1])
720 720
 				and !preg_match(',(binary|CHARACTER|COLLATE),i', $v)
721 721
 			) {
722
-				$v = $defs[1] . $character_set . ' ' . substr($v, strlen($defs[1]));
722
+				$v = $defs[1].$character_set.' '.substr($v, strlen($defs[1]));
723 723
 			}
724 724
 		}
725 725
 
@@ -731,8 +731,8 @@  discard block
 block discarded – undo
731 731
 		$s = ',';
732 732
 	}
733 733
 	$temporary = $temporary ? 'TEMPORARY' : '';
734
-	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query" . ($keys ? ",$keys" : '') . ')'
735
-		. (defined('_MYSQL_ENGINE') ? ' ENGINE=' . _MYSQL_ENGINE : '')
734
+	$q = "CREATE $temporary TABLE IF NOT EXISTS $nom ($query".($keys ? ",$keys" : '').')'
735
+		. (defined('_MYSQL_ENGINE') ? ' ENGINE='._MYSQL_ENGINE : '')
736 736
 		. ($character_set ? " DEFAULT $character_set" : '')
737 737
 		. "\n";
738 738
 
@@ -811,7 +811,7 @@  discard block
 block discarded – undo
811 811
 		return false;
812 812
 	}
813 813
 
814
-	$query = "CREATE VIEW $nom AS " . $query_select;
814
+	$query = "CREATE VIEW $nom AS ".$query_select;
815 815
 
816 816
 	return spip_mysql_query($query, $serveur, $requeter);
817 817
 }
@@ -869,7 +869,7 @@  discard block
 block discarded – undo
869 869
  *     Ressource à utiliser avec sql_fetch()
870 870
  **/
871 871
 function spip_mysql_showbase($match, $serveur = '', $requeter = true) {
872
-	return spip_mysql_query('SHOW TABLES LIKE ' . _q($match), $serveur, $requeter);
872
+	return spip_mysql_query('SHOW TABLES LIKE '._q($match), $serveur, $requeter);
873 873
 }
874 874
 
875 875
 /**
@@ -885,7 +885,7 @@  discard block
 block discarded – undo
885 885
  *     - true si la requête a réussie, false sinon
886 886
  */
887 887
 function spip_mysql_repair($table, $serveur = '', $requeter = true) {
888
-	$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = ' . _q($table), $serveur, true));
888
+	$table_status = spip_mysql_fetch(spip_mysql_query('SHOW TABLE STATUS WHERE Name = '._q($table), $serveur, true));
889 889
 	$engine = $table_status['Engine'];
890 890
 	if ($engine == 'InnoDB') {
891 891
 		if (spip_mysql_alter("TABLE $table ENGINE = InnoDB", $serveur, $requeter)) {
@@ -894,7 +894,7 @@  discard block
 block discarded – undo
894 894
 	} elseif ($engine == 'MyISAM') {
895 895
 		return spip_mysql_query("REPAIR TABLE `$table`", $serveur, $requeter);
896 896
 	} else {
897
-		spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.' . _LOG_DEBUG);
897
+		spip_log("spip_mysql_repair impossible pour la table $table engine $engine", 'mysql.'._LOG_DEBUG);
898 898
 	}
899 899
 	return false;
900 900
 }
@@ -914,7 +914,7 @@  discard block
 block discarded – undo
914 914
  *     - string : requete sql, si $requeter = true
915 915
  **/
916 916
 function spip_mysql_table_exists(string $table, $serveur = '', $requeter = true) {
917
-	$r = spip_mysql_query('SHOW TABLES LIKE ' . _q($table), $serveur, $requeter);
917
+	$r = spip_mysql_query('SHOW TABLES LIKE '._q($table), $serveur, $requeter);
918 918
 	if (!$requeter) {
919 919
 		return $r;
920 920
 	}
@@ -996,22 +996,22 @@  discard block
 block discarded – undo
996 996
 			}
997 997
 			if ($val['Default'] === '0' || $val['Default']) {
998 998
 				if (preg_match('/[A-Z_]/', $val['Default'])) {
999
-					$nfields[$val['Field']] .= ' DEFAULT ' . $val['Default'];
999
+					$nfields[$val['Field']] .= ' DEFAULT '.$val['Default'];
1000 1000
 				} else {
1001
-					$nfields[$val['Field']] .= " DEFAULT '" . $val['Default'] . "'";
1001
+					$nfields[$val['Field']] .= " DEFAULT '".$val['Default']."'";
1002 1002
 				}
1003 1003
 			}
1004 1004
 			if ($val['Extra']) {
1005
-				$nfields[$val['Field']] .= ' ' . $val['Extra'];
1005
+				$nfields[$val['Field']] .= ' '.$val['Extra'];
1006 1006
 			}
1007 1007
 			if ($val['Key'] == 'PRI') {
1008 1008
 				$nkeys['PRIMARY KEY'] = $val['Field'];
1009 1009
 			} else {
1010 1010
 				if ($val['Key'] == 'MUL') {
1011
-					$nkeys['KEY ' . $val['Field']] = $val['Field'];
1011
+					$nkeys['KEY '.$val['Field']] = $val['Field'];
1012 1012
 				} else {
1013 1013
 					if ($val['Key'] == 'UNI') {
1014
-						$nkeys['UNIQUE KEY ' . $val['Field']] = $val['Field'];
1014
+						$nkeys['UNIQUE KEY '.$val['Field']] = $val['Field'];
1015 1015
 					}
1016 1016
 				}
1017 1017
 			}
@@ -1087,7 +1087,7 @@  discard block
 block discarded – undo
1087 1087
 	$serveur = '',
1088 1088
 	$requeter = true
1089 1089
 ) {
1090
-	$c = !$groupby ? '*' : ('DISTINCT ' . (is_string($groupby) ? $groupby : join(',', $groupby)));
1090
+	$c = !$groupby ? '*' : ('DISTINCT '.(is_string($groupby) ? $groupby : join(',', $groupby)));
1091 1091
 
1092 1092
 	$r = spip_mysql_select("COUNT($c)", $from, $where, '', '', '', $having, $serveur, $requeter);
1093 1093
 	if (!$requeter) {
@@ -1127,7 +1127,7 @@  discard block
 block discarded – undo
1127 1127
 	if ($s) {
1128 1128
 		$trace = debug_backtrace();
1129 1129
 		if ($trace[0]['function'] != 'spip_mysql_error') {
1130
-			spip_log("$s - $query - " . sql_error_backtrace(), 'mysql.' . _LOG_ERREUR);
1130
+			spip_log("$s - $query - ".sql_error_backtrace(), 'mysql.'._LOG_ERREUR);
1131 1131
 		}
1132 1132
 	}
1133 1133
 
@@ -1257,7 +1257,7 @@  discard block
 block discarded – undo
1257 1257
 	try {
1258 1258
 		$insert = mysqli_query($link, $query);
1259 1259
 	} catch (\mysqli_sql_exception $e) {
1260
-		spip_log('mysqli_sql_exception: ' . $e->getMessage(), 'mysql.' . _LOG_DEBUG);
1260
+		spip_log('mysqli_sql_exception: '.$e->getMessage(), 'mysql.'._LOG_DEBUG);
1261 1261
 		// TODO: utiliser l’exception ensuite plutôt que les appels à spip_mysql_errno()
1262 1262
 		// mais il faut pour php < 8.1 forcer les exeptions via mysqli_report().
1263 1263
 	}
@@ -1312,8 +1312,8 @@  discard block
 block discarded – undo
1312 1312
 
1313 1313
 	return spip_mysql_insert(
1314 1314
 		$table,
1315
-		'(' . join(',', array_keys($couples)) . ')',
1316
-		'(' . join(',', $couples) . ')',
1315
+		'('.join(',', array_keys($couples)).')',
1316
+		'('.join(',', $couples).')',
1317 1317
 		$desc,
1318 1318
 		$serveur,
1319 1319
 		$requeter
@@ -1350,7 +1350,7 @@  discard block
 block discarded – undo
1350 1350
 	}
1351 1351
 	$fields = $desc['field'] ?? [];
1352 1352
 
1353
-	$cles = '(' . join(',', array_keys(reset($tab_couples))) . ')';
1353
+	$cles = '('.join(',', array_keys(reset($tab_couples))).')';
1354 1354
 	$valeurs = [];
1355 1355
 	$r = false;
1356 1356
 
@@ -1359,7 +1359,7 @@  discard block
 block discarded – undo
1359 1359
 		foreach ($couples as $champ => $val) {
1360 1360
 			$couples[$champ] = spip_mysql_cite($val, $fields[$champ]);
1361 1361
 		}
1362
-		$valeurs[] = '(' . join(',', $couples) . ')';
1362
+		$valeurs[] = '('.join(',', $couples).')';
1363 1363
 		if (count($valeurs) >= 100) {
1364 1364
 			$r = spip_mysql_insert($table, $cles, join(', ', $valeurs), $desc, $serveur, $requeter);
1365 1365
 			$valeurs = [];
@@ -1396,7 +1396,7 @@  discard block
 block discarded – undo
1396 1396
 function spip_mysql_update($table, $champs, $where = '', $desc = [], $serveur = '', $requeter = true) {
1397 1397
 	$set = [];
1398 1398
 	foreach ($champs as $champ => $val) {
1399
-		$set[] = $champ . "=$val";
1399
+		$set[] = $champ."=$val";
1400 1400
 	}
1401 1401
 	if (!empty($set)) {
1402 1402
 		return spip_mysql_query(
@@ -1453,7 +1453,7 @@  discard block
 block discarded – undo
1453 1453
 	}
1454 1454
 	$set = [];
1455 1455
 	foreach ($champs as $champ => $val) {
1456
-		$set[] = $champ . '=' . spip_mysql_cite($val, @$fields[$champ]);
1456
+		$set[] = $champ.'='.spip_mysql_cite($val, @$fields[$champ]);
1457 1457
 	}
1458 1458
 
1459 1459
 	return spip_mysql_query(
@@ -1522,10 +1522,10 @@  discard block
 block discarded – undo
1522 1522
  *     - false en cas d'erreur.
1523 1523
  **/
1524 1524
 function spip_mysql_replace($table, $couples, $desc = [], $serveur = '', $requeter = true) {
1525
-	return spip_mysql_query("REPLACE $table (" . join(',', array_keys($couples)) . ') VALUES (' . join(
1525
+	return spip_mysql_query("REPLACE $table (".join(',', array_keys($couples)).') VALUES ('.join(
1526 1526
 		',',
1527 1527
 		array_map('_q', $couples)
1528
-	) . ')', $serveur, $requeter);
1528
+	).')', $serveur, $requeter);
1529 1529
 }
1530 1530
 
1531 1531
 
@@ -1554,10 +1554,10 @@  discard block
 block discarded – undo
1554 1554
  *     - false en cas d'erreur.
1555 1555
  **/
1556 1556
 function spip_mysql_replace_multi($table, $tab_couples, $desc = [], $serveur = '', $requeter = true) {
1557
-	$cles = '(' . join(',', array_keys($tab_couples[0])) . ')';
1557
+	$cles = '('.join(',', array_keys($tab_couples[0])).')';
1558 1558
 	$valeurs = [];
1559 1559
 	foreach ($tab_couples as $couples) {
1560
-		$valeurs[] = '(' . join(',', array_map('_q', $couples)) . ')';
1560
+		$valeurs[] = '('.join(',', array_map('_q', $couples)).')';
1561 1561
 	}
1562 1562
 	$valeurs = implode(', ', $valeurs);
1563 1563
 
@@ -1577,28 +1577,28 @@  discard block
 block discarded – undo
1577 1577
  */
1578 1578
 function spip_mysql_multi($objet, $lang) {
1579 1579
 	$lengthlang = strlen("[$lang]");
1580
-	$posmulti = 'INSTR(' . $objet . ", '<multi>')";
1581
-	$posfinmulti = 'INSTR(' . $objet . ", '</multi>')";
1582
-	$debutchaine = 'LEFT(' . $objet . ", $posmulti-1)";
1583
-	$finchaine = 'RIGHT(' . $objet . ', CHAR_LENGTH(' . $objet . ") -(7+$posfinmulti))";
1584
-	$chainemulti = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1585
-	$poslang = "INSTR($chainemulti,'[" . $lang . "]')";
1580
+	$posmulti = 'INSTR('.$objet.", '<multi>')";
1581
+	$posfinmulti = 'INSTR('.$objet.", '</multi>')";
1582
+	$debutchaine = 'LEFT('.$objet.", $posmulti-1)";
1583
+	$finchaine = 'RIGHT('.$objet.', CHAR_LENGTH('.$objet.") -(7+$posfinmulti))";
1584
+	$chainemulti = 'TRIM(SUBSTRING('.$objet.", $posmulti+7, $posfinmulti -(7+$posmulti)))";
1585
+	$poslang = "INSTR($chainemulti,'[".$lang."]')";
1586 1586
 	$poslang = "IF($poslang=0,INSTR($chainemulti,']')+1,$poslang+$lengthlang)";
1587
-	$chainelang = 'TRIM(SUBSTRING(' . $objet . ", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1588
-	$posfinlang = 'INSTR(' . $chainelang . ", '[')";
1587
+	$chainelang = 'TRIM(SUBSTRING('.$objet.", $posmulti+7+$poslang-1,$posfinmulti -($posmulti+7+$poslang-1) ))";
1588
+	$posfinlang = 'INSTR('.$chainelang.", '[')";
1589 1589
 	$chainelang = "IF($posfinlang>0,LEFT($chainelang,$posfinlang-1),$chainelang)";
1590 1590
 	//$chainelang = "LEFT($chainelang,$posfinlang-1)";
1591
-	$retour = "(TRIM(IF($posmulti = 0 , " .
1592
-		'     TRIM(' . $objet . '), ' .
1593
-		'     CONCAT( ' .
1594
-		"          $debutchaine, " .
1595
-		'          IF( ' .
1596
-		"               $poslang = 0, " .
1597
-		"                     $chainemulti, " .
1598
-		"               $chainelang" .
1599
-		'          ), ' .
1600
-		"          $finchaine" .
1601
-		'     ) ' .
1591
+	$retour = "(TRIM(IF($posmulti = 0 , ".
1592
+		'     TRIM('.$objet.'), '.
1593
+		'     CONCAT( '.
1594
+		"          $debutchaine, ".
1595
+		'          IF( '.
1596
+		"               $poslang = 0, ".
1597
+		"                     $chainemulti, ".
1598
+		"               $chainelang".
1599
+		'          ), '.
1600
+		"          $finchaine".
1601
+		'     ) '.
1602 1602
 		'))) AS multi';
1603 1603
 
1604 1604
 	return $retour;
@@ -1615,7 +1615,7 @@  discard block
 block discarded – undo
1615 1615
  *     Valeur hexadécimale pour MySQL
1616 1616
  **/
1617 1617
 function spip_mysql_hex($v) {
1618
-	return '0x' . $v;
1618
+	return '0x'.$v;
1619 1619
 }
1620 1620
 
1621 1621
 /**
@@ -1655,7 +1655,7 @@  discard block
 block discarded – undo
1655 1655
  *     Expression SQL
1656 1656
  **/
1657 1657
 function spip_mysql_date_proche($champ, $interval, $unite) {
1658
-	$use_now = ( ($champ === 'maj' or strpos($champ, '.maj')) ? true : false );
1658
+	$use_now = (($champ === 'maj' or strpos($champ, '.maj')) ? true : false);
1659 1659
 	return '('
1660 1660
 	. $champ
1661 1661
 	. (($interval <= 0) ? '>' : '<')
@@ -1710,7 +1710,7 @@  discard block
 block discarded – undo
1710 1710
 		} elseif ($v === null) {
1711 1711
 			return "''";
1712 1712
 		}
1713
-		return "'" . addslashes($v) . "'";
1713
+		return "'".addslashes($v)."'";
1714 1714
 	}
1715 1715
 
1716 1716
 	if ($v === null) {
@@ -1734,7 +1734,7 @@  discard block
 block discarded – undo
1734 1734
 		}
1735 1735
 	}
1736 1736
 
1737
-	return ("'" . addslashes($v) . "'");
1737
+	return ("'".addslashes($v)."'");
1738 1738
 }
1739 1739
 
1740 1740
 /**
@@ -1768,7 +1768,7 @@  discard block
 block discarded – undo
1768 1768
 	} else {
1769 1769
 		$GLOBALS['mysql_rappel_nom_base'] = false;
1770 1770
 
1771
-		return "\$GLOBALS['mysql_rappel_nom_base'] = false; " .
1771
+		return "\$GLOBALS['mysql_rappel_nom_base'] = false; ".
1772 1772
 		"/* echec de test_rappel_nom_base_mysql a l'installation. */\n";
1773 1773
 	}
1774 1774
 }
Please login to merge, or discard this patch.