Completed
Push — master ( 33707d...144e31 )
by cam
58s
created
ecrire/public/debusquer.php 2 patches
Indentation   +669 added lines, -669 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 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('public/decompiler');
@@ -68,124 +68,124 @@  discard block
 block discarded – undo
68 68
  *     - true si $opt 'erreurs' = 'reset'
69 69
  **/
70 70
 function public_debusquer_dist($message = '', $lieu = '', $opt = []) {
71
-	static $tableau_des_erreurs = [];
72
-
73
-	// Pour des tests unitaires, pouvoir récupérer les erreurs générées
74
-	if (isset($opt['erreurs'])) {
75
-		if ($opt['erreurs'] == 'get') {
76
-			return $tableau_des_erreurs;
77
-		}
78
-		if ($opt['erreurs'] == 'reset') {
79
-			$tableau_des_erreurs = [];
80
-
81
-			return true;
82
-		}
83
-	}
84
-
85
-	// Erreur ou appel final ?
86
-	if ($message) {
87
-		$message = debusquer_compose_message($message);
88
-		$tableau_des_erreurs[] = [$message, $lieu];
89
-		set_request('var_mode', 'debug');
90
-		$GLOBALS['bouton_admin_debug'] = true;
91
-		// Permettre a la compil de continuer
92
-		if (is_object($lieu) and (!isset($lieu->code) or !$lieu->code)) {
93
-			$lieu->code = "''";
94
-		}
95
-		// forcer l'appel au debusqueur en cas de boucles infernales
96
-		$urgence = (_DEBUG_MAX_SQUELETTE_ERREURS and (is_countable($tableau_des_erreurs) ? count($tableau_des_erreurs) : 0) > _DEBUG_MAX_SQUELETTE_ERREURS);
97
-		if (!$urgence) {
98
-			return;
99
-		}
100
-	}
101
-	if (empty($GLOBALS['debug_objets']['principal'])) {
102
-		// espace public ?
103
-		if (isset($GLOBALS['fond'])) {
104
-			$GLOBALS['debug_objets']['principal'] = $GLOBALS['fond'];
105
-		}
106
-	}
107
-
108
-	include_spip('inc/autoriser');
109
-	if (!autoriser('debug')) {
110
-		return;
111
-	}
112
-	include_spip('inc/headers');
113
-	include_spip('inc/filtres');
114
-
115
-	lang_select($GLOBALS['visiteur_session']['lang']);
116
-	$fonc = preg_replace(",\W,", "_", _request('var_mode_objet') ?? '');
117
-	$mode = preg_replace(",\W,", "_", _request('var_mode_affiche') ?? '');
118
-
119
-	$self = str_replace("\\'", ''', self());
120
-	$self = parametre_url($self, 'var_mode', 'debug');
121
-
122
-	$res = debusquer_bandeau($tableau_des_erreurs)
123
-		. '<br />'
124
-		. debusquer_squelette($fonc, $mode, $self);
125
-
126
-	if (!_DIR_RESTREINT or headers_sent()) {
127
-		return $res;
128
-	}
129
-	if ($tableau_des_erreurs) {
130
-		http_response_code(503);
131
-	}
132
-
133
-	http_no_cache();
134
-	if (isset($_GET['var_profile'])) {
135
-		$titre = parametre_url($GLOBALS['REQUEST_URI'], 'var_profile', '');
136
-		$titre = parametre_url($titre, 'var_mode', '');
137
-	} else {
138
-		if (!$fonc) {
139
-			$fonc = $GLOBALS['debug_objets']['principal'];
140
-		}
141
-		$titre = !$mode ? $fonc : ($mode . (isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? ' ' . $GLOBALS['debug_objets']['sourcefile'][$fonc] : ''));
142
-	}
143
-	if ($message === false) {
144
-		lang_select();
145
-
146
-		return debusquer_entete($titre, $res);
147
-	} else {
148
-		echo debusquer_entete($titre, $res);
149
-	}
150
-	exit;
71
+    static $tableau_des_erreurs = [];
72
+
73
+    // Pour des tests unitaires, pouvoir récupérer les erreurs générées
74
+    if (isset($opt['erreurs'])) {
75
+        if ($opt['erreurs'] == 'get') {
76
+            return $tableau_des_erreurs;
77
+        }
78
+        if ($opt['erreurs'] == 'reset') {
79
+            $tableau_des_erreurs = [];
80
+
81
+            return true;
82
+        }
83
+    }
84
+
85
+    // Erreur ou appel final ?
86
+    if ($message) {
87
+        $message = debusquer_compose_message($message);
88
+        $tableau_des_erreurs[] = [$message, $lieu];
89
+        set_request('var_mode', 'debug');
90
+        $GLOBALS['bouton_admin_debug'] = true;
91
+        // Permettre a la compil de continuer
92
+        if (is_object($lieu) and (!isset($lieu->code) or !$lieu->code)) {
93
+            $lieu->code = "''";
94
+        }
95
+        // forcer l'appel au debusqueur en cas de boucles infernales
96
+        $urgence = (_DEBUG_MAX_SQUELETTE_ERREURS and (is_countable($tableau_des_erreurs) ? count($tableau_des_erreurs) : 0) > _DEBUG_MAX_SQUELETTE_ERREURS);
97
+        if (!$urgence) {
98
+            return;
99
+        }
100
+    }
101
+    if (empty($GLOBALS['debug_objets']['principal'])) {
102
+        // espace public ?
103
+        if (isset($GLOBALS['fond'])) {
104
+            $GLOBALS['debug_objets']['principal'] = $GLOBALS['fond'];
105
+        }
106
+    }
107
+
108
+    include_spip('inc/autoriser');
109
+    if (!autoriser('debug')) {
110
+        return;
111
+    }
112
+    include_spip('inc/headers');
113
+    include_spip('inc/filtres');
114
+
115
+    lang_select($GLOBALS['visiteur_session']['lang']);
116
+    $fonc = preg_replace(",\W,", "_", _request('var_mode_objet') ?? '');
117
+    $mode = preg_replace(",\W,", "_", _request('var_mode_affiche') ?? '');
118
+
119
+    $self = str_replace("\\'", '&#39;', self());
120
+    $self = parametre_url($self, 'var_mode', 'debug');
121
+
122
+    $res = debusquer_bandeau($tableau_des_erreurs)
123
+        . '<br />'
124
+        . debusquer_squelette($fonc, $mode, $self);
125
+
126
+    if (!_DIR_RESTREINT or headers_sent()) {
127
+        return $res;
128
+    }
129
+    if ($tableau_des_erreurs) {
130
+        http_response_code(503);
131
+    }
132
+
133
+    http_no_cache();
134
+    if (isset($_GET['var_profile'])) {
135
+        $titre = parametre_url($GLOBALS['REQUEST_URI'], 'var_profile', '');
136
+        $titre = parametre_url($titre, 'var_mode', '');
137
+    } else {
138
+        if (!$fonc) {
139
+            $fonc = $GLOBALS['debug_objets']['principal'];
140
+        }
141
+        $titre = !$mode ? $fonc : ($mode . (isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? ' ' . $GLOBALS['debug_objets']['sourcefile'][$fonc] : ''));
142
+    }
143
+    if ($message === false) {
144
+        lang_select();
145
+
146
+        return debusquer_entete($titre, $res);
147
+    } else {
148
+        echo debusquer_entete($titre, $res);
149
+    }
150
+    exit;
151 151
 }
152 152
 
153 153
 function debusquer_compose_message($msg) {
154
-	if (is_array($msg)) {
155
-		// si c'est un texte, c'est une traduction a faire, mais
156
-		// sqlite renvoit aussi des erreurs alpha num (mais avec 3 arguments)
157
-		if (!is_numeric($msg[0]) and count($msg) == 2) {
158
-			// message avec argument: instancier
159
-			$msg = _T($msg[0], $msg[1], 'spip-debug-arg');
160
-		} else {
161
-			// message SQL: interpreter
162
-			$msg = debusquer_requete($msg);
163
-		}
164
-	}
165
-	// FIXME: le fond n'est pas la si on n'est pas dans un squelette
166
-	// cela dit, ca serait bien d'indiquer tout de meme d'ou vient l'erreur
167
-	$fond = $GLOBALS['fond'] ?? '';
168
-	// une erreur critique sort $message en array
169
-	$debug = is_array($msg) ? $msg[1] : $msg;
170
-	spip_log('Debug: ' . $debug . ' (' . $fond . ')');
171
-
172
-	return $msg;
154
+    if (is_array($msg)) {
155
+        // si c'est un texte, c'est une traduction a faire, mais
156
+        // sqlite renvoit aussi des erreurs alpha num (mais avec 3 arguments)
157
+        if (!is_numeric($msg[0]) and count($msg) == 2) {
158
+            // message avec argument: instancier
159
+            $msg = _T($msg[0], $msg[1], 'spip-debug-arg');
160
+        } else {
161
+            // message SQL: interpreter
162
+            $msg = debusquer_requete($msg);
163
+        }
164
+    }
165
+    // FIXME: le fond n'est pas la si on n'est pas dans un squelette
166
+    // cela dit, ca serait bien d'indiquer tout de meme d'ou vient l'erreur
167
+    $fond = $GLOBALS['fond'] ?? '';
168
+    // une erreur critique sort $message en array
169
+    $debug = is_array($msg) ? $msg[1] : $msg;
170
+    spip_log('Debug: ' . $debug . ' (' . $fond . ')');
171
+
172
+    return $msg;
173 173
 }
174 174
 
175 175
 function debusquer_bandeau($erreurs) {
176 176
 
177
-	if (!empty($erreurs)) {
178
-		$n = [(is_countable($erreurs) ? count($erreurs) : 0) . ' ' . _T('zbug_erreur_squelette')];
177
+    if (!empty($erreurs)) {
178
+        $n = [(is_countable($erreurs) ? count($erreurs) : 0) . ' ' . _T('zbug_erreur_squelette')];
179 179
 
180
-		return debusquer_navigation($erreurs, $n);
181
-	} elseif (!empty($GLOBALS['tableau_des_temps'])) {
182
-		include_spip('public/tracer');
183
-		[$temps, $nav] = chrono_requete($GLOBALS['tableau_des_temps']);
180
+        return debusquer_navigation($erreurs, $n);
181
+    } elseif (!empty($GLOBALS['tableau_des_temps'])) {
182
+        include_spip('public/tracer');
183
+        [$temps, $nav] = chrono_requete($GLOBALS['tableau_des_temps']);
184 184
 
185
-		return debusquer_navigation($temps, $nav, 'debug-profile');
186
-	} else {
187
-		return '';
188
-	}
185
+        return debusquer_navigation($temps, $nav, 'debug-profile');
186
+    } else {
187
+        return '';
188
+    }
189 189
 }
190 190
 
191 191
 /**
@@ -195,42 +195,42 @@  discard block
 block discarded – undo
195 195
  * @return string Code HTML
196 196
  **/
197 197
 function debusquer_contexte($env) {
198
-	if (is_string($env) and is_array($env_tab = @unserialize($env))) {
199
-		$env = $env_tab;
200
-	}
201
-
202
-	if (!$env) {
203
-		return '';
204
-	}
205
-	$res = '';
206
-	foreach ($env as $nom => $valeur) {
207
-		if (is_array($valeur)) {
208
-			$valeur_simple = [];
209
-			foreach ($valeur as $v) {
210
-				if (is_array($v)) {
211
-					$valeur_simple[] = 'array:' . count($v);
212
-				} elseif (is_object($v)) {
213
-					$valeur_simple[] = get_class($v);
214
-				} elseif (is_string($v)) {
215
-					$valeur_simple[] = "'" . $v . "'";
216
-				} else {
217
-					$valeur_simple[] = $v;
218
-				}
219
-			}
220
-			$n = count($valeur);
221
-			$valeur = (($n > 3) ? 'array:' . $n . ' ' : '');
222
-			$valeur .= '[' . join(', ', $valeur_simple) . ']';
223
-		} elseif (is_object($valeur)) {
224
-			$valeur = get_class($valeur);
225
-		} elseif (is_string($valeur)) {
226
-			$valeur = "'" . $valeur . "'";
227
-		}
228
-		$res .= "\n<tr><td><strong>" . nl2br((string) entites_html($nom))
229
-			. '</strong></td><td>:&nbsp;' . nl2br((string) entites_html($valeur))
230
-			. "</td></tr>\n";
231
-	}
232
-
233
-	return "<div class='spip-env'><fieldset><legend onclick=\"this.parentElement.classList.toggle('expanded');\">#ENV</legend>\n<div><table>$res</table></div></fieldset></div>\n";
198
+    if (is_string($env) and is_array($env_tab = @unserialize($env))) {
199
+        $env = $env_tab;
200
+    }
201
+
202
+    if (!$env) {
203
+        return '';
204
+    }
205
+    $res = '';
206
+    foreach ($env as $nom => $valeur) {
207
+        if (is_array($valeur)) {
208
+            $valeur_simple = [];
209
+            foreach ($valeur as $v) {
210
+                if (is_array($v)) {
211
+                    $valeur_simple[] = 'array:' . count($v);
212
+                } elseif (is_object($v)) {
213
+                    $valeur_simple[] = get_class($v);
214
+                } elseif (is_string($v)) {
215
+                    $valeur_simple[] = "'" . $v . "'";
216
+                } else {
217
+                    $valeur_simple[] = $v;
218
+                }
219
+            }
220
+            $n = count($valeur);
221
+            $valeur = (($n > 3) ? 'array:' . $n . ' ' : '');
222
+            $valeur .= '[' . join(', ', $valeur_simple) . ']';
223
+        } elseif (is_object($valeur)) {
224
+            $valeur = get_class($valeur);
225
+        } elseif (is_string($valeur)) {
226
+            $valeur = "'" . $valeur . "'";
227
+        }
228
+        $res .= "\n<tr><td><strong>" . nl2br((string) entites_html($nom))
229
+            . '</strong></td><td>:&nbsp;' . nl2br((string) entites_html($valeur))
230
+            . "</td></tr>\n";
231
+    }
232
+
233
+    return "<div class='spip-env'><fieldset><legend onclick=\"this.parentElement.classList.toggle('expanded');\">#ENV</legend>\n<div><table>$res</table></div></fieldset></div>\n";
234 234
 }
235 235
 
236 236
 // Affichage du tableau des erreurs ou des temps de calcul
@@ -238,66 +238,66 @@  discard block
 block discarded – undo
238 238
 
239 239
 function debusquer_navigation($tableau, $caption = [], $id = 'debug-nav') {
240 240
 
241
-	if (_request('exec') == 'valider_xml') {
242
-		return '';
243
-	}
244
-	$GLOBALS['bouton_admin_debug'] = true;
245
-	$res = '';
246
-	$href = quote_amp(parametre_url($GLOBALS['REQUEST_URI'], 'var_mode', 'debug'));
247
-	foreach ($tableau as $i => $err) {
248
-		$boucle = $ligne = $skel = '';
249
-		[$msg, $lieu] = $err;
250
-		if (is_object($lieu)) {
251
-			$ligne = $lieu->ligne;
252
-			$boucle = !empty($lieu->id_boucle) ? $lieu->id_boucle : '';
253
-			if (isset($lieu->descr['nom'])) {
254
-				$nom_code = $lieu->descr['nom'];
255
-				$skel = $lieu->descr['sourcefile'];
256
-				$h2 = parametre_url($href, 'var_mode_objet', $nom_code);
257
-				$h3 = parametre_url($h2, 'var_mode_affiche', 'squelette') . '#L' . $ligne;
258
-				$skel = "<a href='$h3'><b>$skel</b></a>";
259
-				if ($boucle) {
260
-					$h3 = parametre_url($h2 . $boucle, 'var_mode_affiche', 'boucle');
261
-					$boucle = "<a href='$h3'><b>$boucle</b></a>";
262
-				}
263
-			}
264
-		}
265
-
266
-		$j = ($i + 1);
267
-		$res .= "<tr id='req$j'><td style='text-align: right'>"
268
-			. $j
269
-			. "&nbsp;</td><td style='text-align: left'>"
270
-			. (is_array($msg) ? implode('', $msg) : $msg)
271
-			. "</td><td style='text-align: left'>"
272
-			. ($skel ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
273
-			. "</td><td class='spip-debug-arg' style='text-align: left'>"
274
-			. ($boucle ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
275
-			. "</td><td style='text-align: right'>"
276
-			. $ligne
277
-			. "</td></tr>\n";
278
-	}
279
-
280
-	return "\n<table id='$id'>"
281
-	. "<caption onclick=\"x = document.getElementById('$id'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\">"
282
-	. $caption[0]
241
+    if (_request('exec') == 'valider_xml') {
242
+        return '';
243
+    }
244
+    $GLOBALS['bouton_admin_debug'] = true;
245
+    $res = '';
246
+    $href = quote_amp(parametre_url($GLOBALS['REQUEST_URI'], 'var_mode', 'debug'));
247
+    foreach ($tableau as $i => $err) {
248
+        $boucle = $ligne = $skel = '';
249
+        [$msg, $lieu] = $err;
250
+        if (is_object($lieu)) {
251
+            $ligne = $lieu->ligne;
252
+            $boucle = !empty($lieu->id_boucle) ? $lieu->id_boucle : '';
253
+            if (isset($lieu->descr['nom'])) {
254
+                $nom_code = $lieu->descr['nom'];
255
+                $skel = $lieu->descr['sourcefile'];
256
+                $h2 = parametre_url($href, 'var_mode_objet', $nom_code);
257
+                $h3 = parametre_url($h2, 'var_mode_affiche', 'squelette') . '#L' . $ligne;
258
+                $skel = "<a href='$h3'><b>$skel</b></a>";
259
+                if ($boucle) {
260
+                    $h3 = parametre_url($h2 . $boucle, 'var_mode_affiche', 'boucle');
261
+                    $boucle = "<a href='$h3'><b>$boucle</b></a>";
262
+                }
263
+            }
264
+        }
265
+
266
+        $j = ($i + 1);
267
+        $res .= "<tr id='req$j'><td style='text-align: right'>"
268
+            . $j
269
+            . "&nbsp;</td><td style='text-align: left'>"
270
+            . (is_array($msg) ? implode('', $msg) : $msg)
271
+            . "</td><td style='text-align: left'>"
272
+            . ($skel ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
273
+            . "</td><td class='spip-debug-arg' style='text-align: left'>"
274
+            . ($boucle ?: '&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;')
275
+            . "</td><td style='text-align: right'>"
276
+            . $ligne
277
+            . "</td></tr>\n";
278
+    }
279
+
280
+    return "\n<table id='$id'>"
281
+    . "<caption onclick=\"x = document.getElementById('$id'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\">"
282
+    . $caption[0]
283 283
 ## aide locale courte a ecrire, avec lien vers une grosse page de documentation
284 284
 #		aider('erreur_compilation'),
285
-	. '</caption>'
286
-	//  fausse caption du chrono (mais vraie nav)
287
-	. (!empty($caption[1]) ? $caption[1] : '')
288
-	. '<tr><th>'
289
-	. _T('numero')
290
-	. '</th><th>'
291
-	. _T('public:message')
292
-	. '</th><th>'
293
-	. _T('squelette')
294
-	. '</th><th>'
295
-	. _T('zbug_boucle')
296
-	. '</th><th>'
297
-	. _T('ligne')
298
-	. '</th></tr>'
299
-	. $res
300
-	. '</table>';
285
+    . '</caption>'
286
+    //  fausse caption du chrono (mais vraie nav)
287
+    . (!empty($caption[1]) ? $caption[1] : '')
288
+    . '<tr><th>'
289
+    . _T('numero')
290
+    . '</th><th>'
291
+    . _T('public:message')
292
+    . '</th><th>'
293
+    . _T('squelette')
294
+    . '</th><th>'
295
+    . _T('zbug_boucle')
296
+    . '</th><th>'
297
+    . _T('ligne')
298
+    . '</th></tr>'
299
+    . $res
300
+    . '</table>';
301 301
 }
302 302
 
303 303
 
@@ -317,514 +317,514 @@  discard block
 block discarded – undo
317 317
  *    ou un tableau si l'erreur est critique
318 318
  **/
319 319
 function debusquer_requete($message) {
320
-	[$errno, $msg, $query] = $message;
321
-
322
-	// FIXME: ces écritures mélangent divers syntaxe des moteurs SQL
323
-	// il serait plus prudent certainement d'avoir une fonction d'analyse par moteur
324
-	if (preg_match(',err(no|code):?[[:space:]]*([0-9]+),i', $msg, $regs)) {
325
-		$errno = $regs[2];
326
-	} elseif (
327
-		is_numeric($errno) and ($errno == 1030 or $errno <= 1026)
328
-		and preg_match(',[^[:alnum:]]([0-9]+)[^[:alnum:]],', $msg, $regs)
329
-	) {
330
-		$errno = $regs[1];
331
-	}
332
-
333
-	// Erreur systeme
334
-	if (is_numeric($errno) and $errno > 0 and $errno < 200) {
335
-		$retour = '<tt><br /><br /><blink>'
336
-			. _T('info_erreur_systeme', ['errsys' => $errno])
337
-			. "</blink><br />\n<b>"
338
-			. _T(
339
-				'info_erreur_systeme2',
340
-				['script' => generer_url_ecrire('base_repair')]
341
-			)
342
-			. '</b><br />';
343
-		spip_log("Erreur systeme $errno");
344
-
345
-		return [$retour, ''];
346
-	}
347
-
348
-	// Requete erronee
349
-	$err = '<b>' . _T('avis_erreur_mysql') . " $errno</b><br /><tt>\n"
350
-		. spip_htmlspecialchars($msg)
351
-		. "\n<br /><span style='color: red'><b>"
352
-		. spip_htmlspecialchars($query)
353
-		. '</b></span></tt><br />';
354
-
355
-	//. aider('erreur_mysql');
356
-
357
-	return $err;
320
+    [$errno, $msg, $query] = $message;
321
+
322
+    // FIXME: ces écritures mélangent divers syntaxe des moteurs SQL
323
+    // il serait plus prudent certainement d'avoir une fonction d'analyse par moteur
324
+    if (preg_match(',err(no|code):?[[:space:]]*([0-9]+),i', $msg, $regs)) {
325
+        $errno = $regs[2];
326
+    } elseif (
327
+        is_numeric($errno) and ($errno == 1030 or $errno <= 1026)
328
+        and preg_match(',[^[:alnum:]]([0-9]+)[^[:alnum:]],', $msg, $regs)
329
+    ) {
330
+        $errno = $regs[1];
331
+    }
332
+
333
+    // Erreur systeme
334
+    if (is_numeric($errno) and $errno > 0 and $errno < 200) {
335
+        $retour = '<tt><br /><br /><blink>'
336
+            . _T('info_erreur_systeme', ['errsys' => $errno])
337
+            . "</blink><br />\n<b>"
338
+            . _T(
339
+                'info_erreur_systeme2',
340
+                ['script' => generer_url_ecrire('base_repair')]
341
+            )
342
+            . '</b><br />';
343
+        spip_log("Erreur systeme $errno");
344
+
345
+        return [$retour, ''];
346
+    }
347
+
348
+    // Requete erronee
349
+    $err = '<b>' . _T('avis_erreur_mysql') . " $errno</b><br /><tt>\n"
350
+        . spip_htmlspecialchars($msg)
351
+        . "\n<br /><span style='color: red'><b>"
352
+        . spip_htmlspecialchars($query)
353
+        . '</b></span></tt><br />';
354
+
355
+    //. aider('erreur_mysql');
356
+
357
+    return $err;
358 358
 }
359 359
 
360 360
 
361 361
 function trouve_boucle_debug($n, $nom, $debut = 0, $boucle = '') {
362 362
 
363
-	$id = $nom . $boucle;
364
-	if (is_array($GLOBALS['debug_objets']['sequence'][$id])) {
365
-		foreach ($GLOBALS['debug_objets']['sequence'][$id] as $v) {
366
-			if (!preg_match('/^(.*)(<\?.*\?>)(.*)$/s', $v[0], $r)) {
367
-				$y = substr_count($v[0], "\n");
368
-			} else {
369
-				if ($v[1][0] == '#') { // balise dynamique
370
-				$incl = $GLOBALS['debug_objets']['resultat'][$v[2]];
371
-				} else // inclusion
372
-				{
373
-					$incl = $GLOBALS['debug_objets']['squelette'][trouve_squelette_inclus($v[0])];
374
-				}
375
-				$y = substr_count($incl, "\n")
376
-					+ substr_count($r[1], "\n")
377
-					+ substr_count($r[3], "\n");
378
-			}
379
-			if ($n <= ($y + $debut)) {
380
-				if ($v[1][0] == '?') {
381
-					return trouve_boucle_debug($n, $nom, $debut, substr($v[1], 1));
382
-				} elseif ($v[1][0] == '!') {
383
-					if ($incl = trouve_squelette_inclus($v[1])) {
384
-						return trouve_boucle_debug($n, $incl, $debut);
385
-					}
386
-				}
387
-
388
-				return [$nom, $boucle, $v[2] - 1 + $n - $debut];
389
-			}
390
-			$debut += $y;
391
-		}
392
-	}
393
-
394
-	return [$nom, $boucle, $n - $debut];
363
+    $id = $nom . $boucle;
364
+    if (is_array($GLOBALS['debug_objets']['sequence'][$id])) {
365
+        foreach ($GLOBALS['debug_objets']['sequence'][$id] as $v) {
366
+            if (!preg_match('/^(.*)(<\?.*\?>)(.*)$/s', $v[0], $r)) {
367
+                $y = substr_count($v[0], "\n");
368
+            } else {
369
+                if ($v[1][0] == '#') { // balise dynamique
370
+                $incl = $GLOBALS['debug_objets']['resultat'][$v[2]];
371
+                } else // inclusion
372
+                {
373
+                    $incl = $GLOBALS['debug_objets']['squelette'][trouve_squelette_inclus($v[0])];
374
+                }
375
+                $y = substr_count($incl, "\n")
376
+                    + substr_count($r[1], "\n")
377
+                    + substr_count($r[3], "\n");
378
+            }
379
+            if ($n <= ($y + $debut)) {
380
+                if ($v[1][0] == '?') {
381
+                    return trouve_boucle_debug($n, $nom, $debut, substr($v[1], 1));
382
+                } elseif ($v[1][0] == '!') {
383
+                    if ($incl = trouve_squelette_inclus($v[1])) {
384
+                        return trouve_boucle_debug($n, $incl, $debut);
385
+                    }
386
+                }
387
+
388
+                return [$nom, $boucle, $v[2] - 1 + $n - $debut];
389
+            }
390
+            $debut += $y;
391
+        }
392
+    }
393
+
394
+    return [$nom, $boucle, $n - $debut];
395 395
 }
396 396
 
397 397
 function trouve_squelette_inclus($script) {
398 398
 
399
-	preg_match('/include\(.(.*).php3?.\);/', $script, $reg);
400
-	// si le script X.php n'est pas ecrire/public.php
401
-	// on suppose qu'il prend le squelette X.html (pas sur, mais y a pas mieux)
402
-	if ($reg[1] == 'ecrire/public') { // si c'est bien ecrire/public on cherche le param 'fond'
403
-	if (!preg_match("/'fond' => '([^']*)'/", $script, $reg)) { // a defaut on cherche le param 'page'
404
-		if (!preg_match("/'param' => '([^']*)'/", $script, $reg)) {
405
-				$reg[1] = 'inconnu';
406
-		}
407
-	}
408
-	}
409
-	$incl = ',' . $reg[1] . '[.]\w$,';
410
-
411
-	foreach ($GLOBALS['debug_objets']['sourcefile'] as $k => $v) {
412
-		if (preg_match($incl, $v)) {
413
-			return $k;
414
-		}
415
-	}
416
-
417
-	return '';
399
+    preg_match('/include\(.(.*).php3?.\);/', $script, $reg);
400
+    // si le script X.php n'est pas ecrire/public.php
401
+    // on suppose qu'il prend le squelette X.html (pas sur, mais y a pas mieux)
402
+    if ($reg[1] == 'ecrire/public') { // si c'est bien ecrire/public on cherche le param 'fond'
403
+    if (!preg_match("/'fond' => '([^']*)'/", $script, $reg)) { // a defaut on cherche le param 'page'
404
+        if (!preg_match("/'param' => '([^']*)'/", $script, $reg)) {
405
+                $reg[1] = 'inconnu';
406
+        }
407
+    }
408
+    }
409
+    $incl = ',' . $reg[1] . '[.]\w$,';
410
+
411
+    foreach ($GLOBALS['debug_objets']['sourcefile'] as $k => $v) {
412
+        if (preg_match($incl, $v)) {
413
+            return $k;
414
+        }
415
+    }
416
+
417
+    return '';
418 418
 }
419 419
 
420 420
 function reference_boucle_debug($n, $nom, $self) {
421
-	[$skel, $boucle, $ligne] = trouve_boucle_debug($n, $nom);
422
-
423
-	if (!$boucle) {
424
-		return !$ligne ? '' :
425
-			(' (' .
426
-				(($nom != $skel) ? _T('squelette_inclus_ligne') :
427
-					_T('squelette_ligne')) .
428
-				" <a href='$self&amp;var_mode_objet=$skel&amp;var_mode_affiche=squelette&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)");
429
-	} else {
430
-		$self .= "&amp;var_mode_objet=$skel$boucle&amp;var_mode_affiche=boucle";
431
-
432
-		return !$ligne ? " (boucle\n<a href='$self#$skel$boucle'>$boucle</a>)" :
433
-			" (boucle $boucle ligne\n<a href='$self&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)";
434
-	}
421
+    [$skel, $boucle, $ligne] = trouve_boucle_debug($n, $nom);
422
+
423
+    if (!$boucle) {
424
+        return !$ligne ? '' :
425
+            (' (' .
426
+                (($nom != $skel) ? _T('squelette_inclus_ligne') :
427
+                    _T('squelette_ligne')) .
428
+                " <a href='$self&amp;var_mode_objet=$skel&amp;var_mode_affiche=squelette&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)");
429
+    } else {
430
+        $self .= "&amp;var_mode_objet=$skel$boucle&amp;var_mode_affiche=boucle";
431
+
432
+        return !$ligne ? " (boucle\n<a href='$self#$skel$boucle'>$boucle</a>)" :
433
+            " (boucle $boucle ligne\n<a href='$self&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)";
434
+    }
435 435
 }
436 436
 
437 437
 // affiche un texte avec numero de ligne et ancre.
438 438
 
439 439
 function ancre_texte($texte, $fautifs = [], $nocpt = false) {
440 440
 
441
-	$var_mode_ligne = _request('var_mode_ligne');
442
-	if ($var_mode_ligne) {
443
-		$fautifs[] = [$var_mode_ligne];
444
-	}
445
-	$res = '';
446
-
447
-	$s = highlight_string($texte, true);
448
-	if (substr($s, 0, 6) == '<code>') {
449
-		$s = substr($s, 6);
450
-		$res = '<code>';
451
-	}
452
-
453
-	$s = preg_replace(
454
-		',<(\w[^<>]*)>([^<]*)<br />([^<]*)</\1>,',
455
-		'<\1>\2</\1><br />' . "\n" . '<\1>\3</\1>',
456
-		$s
457
-	);
458
-
459
-
460
-	$tableau = explode('<br />', $s);
461
-
462
-	$format = "<span style='float:left;display:block;width:50px;height:1px'><a id='L%d' style='background-color: white; visibility: " . ($nocpt ? 'hidden' : 'visible') . ";%s' href='#T%s' title=\"%s\">%0" . strval(@strlen(count($tableau))) . "d</a></span> %s<br />\n";
463
-
464
-	$format10 = str_replace('white', 'lightgrey', $format);
465
-	$formaterr = 'color: red;';
466
-	$i = 1;
467
-	$flignes = [];
468
-	$loc = [0, 0];
469
-	foreach ($fautifs as $lc) {
470
-		if (is_array($lc)) {
471
-			$l = array_shift($lc);
472
-			$flignes[$l] = $lc;
473
-		} else {
474
-			$flignes[$lc] = $loc;
475
-		}
476
-	}
477
-
478
-	$ancre = md5($texte);
479
-	foreach ($tableau as $ligne) {
480
-		if (isset($flignes[$i])) {
481
-			$ligne = str_replace('&nbsp;', ' ', $ligne);
482
-			$indexmesg = $flignes[$i][1];
483
-			$err = textebrut($flignes[$i][2]);
484
-			// tentative de pointer sur la colonne fautive;
485
-			// marche pas car highlight_string rajoute des entites. A revoir.
486
-			// $m = $flignes[$i][0];
487
-			// $ligne = substr($ligne, 0, $m-1) .
488
-			// sprintf($formaterr, substr($ligne,$m));
489
-			$bg = $formaterr;
490
-		} else {
491
-			$indexmesg = $ancre;
492
-			$err = $bg = '';
493
-		}
494
-		$res .= sprintf((($i % 10) ? $format : $format10), $i, $bg, $indexmesg, $err, $i, $ligne);
495
-		$i++;
496
-	}
497
-
498
-	return "<div id='T$ancre'>"
499
-	. '<div onclick="'
500
-	. "jQuery(this).parent().find('a').toggle();"
501
-	. '" title="'
502
-	. _T('masquer_colonne')
503
-	. '" style="cursor: pointer;">'
504
-	. ($nocpt ? '' : _T('info_numero_abbreviation'))
505
-	. '</div>
441
+    $var_mode_ligne = _request('var_mode_ligne');
442
+    if ($var_mode_ligne) {
443
+        $fautifs[] = [$var_mode_ligne];
444
+    }
445
+    $res = '';
446
+
447
+    $s = highlight_string($texte, true);
448
+    if (substr($s, 0, 6) == '<code>') {
449
+        $s = substr($s, 6);
450
+        $res = '<code>';
451
+    }
452
+
453
+    $s = preg_replace(
454
+        ',<(\w[^<>]*)>([^<]*)<br />([^<]*)</\1>,',
455
+        '<\1>\2</\1><br />' . "\n" . '<\1>\3</\1>',
456
+        $s
457
+    );
458
+
459
+
460
+    $tableau = explode('<br />', $s);
461
+
462
+    $format = "<span style='float:left;display:block;width:50px;height:1px'><a id='L%d' style='background-color: white; visibility: " . ($nocpt ? 'hidden' : 'visible') . ";%s' href='#T%s' title=\"%s\">%0" . strval(@strlen(count($tableau))) . "d</a></span> %s<br />\n";
463
+
464
+    $format10 = str_replace('white', 'lightgrey', $format);
465
+    $formaterr = 'color: red;';
466
+    $i = 1;
467
+    $flignes = [];
468
+    $loc = [0, 0];
469
+    foreach ($fautifs as $lc) {
470
+        if (is_array($lc)) {
471
+            $l = array_shift($lc);
472
+            $flignes[$l] = $lc;
473
+        } else {
474
+            $flignes[$lc] = $loc;
475
+        }
476
+    }
477
+
478
+    $ancre = md5($texte);
479
+    foreach ($tableau as $ligne) {
480
+        if (isset($flignes[$i])) {
481
+            $ligne = str_replace('&nbsp;', ' ', $ligne);
482
+            $indexmesg = $flignes[$i][1];
483
+            $err = textebrut($flignes[$i][2]);
484
+            // tentative de pointer sur la colonne fautive;
485
+            // marche pas car highlight_string rajoute des entites. A revoir.
486
+            // $m = $flignes[$i][0];
487
+            // $ligne = substr($ligne, 0, $m-1) .
488
+            // sprintf($formaterr, substr($ligne,$m));
489
+            $bg = $formaterr;
490
+        } else {
491
+            $indexmesg = $ancre;
492
+            $err = $bg = '';
493
+        }
494
+        $res .= sprintf((($i % 10) ? $format : $format10), $i, $bg, $indexmesg, $err, $i, $ligne);
495
+        $i++;
496
+    }
497
+
498
+    return "<div id='T$ancre'>"
499
+    . '<div onclick="'
500
+    . "jQuery(this).parent().find('a').toggle();"
501
+    . '" title="'
502
+    . _T('masquer_colonne')
503
+    . '" style="cursor: pointer;">'
504
+    . ($nocpt ? '' : _T('info_numero_abbreviation'))
505
+    . '</div>
506 506
 	' . $res . "</div>\n";
507 507
 }
508 508
 
509 509
 // l'environnement graphique du debuggueur
510 510
 
511 511
 function debusquer_squelette($fonc, $mode, $self) {
512
-	$legend = null;
513
-	$texte = '';
514
-
515
-	if ($mode !== 'validation') {
516
-		if (isset($GLOBALS['debug_objets']['sourcefile']) and $GLOBALS['debug_objets']['sourcefile']) {
517
-			$res = "<div id='spip-boucles'>\n"
518
-				. debusquer_navigation_squelettes($self)
519
-				. '</div>';
520
-		} else {
521
-			$res = '';
522
-		}
523
-		if ($fonc) {
524
-			$id = " id='$fonc'";
525
-			if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
526
-				[$legend, $texte, $res2] = debusquer_source($fonc, $mode);
527
-				$texte .= $res2;
528
-			} elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc . 'tout'])) {
529
-				$legend = _T('zbug_' . $mode);
530
-				$texte = $GLOBALS['debug_objets'][$mode][$fonc . 'tout'];
531
-				$texte = ancre_texte($texte, ['', '']);
532
-			}
533
-		} else {
534
-			if (strlen(trim($res))) {
535
-				return "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>";
536
-			} else {
537
-				// cas de l'appel sur erreur: montre la page
538
-				return $GLOBALS['debug_objets']['resultat']['tout'] ?? '';
539
-			}
540
-		}
541
-	} else {
542
-		$valider = charger_fonction('valider', 'xml');
543
-		$val = $valider($GLOBALS['debug_objets']['validation'][$fonc . 'tout']);
544
-		// Si erreur, signaler leur nombre dans le formulaire admin
545
-		$GLOBALS['debug_objets']['validation'] = $val->err ? count($val->err) : '';
546
-		[$texte, $err] = emboite_texte($val, $fonc, $self);
547
-		if ($err === false) {
548
-			$err = _T('impossible');
549
-		} elseif ($err === true) {
550
-			$err = _T('correcte');
551
-		} else {
552
-			$err = ": $err";
553
-		}
554
-		$legend = _T('validation') . ' ' . $err;
555
-		$res = $id = '';
556
-	}
557
-
558
-	return !trim($texte) ? '' : (
559
-		"<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
560
-		. "<div id='debug_boucle'><fieldset$id><legend>"
561
-		. "<a href='" . $self . '#f_' . substr($fonc, 0, 37) . "'> &#8593; "
562
-		. ($legend ?: $mode)
563
-		. '</a></legend>'
564
-		. $texte
565
-		. '</fieldset></div>'
566
-		. '</div>');
512
+    $legend = null;
513
+    $texte = '';
514
+
515
+    if ($mode !== 'validation') {
516
+        if (isset($GLOBALS['debug_objets']['sourcefile']) and $GLOBALS['debug_objets']['sourcefile']) {
517
+            $res = "<div id='spip-boucles'>\n"
518
+                . debusquer_navigation_squelettes($self)
519
+                . '</div>';
520
+        } else {
521
+            $res = '';
522
+        }
523
+        if ($fonc) {
524
+            $id = " id='$fonc'";
525
+            if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
526
+                [$legend, $texte, $res2] = debusquer_source($fonc, $mode);
527
+                $texte .= $res2;
528
+            } elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc . 'tout'])) {
529
+                $legend = _T('zbug_' . $mode);
530
+                $texte = $GLOBALS['debug_objets'][$mode][$fonc . 'tout'];
531
+                $texte = ancre_texte($texte, ['', '']);
532
+            }
533
+        } else {
534
+            if (strlen(trim($res))) {
535
+                return "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>";
536
+            } else {
537
+                // cas de l'appel sur erreur: montre la page
538
+                return $GLOBALS['debug_objets']['resultat']['tout'] ?? '';
539
+            }
540
+        }
541
+    } else {
542
+        $valider = charger_fonction('valider', 'xml');
543
+        $val = $valider($GLOBALS['debug_objets']['validation'][$fonc . 'tout']);
544
+        // Si erreur, signaler leur nombre dans le formulaire admin
545
+        $GLOBALS['debug_objets']['validation'] = $val->err ? count($val->err) : '';
546
+        [$texte, $err] = emboite_texte($val, $fonc, $self);
547
+        if ($err === false) {
548
+            $err = _T('impossible');
549
+        } elseif ($err === true) {
550
+            $err = _T('correcte');
551
+        } else {
552
+            $err = ": $err";
553
+        }
554
+        $legend = _T('validation') . ' ' . $err;
555
+        $res = $id = '';
556
+    }
557
+
558
+    return !trim($texte) ? '' : (
559
+        "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
560
+        . "<div id='debug_boucle'><fieldset$id><legend>"
561
+        . "<a href='" . $self . '#f_' . substr($fonc, 0, 37) . "'> &#8593; "
562
+        . ($legend ?: $mode)
563
+        . '</a></legend>'
564
+        . $texte
565
+        . '</fieldset></div>'
566
+        . '</div>');
567 567
 }
568 568
 
569 569
 
570 570
 function emboite_texte($res, $fonc = '', $self = '') {
571
-	$errs = $res->err;
572
-	$texte = $res->entete . ($errs ? '' : $res->page);
573
-
574
-	if (!$texte and !$errs) {
575
-		return [ancre_texte('', ['', '']), false];
576
-	}
577
-	if (!$errs) {
578
-		return [ancre_texte($texte, ['', '']), true];
579
-	}
580
-
581
-	if (!isset($GLOBALS['debug_objets'])) {
582
-		$colors = ['#e0e0f0', '#f8f8ff'];
583
-		$encore = count_occ($errs);
584
-		$encore2 = [];
585
-		$fautifs = [];
586
-
587
-		$err = '<tr><th>'
588
-			. _T('numero')
589
-			. '</th><th>'
590
-			. _T('occurence')
591
-			. '</th><th>'
592
-			. _T('ligne')
593
-			. '</th><th>'
594
-			. _T('colonne')
595
-			. '</th><th>'
596
-			. _T('erreur')
597
-			. '</th></tr>';
598
-
599
-		$i = 0;
600
-		$style = "style='text-align: right; padding-right: 5px'";
601
-		foreach ($errs as $r) {
602
-			$i++;
603
-			[$msg, $ligne, $col] = $r;
604
-			#spip_log("$r = list($msg, $ligne, $col");
605
-			if (isset($encore2[$msg])) {
606
-				$ref = ++$encore2[$msg];
607
-			} else {
608
-				$encore2[$msg] = $ref = 1;
609
-			}
610
-			$err .= "<tr  style='background-color: "
611
-				. $colors[$i % 2]
612
-				. "'><td $style><a href='#debut_err'>"
613
-				. $i
614
-				. "</a></td><td $style>"
615
-				. "$ref/$encore[$msg]</td>"
616
-				. "<td $style><a href='#L"
617
-				. $ligne
618
-				. "' id='T$i'>"
619
-				. $ligne
620
-				. "</a></td><td $style>"
621
-				. $col
622
-				. "</td><td>$msg</td></tr>\n";
623
-			$fautifs[] = [$ligne, $col, $i, $msg];
624
-		}
625
-		$err = "<h2 style='text-align: center'>"
626
-			. $i
627
-			. "<a href='#fin_err'>"
628
-			. ' ' . _T('erreur_texte')
629
-			. "</a></h2><table id='debut_err' style='width: 100%'>"
630
-			. $err
631
-			. " </table><a id='fin_err'></a>";
632
-
633
-		return [ancre_texte($texte, $fautifs), $err];
634
-	} else {
635
-		[$msg, $fermant, $ouvrant] = $errs[0];
636
-		$rf = reference_boucle_debug($fermant, $fonc, $self);
637
-		$ro = reference_boucle_debug($ouvrant, $fonc, $self);
638
-		$err = $msg .
639
-			"<a href='#L" . $fermant . "'>$fermant</a>$rf<br />" .
640
-			"<a href='#L" . $ouvrant . "'>$ouvrant</a>$ro";
641
-
642
-		return [ancre_texte($texte, [[$ouvrant], [$fermant]]), $err];
643
-	}
571
+    $errs = $res->err;
572
+    $texte = $res->entete . ($errs ? '' : $res->page);
573
+
574
+    if (!$texte and !$errs) {
575
+        return [ancre_texte('', ['', '']), false];
576
+    }
577
+    if (!$errs) {
578
+        return [ancre_texte($texte, ['', '']), true];
579
+    }
580
+
581
+    if (!isset($GLOBALS['debug_objets'])) {
582
+        $colors = ['#e0e0f0', '#f8f8ff'];
583
+        $encore = count_occ($errs);
584
+        $encore2 = [];
585
+        $fautifs = [];
586
+
587
+        $err = '<tr><th>'
588
+            . _T('numero')
589
+            . '</th><th>'
590
+            . _T('occurence')
591
+            . '</th><th>'
592
+            . _T('ligne')
593
+            . '</th><th>'
594
+            . _T('colonne')
595
+            . '</th><th>'
596
+            . _T('erreur')
597
+            . '</th></tr>';
598
+
599
+        $i = 0;
600
+        $style = "style='text-align: right; padding-right: 5px'";
601
+        foreach ($errs as $r) {
602
+            $i++;
603
+            [$msg, $ligne, $col] = $r;
604
+            #spip_log("$r = list($msg, $ligne, $col");
605
+            if (isset($encore2[$msg])) {
606
+                $ref = ++$encore2[$msg];
607
+            } else {
608
+                $encore2[$msg] = $ref = 1;
609
+            }
610
+            $err .= "<tr  style='background-color: "
611
+                . $colors[$i % 2]
612
+                . "'><td $style><a href='#debut_err'>"
613
+                . $i
614
+                . "</a></td><td $style>"
615
+                . "$ref/$encore[$msg]</td>"
616
+                . "<td $style><a href='#L"
617
+                . $ligne
618
+                . "' id='T$i'>"
619
+                . $ligne
620
+                . "</a></td><td $style>"
621
+                . $col
622
+                . "</td><td>$msg</td></tr>\n";
623
+            $fautifs[] = [$ligne, $col, $i, $msg];
624
+        }
625
+        $err = "<h2 style='text-align: center'>"
626
+            . $i
627
+            . "<a href='#fin_err'>"
628
+            . ' ' . _T('erreur_texte')
629
+            . "</a></h2><table id='debut_err' style='width: 100%'>"
630
+            . $err
631
+            . " </table><a id='fin_err'></a>";
632
+
633
+        return [ancre_texte($texte, $fautifs), $err];
634
+    } else {
635
+        [$msg, $fermant, $ouvrant] = $errs[0];
636
+        $rf = reference_boucle_debug($fermant, $fonc, $self);
637
+        $ro = reference_boucle_debug($ouvrant, $fonc, $self);
638
+        $err = $msg .
639
+            "<a href='#L" . $fermant . "'>$fermant</a>$rf<br />" .
640
+            "<a href='#L" . $ouvrant . "'>$ouvrant</a>$ro";
641
+
642
+        return [ancre_texte($texte, [[$ouvrant], [$fermant]]), $err];
643
+    }
644 644
 }
645 645
 
646 646
 function count_occ($regs) {
647
-	$encore = [];
648
-	foreach ($regs as $r) {
649
-		if (isset($encore[$r[0]])) {
650
-			$encore[$r[0]]++;
651
-		} else {
652
-			$encore[$r[0]] = 1;
653
-		}
654
-	}
655
-
656
-	return $encore;
647
+    $encore = [];
648
+    foreach ($regs as $r) {
649
+        if (isset($encore[$r[0]])) {
650
+            $encore[$r[0]]++;
651
+        } else {
652
+            $encore[$r[0]] = 1;
653
+        }
654
+    }
655
+
656
+    return $encore;
657 657
 }
658 658
 
659 659
 function debusquer_navigation_squelettes($self) {
660 660
 
661
-	$res = '';
662
-	$boucles = !empty($GLOBALS['debug_objets']['boucle']) ? $GLOBALS['debug_objets']['boucle'] : '';
663
-	$contexte = $GLOBALS['debug_objets']['contexte'];
664
-	$t_skel = _T('squelette');
665
-	foreach ($GLOBALS['debug_objets']['sourcefile'] as $nom => $sourcefile) {
666
-		$self2 = parametre_url($self, 'var_mode_objet', $nom);
667
-		$nav = !$boucles ? '' : debusquer_navigation_boucles($boucles, $nom, $self, $sourcefile);
668
-		$temps = !isset($GLOBALS['debug_objets']['profile'][$sourcefile]) ? '' : _T(
669
-			'zbug_profile',
670
-			['time' => $GLOBALS['debug_objets']['profile'][$sourcefile]]
671
-		);
672
-
673
-		$res .= "<fieldset id='f_" . $nom . "'><legend>"
674
-			. $t_skel
675
-			. ' '
676
-			. $sourcefile
677
-			. "&nbsp;:\n<a href='$self2&amp;var_mode_affiche=squelette#f_$nom'>"
678
-			. $t_skel
679
-			. "</a>\n<a href='$self2&amp;var_mode_affiche=resultat#f_$nom'>"
680
-			. _T('zbug_resultat')
681
-			. "</a>\n<a href='$self2&amp;var_mode_affiche=code#f_$nom'>"
682
-			. _T('zbug_code')
683
-			. "</a>\n<a href='"
684
-			. str_replace('var_mode=debug', 'var_profile=1&amp;var_mode=recalcul', $self)
685
-			. "'>"
686
-			. _T('zbug_calcul')
687
-			. '</a></legend>'
688
-			. (!$temps ? '' : ("\n<span style='display:block;float:" . $GLOBALS['spip_lang_right'] . "'>$temps</span><br />"))
689
-			. debusquer_contexte($contexte[$sourcefile])
690
-		. (!$nav ? '' : ("<table width='100%'>\n$nav</table>\n"))
691
-		. "</fieldset>\n";
692
-	}
693
-
694
-	return $res;
661
+    $res = '';
662
+    $boucles = !empty($GLOBALS['debug_objets']['boucle']) ? $GLOBALS['debug_objets']['boucle'] : '';
663
+    $contexte = $GLOBALS['debug_objets']['contexte'];
664
+    $t_skel = _T('squelette');
665
+    foreach ($GLOBALS['debug_objets']['sourcefile'] as $nom => $sourcefile) {
666
+        $self2 = parametre_url($self, 'var_mode_objet', $nom);
667
+        $nav = !$boucles ? '' : debusquer_navigation_boucles($boucles, $nom, $self, $sourcefile);
668
+        $temps = !isset($GLOBALS['debug_objets']['profile'][$sourcefile]) ? '' : _T(
669
+            'zbug_profile',
670
+            ['time' => $GLOBALS['debug_objets']['profile'][$sourcefile]]
671
+        );
672
+
673
+        $res .= "<fieldset id='f_" . $nom . "'><legend>"
674
+            . $t_skel
675
+            . ' '
676
+            . $sourcefile
677
+            . "&nbsp;:\n<a href='$self2&amp;var_mode_affiche=squelette#f_$nom'>"
678
+            . $t_skel
679
+            . "</a>\n<a href='$self2&amp;var_mode_affiche=resultat#f_$nom'>"
680
+            . _T('zbug_resultat')
681
+            . "</a>\n<a href='$self2&amp;var_mode_affiche=code#f_$nom'>"
682
+            . _T('zbug_code')
683
+            . "</a>\n<a href='"
684
+            . str_replace('var_mode=debug', 'var_profile=1&amp;var_mode=recalcul', $self)
685
+            . "'>"
686
+            . _T('zbug_calcul')
687
+            . '</a></legend>'
688
+            . (!$temps ? '' : ("\n<span style='display:block;float:" . $GLOBALS['spip_lang_right'] . "'>$temps</span><br />"))
689
+            . debusquer_contexte($contexte[$sourcefile])
690
+        . (!$nav ? '' : ("<table width='100%'>\n$nav</table>\n"))
691
+        . "</fieldset>\n";
692
+    }
693
+
694
+    return $res;
695 695
 }
696 696
 
697 697
 function debusquer_navigation_boucles($boucles, $nom_skel, $self, $nom_source) {
698
-	$i = 0;
699
-	$res = '';
700
-	$var_mode_objet = _request('var_mode_objet');
701
-	$gram = preg_match('/[.](\w+)$/', $nom_source, $r) ? $r[1] : '';
702
-
703
-	foreach ($boucles as $objet => $boucle) {
704
-		if (substr($objet, 0, strlen($nom_skel)) == $nom_skel) {
705
-			$i++;
706
-			$nom = $boucle->id_boucle;
707
-			$req = $boucle->type_requete;
708
-			$crit = public_decompiler($boucle, $gram, 0, 'criteres');
709
-			$self2 = $self . '&amp;var_mode_objet=' . $objet;
710
-
711
-			$res .= "\n<tr style='background-color: " .
712
-				($i % 2 ? '#e0e0f0' : '#f8f8ff') .
713
-				"'><td  align='right'>$i</td><td>\n" .
714
-				"<a  class='debug_link_boucle' href='" .
715
-				$self2 .
716
-				"&amp;var_mode_affiche=boucle#f_$nom_skel'>" .
717
-				_T('zbug_boucle') .
718
-				"</a></td><td>\n<a class='debug_link_boucle' href='" .
719
-				$self2 .
720
-				"&amp;var_mode_affiche=resultat#f_$nom_skel'>" .
721
-				_T('zbug_resultat') .
722
-				"</a></td><td>\n<a class='debug_link_resultat' href='" .
723
-				$self2 .
724
-				"&amp;var_mode_affiche=code#f_$nom_skel'>" .
725
-				_T('zbug_code') .
726
-				"</a></td><td>\n<a class='debug_link_resultat' href='" .
727
-				str_replace('var_mode=', 'var_profile=', $self2) .
728
-				"'>" .
729
-				_T('zbug_calcul') .
730
-				"</a></td><td>\n" .
731
-				(($var_mode_objet == $objet) ? "<b>$nom</b>" : $nom) .
732
-				"</td><td>\n" .
733
-				$req .
734
-				"</td><td>\n" .
735
-				spip_htmlspecialchars($crit) .
736
-				'</td></tr>';
737
-		}
738
-	}
739
-
740
-	return $res;
698
+    $i = 0;
699
+    $res = '';
700
+    $var_mode_objet = _request('var_mode_objet');
701
+    $gram = preg_match('/[.](\w+)$/', $nom_source, $r) ? $r[1] : '';
702
+
703
+    foreach ($boucles as $objet => $boucle) {
704
+        if (substr($objet, 0, strlen($nom_skel)) == $nom_skel) {
705
+            $i++;
706
+            $nom = $boucle->id_boucle;
707
+            $req = $boucle->type_requete;
708
+            $crit = public_decompiler($boucle, $gram, 0, 'criteres');
709
+            $self2 = $self . '&amp;var_mode_objet=' . $objet;
710
+
711
+            $res .= "\n<tr style='background-color: " .
712
+                ($i % 2 ? '#e0e0f0' : '#f8f8ff') .
713
+                "'><td  align='right'>$i</td><td>\n" .
714
+                "<a  class='debug_link_boucle' href='" .
715
+                $self2 .
716
+                "&amp;var_mode_affiche=boucle#f_$nom_skel'>" .
717
+                _T('zbug_boucle') .
718
+                "</a></td><td>\n<a class='debug_link_boucle' href='" .
719
+                $self2 .
720
+                "&amp;var_mode_affiche=resultat#f_$nom_skel'>" .
721
+                _T('zbug_resultat') .
722
+                "</a></td><td>\n<a class='debug_link_resultat' href='" .
723
+                $self2 .
724
+                "&amp;var_mode_affiche=code#f_$nom_skel'>" .
725
+                _T('zbug_code') .
726
+                "</a></td><td>\n<a class='debug_link_resultat' href='" .
727
+                str_replace('var_mode=', 'var_profile=', $self2) .
728
+                "'>" .
729
+                _T('zbug_calcul') .
730
+                "</a></td><td>\n" .
731
+                (($var_mode_objet == $objet) ? "<b>$nom</b>" : $nom) .
732
+                "</td><td>\n" .
733
+                $req .
734
+                "</td><td>\n" .
735
+                spip_htmlspecialchars($crit) .
736
+                '</td></tr>';
737
+        }
738
+    }
739
+
740
+    return $res;
741 741
 }
742 742
 
743 743
 function debusquer_source($objet, $affiche) {
744
-	$quoi = $GLOBALS['debug_objets'][$affiche][$objet];
745
-	if (!empty($GLOBALS['debug_objets']['boucle'][$objet]->id_boucle)) {
746
-		$nom = $GLOBALS['debug_objets']['boucle'][$objet]->id_boucle;
747
-	} else {
748
-		$nom = $GLOBALS['debug_objets']['sourcefile'][$objet];
749
-	}
750
-	$res2 = '';
751
-
752
-	if ($affiche == 'resultat') {
753
-		$legend = $nom;
754
-		$req = $GLOBALS['debug_objets']['requete'][$objet];
755
-		if (function_exists('_mysql_traite_query')) {
756
-			$c = strtolower(_request('connect') ?? '');
757
-			$c = $GLOBALS['connexions'][$c ?: 0]['prefixe'];
758
-			$req = _mysql_traite_query($req, '', $c);
759
-		}
760
-		//  permettre le copier/coller facile
761
-		// $res = ancre_texte($req, array(), true);
762
-		$res = "<div id='T" . md5($req) . "'>\n<pre>\n" . $req . "</pre>\n</div>\n";
763
-		//  formatage et affichage des resultats bruts de la requete
764
-		$ress_req = spip_query($req);
765
-		$brut_sql = '';
766
-		$num = 1;
767
-		//  eviter l'affichage de milliers de lignes
768
-		//  personnalisation possible dans mes_options
769
-		$max_aff = defined('_MAX_DEBUG_AFF') ? _MAX_DEBUG_AFF : 50;
770
-		while ($retours_sql = sql_fetch($ress_req)) {
771
-			if ($num <= $max_aff) {
772
-				$brut_sql .= '<h3>' . ($num == 1 ? $num . ' sur ' . sql_count($ress_req) : $num) . '</h3>';
773
-				$brut_sql .= '<p>';
774
-				foreach ($retours_sql as $key => $val) {
775
-					$brut_sql .= '<strong>' . $key . '</strong> => ' . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
776
-				}
777
-				$brut_sql .= '</p>';
778
-			}
779
-			$num++;
780
-		}
781
-		$res2 = interdire_scripts($brut_sql);
782
-		foreach ($quoi as $view) {
783
-			//  ne pas afficher les $contexte_inclus
784
-			$view = preg_replace(',<\?php.+\?[>],Uims', '', $view);
785
-			if ($view) {
786
-				$res2 .= "\n<br /><fieldset>" . interdire_scripts($view) . '</fieldset>';
787
-			}
788
-		}
789
-	} elseif ($affiche == 'code') {
790
-		$legend = $nom;
791
-		$res = ancre_texte('<' . "?php\n" . $quoi . "\n?" . '>');
792
-	} elseif ($affiche == 'boucle') {
793
-		$legend = _T('zbug_boucle') . ' ' . $nom;
794
-		// Le compilateur prefixe le nom des boucles par l'extension du fichier source.
795
-		$gram = preg_match('/^([^_]+)_/', $objet, $r) ? $r[1] : '';
796
-		$res = ancre_texte(public_decompiler($quoi, $gram, 0, 'boucle'));
797
-	} elseif ($affiche == 'squelette') {
798
-		$legend = $GLOBALS['debug_objets']['sourcefile'][$objet];
799
-		$res = ancre_texte($GLOBALS['debug_objets']['squelette'][$objet]);
800
-	}
801
-
802
-	return [$legend, $res, $res2];
744
+    $quoi = $GLOBALS['debug_objets'][$affiche][$objet];
745
+    if (!empty($GLOBALS['debug_objets']['boucle'][$objet]->id_boucle)) {
746
+        $nom = $GLOBALS['debug_objets']['boucle'][$objet]->id_boucle;
747
+    } else {
748
+        $nom = $GLOBALS['debug_objets']['sourcefile'][$objet];
749
+    }
750
+    $res2 = '';
751
+
752
+    if ($affiche == 'resultat') {
753
+        $legend = $nom;
754
+        $req = $GLOBALS['debug_objets']['requete'][$objet];
755
+        if (function_exists('_mysql_traite_query')) {
756
+            $c = strtolower(_request('connect') ?? '');
757
+            $c = $GLOBALS['connexions'][$c ?: 0]['prefixe'];
758
+            $req = _mysql_traite_query($req, '', $c);
759
+        }
760
+        //  permettre le copier/coller facile
761
+        // $res = ancre_texte($req, array(), true);
762
+        $res = "<div id='T" . md5($req) . "'>\n<pre>\n" . $req . "</pre>\n</div>\n";
763
+        //  formatage et affichage des resultats bruts de la requete
764
+        $ress_req = spip_query($req);
765
+        $brut_sql = '';
766
+        $num = 1;
767
+        //  eviter l'affichage de milliers de lignes
768
+        //  personnalisation possible dans mes_options
769
+        $max_aff = defined('_MAX_DEBUG_AFF') ? _MAX_DEBUG_AFF : 50;
770
+        while ($retours_sql = sql_fetch($ress_req)) {
771
+            if ($num <= $max_aff) {
772
+                $brut_sql .= '<h3>' . ($num == 1 ? $num . ' sur ' . sql_count($ress_req) : $num) . '</h3>';
773
+                $brut_sql .= '<p>';
774
+                foreach ($retours_sql as $key => $val) {
775
+                    $brut_sql .= '<strong>' . $key . '</strong> => ' . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
776
+                }
777
+                $brut_sql .= '</p>';
778
+            }
779
+            $num++;
780
+        }
781
+        $res2 = interdire_scripts($brut_sql);
782
+        foreach ($quoi as $view) {
783
+            //  ne pas afficher les $contexte_inclus
784
+            $view = preg_replace(',<\?php.+\?[>],Uims', '', $view);
785
+            if ($view) {
786
+                $res2 .= "\n<br /><fieldset>" . interdire_scripts($view) . '</fieldset>';
787
+            }
788
+        }
789
+    } elseif ($affiche == 'code') {
790
+        $legend = $nom;
791
+        $res = ancre_texte('<' . "?php\n" . $quoi . "\n?" . '>');
792
+    } elseif ($affiche == 'boucle') {
793
+        $legend = _T('zbug_boucle') . ' ' . $nom;
794
+        // Le compilateur prefixe le nom des boucles par l'extension du fichier source.
795
+        $gram = preg_match('/^([^_]+)_/', $objet, $r) ? $r[1] : '';
796
+        $res = ancre_texte(public_decompiler($quoi, $gram, 0, 'boucle'));
797
+    } elseif ($affiche == 'squelette') {
798
+        $legend = $GLOBALS['debug_objets']['sourcefile'][$objet];
799
+        $res = ancre_texte($GLOBALS['debug_objets']['squelette'][$objet]);
800
+    }
801
+
802
+    return [$legend, $res, $res2];
803 803
 }
804 804
 
805 805
 function debusquer_entete($titre, $corps) {
806 806
 
807
-	include_spip('balise/formulaire_admin');
808
-	include_spip('public/assembler'); // pour inclure_balise_dynamique
809
-	include_spip('inc/texte'); // pour corriger_typo
810
-
811
-	return _DOCTYPE_ECRIRE .
812
-	html_lang_attributes() .
813
-	"<head>\n<title>" .
814
-	('SPIP ' . $GLOBALS['spip_version_affichee'] . ' ' .
815
-		_T('admin_debug') . ' ' . spip_htmlspecialchars($titre) . ' (' .
816
-		supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))) .
817
-	")</title>\n" .
818
-	"<meta http-equiv='Content-Type' content='text/html" .
819
-	(($c = $GLOBALS['meta']['charset']) ? "; charset=$c" : '') .
820
-	"' />\n" .
821
-	http_script('', 'jquery.js')
822
-	. "<link rel='stylesheet' href='" . url_absolue(find_in_path('spip_admin.css'))
823
-	. "' type='text/css' />" .
824
-	"</head>\n" .
825
-	"<body style='margin:0 10px;'>\n" .
826
-	"<div id='spip-debug-header'>" .
827
-	$corps .
828
-	inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false) .
829
-	'</div></body></html>';
807
+    include_spip('balise/formulaire_admin');
808
+    include_spip('public/assembler'); // pour inclure_balise_dynamique
809
+    include_spip('inc/texte'); // pour corriger_typo
810
+
811
+    return _DOCTYPE_ECRIRE .
812
+    html_lang_attributes() .
813
+    "<head>\n<title>" .
814
+    ('SPIP ' . $GLOBALS['spip_version_affichee'] . ' ' .
815
+        _T('admin_debug') . ' ' . spip_htmlspecialchars($titre) . ' (' .
816
+        supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))) .
817
+    ")</title>\n" .
818
+    "<meta http-equiv='Content-Type' content='text/html" .
819
+    (($c = $GLOBALS['meta']['charset']) ? "; charset=$c" : '') .
820
+    "' />\n" .
821
+    http_script('', 'jquery.js')
822
+    . "<link rel='stylesheet' href='" . url_absolue(find_in_path('spip_admin.css'))
823
+    . "' type='text/css' />" .
824
+    "</head>\n" .
825
+    "<body style='margin:0 10px;'>\n" .
826
+    "<div id='spip-debug-header'>" .
827
+    $corps .
828
+    inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false) .
829
+    '</div></body></html>';
830 830
 }
Please login to merge, or discard this patch.
Spacing   +86 added lines, -89 removed lines patch added patch discarded remove patch
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
 		if (!$fonc) {
139 139
 			$fonc = $GLOBALS['debug_objets']['principal'];
140 140
 		}
141
-		$titre = !$mode ? $fonc : ($mode . (isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? ' ' . $GLOBALS['debug_objets']['sourcefile'][$fonc] : ''));
141
+		$titre = !$mode ? $fonc : ($mode.(isset($GLOBALS['debug_objets']['sourcefile'][$fonc]) ? ' '.$GLOBALS['debug_objets']['sourcefile'][$fonc] : ''));
142 142
 	}
143 143
 	if ($message === false) {
144 144
 		lang_select();
@@ -167,7 +167,7 @@  discard block
 block discarded – undo
167 167
 	$fond = $GLOBALS['fond'] ?? '';
168 168
 	// une erreur critique sort $message en array
169 169
 	$debug = is_array($msg) ? $msg[1] : $msg;
170
-	spip_log('Debug: ' . $debug . ' (' . $fond . ')');
170
+	spip_log('Debug: '.$debug.' ('.$fond.')');
171 171
 
172 172
 	return $msg;
173 173
 }
@@ -175,7 +175,7 @@  discard block
 block discarded – undo
175 175
 function debusquer_bandeau($erreurs) {
176 176
 
177 177
 	if (!empty($erreurs)) {
178
-		$n = [(is_countable($erreurs) ? count($erreurs) : 0) . ' ' . _T('zbug_erreur_squelette')];
178
+		$n = [(is_countable($erreurs) ? count($erreurs) : 0).' '._T('zbug_erreur_squelette')];
179 179
 
180 180
 		return debusquer_navigation($erreurs, $n);
181 181
 	} elseif (!empty($GLOBALS['tableau_des_temps'])) {
@@ -208,25 +208,25 @@  discard block
 block discarded – undo
208 208
 			$valeur_simple = [];
209 209
 			foreach ($valeur as $v) {
210 210
 				if (is_array($v)) {
211
-					$valeur_simple[] = 'array:' . count($v);
211
+					$valeur_simple[] = 'array:'.count($v);
212 212
 				} elseif (is_object($v)) {
213 213
 					$valeur_simple[] = get_class($v);
214 214
 				} elseif (is_string($v)) {
215
-					$valeur_simple[] = "'" . $v . "'";
215
+					$valeur_simple[] = "'".$v."'";
216 216
 				} else {
217 217
 					$valeur_simple[] = $v;
218 218
 				}
219 219
 			}
220 220
 			$n = count($valeur);
221
-			$valeur = (($n > 3) ? 'array:' . $n . ' ' : '');
222
-			$valeur .= '[' . join(', ', $valeur_simple) . ']';
221
+			$valeur = (($n > 3) ? 'array:'.$n.' ' : '');
222
+			$valeur .= '['.join(', ', $valeur_simple).']';
223 223
 		} elseif (is_object($valeur)) {
224 224
 			$valeur = get_class($valeur);
225 225
 		} elseif (is_string($valeur)) {
226
-			$valeur = "'" . $valeur . "'";
226
+			$valeur = "'".$valeur."'";
227 227
 		}
228
-		$res .= "\n<tr><td><strong>" . nl2br((string) entites_html($nom))
229
-			. '</strong></td><td>:&nbsp;' . nl2br((string) entites_html($valeur))
228
+		$res .= "\n<tr><td><strong>".nl2br((string) entites_html($nom))
229
+			. '</strong></td><td>:&nbsp;'.nl2br((string) entites_html($valeur))
230 230
 			. "</td></tr>\n";
231 231
 	}
232 232
 
@@ -254,10 +254,10 @@  discard block
 block discarded – undo
254 254
 				$nom_code = $lieu->descr['nom'];
255 255
 				$skel = $lieu->descr['sourcefile'];
256 256
 				$h2 = parametre_url($href, 'var_mode_objet', $nom_code);
257
-				$h3 = parametre_url($h2, 'var_mode_affiche', 'squelette') . '#L' . $ligne;
257
+				$h3 = parametre_url($h2, 'var_mode_affiche', 'squelette').'#L'.$ligne;
258 258
 				$skel = "<a href='$h3'><b>$skel</b></a>";
259 259
 				if ($boucle) {
260
-					$h3 = parametre_url($h2 . $boucle, 'var_mode_affiche', 'boucle');
260
+					$h3 = parametre_url($h2.$boucle, 'var_mode_affiche', 'boucle');
261 261
 					$boucle = "<a href='$h3'><b>$boucle</b></a>";
262 262
 				}
263 263
 			}
@@ -346,7 +346,7 @@  discard block
 block discarded – undo
346 346
 	}
347 347
 
348 348
 	// Requete erronee
349
-	$err = '<b>' . _T('avis_erreur_mysql') . " $errno</b><br /><tt>\n"
349
+	$err = '<b>'._T('avis_erreur_mysql')." $errno</b><br /><tt>\n"
350 350
 		. spip_htmlspecialchars($msg)
351 351
 		. "\n<br /><span style='color: red'><b>"
352 352
 		. spip_htmlspecialchars($query)
@@ -360,7 +360,7 @@  discard block
 block discarded – undo
360 360
 
361 361
 function trouve_boucle_debug($n, $nom, $debut = 0, $boucle = '') {
362 362
 
363
-	$id = $nom . $boucle;
363
+	$id = $nom.$boucle;
364 364
 	if (is_array($GLOBALS['debug_objets']['sequence'][$id])) {
365 365
 		foreach ($GLOBALS['debug_objets']['sequence'][$id] as $v) {
366 366
 			if (!preg_match('/^(.*)(<\?.*\?>)(.*)$/s', $v[0], $r)) {
@@ -406,7 +406,7 @@  discard block
 block discarded – undo
406 406
 		}
407 407
 	}
408 408
 	}
409
-	$incl = ',' . $reg[1] . '[.]\w$,';
409
+	$incl = ','.$reg[1].'[.]\w$,';
410 410
 
411 411
 	foreach ($GLOBALS['debug_objets']['sourcefile'] as $k => $v) {
412 412
 		if (preg_match($incl, $v)) {
@@ -421,16 +421,13 @@  discard block
 block discarded – undo
421 421
 	[$skel, $boucle, $ligne] = trouve_boucle_debug($n, $nom);
422 422
 
423 423
 	if (!$boucle) {
424
-		return !$ligne ? '' :
425
-			(' (' .
426
-				(($nom != $skel) ? _T('squelette_inclus_ligne') :
427
-					_T('squelette_ligne')) .
424
+		return !$ligne ? '' : (' ('.
425
+				(($nom != $skel) ? _T('squelette_inclus_ligne') : _T('squelette_ligne')).
428 426
 				" <a href='$self&amp;var_mode_objet=$skel&amp;var_mode_affiche=squelette&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)");
429 427
 	} else {
430 428
 		$self .= "&amp;var_mode_objet=$skel$boucle&amp;var_mode_affiche=boucle";
431 429
 
432
-		return !$ligne ? " (boucle\n<a href='$self#$skel$boucle'>$boucle</a>)" :
433
-			" (boucle $boucle ligne\n<a href='$self&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)";
430
+		return !$ligne ? " (boucle\n<a href='$self#$skel$boucle'>$boucle</a>)" : " (boucle $boucle ligne\n<a href='$self&amp;var_mode_ligne=$ligne#L$ligne'>$ligne</a>)";
434 431
 	}
435 432
 }
436 433
 
@@ -452,14 +449,14 @@  discard block
 block discarded – undo
452 449
 
453 450
 	$s = preg_replace(
454 451
 		',<(\w[^<>]*)>([^<]*)<br />([^<]*)</\1>,',
455
-		'<\1>\2</\1><br />' . "\n" . '<\1>\3</\1>',
452
+		'<\1>\2</\1><br />'."\n".'<\1>\3</\1>',
456 453
 		$s
457 454
 	);
458 455
 
459 456
 
460 457
 	$tableau = explode('<br />', $s);
461 458
 
462
-	$format = "<span style='float:left;display:block;width:50px;height:1px'><a id='L%d' style='background-color: white; visibility: " . ($nocpt ? 'hidden' : 'visible') . ";%s' href='#T%s' title=\"%s\">%0" . strval(@strlen(count($tableau))) . "d</a></span> %s<br />\n";
459
+	$format = "<span style='float:left;display:block;width:50px;height:1px'><a id='L%d' style='background-color: white; visibility: ".($nocpt ? 'hidden' : 'visible').";%s' href='#T%s' title=\"%s\">%0".strval(@strlen(count($tableau)))."d</a></span> %s<br />\n";
463 460
 
464 461
 	$format10 = str_replace('white', 'lightgrey', $format);
465 462
 	$formaterr = 'color: red;';
@@ -503,7 +500,7 @@  discard block
 block discarded – undo
503 500
 	. '" style="cursor: pointer;">'
504 501
 	. ($nocpt ? '' : _T('info_numero_abbreviation'))
505 502
 	. '</div>
506
-	' . $res . "</div>\n";
503
+	' . $res."</div>\n";
507 504
 }
508 505
 
509 506
 // l'environnement graphique du debuggueur
@@ -525,14 +522,14 @@  discard block
 block discarded – undo
525 522
 			if (!empty($GLOBALS['debug_objets'][$mode][$fonc])) {
526 523
 				[$legend, $texte, $res2] = debusquer_source($fonc, $mode);
527 524
 				$texte .= $res2;
528
-			} elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc . 'tout'])) {
529
-				$legend = _T('zbug_' . $mode);
530
-				$texte = $GLOBALS['debug_objets'][$mode][$fonc . 'tout'];
525
+			} elseif (!empty($GLOBALS['debug_objets'][$mode][$fonc.'tout'])) {
526
+				$legend = _T('zbug_'.$mode);
527
+				$texte = $GLOBALS['debug_objets'][$mode][$fonc.'tout'];
531 528
 				$texte = ancre_texte($texte, ['', '']);
532 529
 			}
533 530
 		} else {
534 531
 			if (strlen(trim($res))) {
535
-				return "<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>";
532
+				return "<img src='".chemin_image('debug-xx.svg')."' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>";
536 533
 			} else {
537 534
 				// cas de l'appel sur erreur: montre la page
538 535
 				return $GLOBALS['debug_objets']['resultat']['tout'] ?? '';
@@ -540,7 +537,7 @@  discard block
 block discarded – undo
540 537
 		}
541 538
 	} else {
542 539
 		$valider = charger_fonction('valider', 'xml');
543
-		$val = $valider($GLOBALS['debug_objets']['validation'][$fonc . 'tout']);
540
+		$val = $valider($GLOBALS['debug_objets']['validation'][$fonc.'tout']);
544 541
 		// Si erreur, signaler leur nombre dans le formulaire admin
545 542
 		$GLOBALS['debug_objets']['validation'] = $val->err ? count($val->err) : '';
546 543
 		[$texte, $err] = emboite_texte($val, $fonc, $self);
@@ -551,14 +548,14 @@  discard block
 block discarded – undo
551 548
 		} else {
552 549
 			$err = ": $err";
553 550
 		}
554
-		$legend = _T('validation') . ' ' . $err;
551
+		$legend = _T('validation').' '.$err;
555 552
 		$res = $id = '';
556 553
 	}
557 554
 
558 555
 	return !trim($texte) ? '' : (
559
-		"<img src='" . chemin_image('debug-xx.svg') . "' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
556
+		"<img src='".chemin_image('debug-xx.svg')."' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"var x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
560 557
 		. "<div id='debug_boucle'><fieldset$id><legend>"
561
-		. "<a href='" . $self . '#f_' . substr($fonc, 0, 37) . "'> &#8593; "
558
+		. "<a href='".$self.'#f_'.substr($fonc, 0, 37)."'> &#8593; "
562 559
 		. ($legend ?: $mode)
563 560
 		. '</a></legend>'
564 561
 		. $texte
@@ -569,7 +566,7 @@  discard block
 block discarded – undo
569 566
 
570 567
 function emboite_texte($res, $fonc = '', $self = '') {
571 568
 	$errs = $res->err;
572
-	$texte = $res->entete . ($errs ? '' : $res->page);
569
+	$texte = $res->entete.($errs ? '' : $res->page);
573 570
 
574 571
 	if (!$texte and !$errs) {
575 572
 		return [ancre_texte('', ['', '']), false];
@@ -625,7 +622,7 @@  discard block
 block discarded – undo
625 622
 		$err = "<h2 style='text-align: center'>"
626 623
 			. $i
627 624
 			. "<a href='#fin_err'>"
628
-			. ' ' . _T('erreur_texte')
625
+			. ' '._T('erreur_texte')
629 626
 			. "</a></h2><table id='debut_err' style='width: 100%'>"
630 627
 			. $err
631 628
 			. " </table><a id='fin_err'></a>";
@@ -635,9 +632,9 @@  discard block
 block discarded – undo
635 632
 		[$msg, $fermant, $ouvrant] = $errs[0];
636 633
 		$rf = reference_boucle_debug($fermant, $fonc, $self);
637 634
 		$ro = reference_boucle_debug($ouvrant, $fonc, $self);
638
-		$err = $msg .
639
-			"<a href='#L" . $fermant . "'>$fermant</a>$rf<br />" .
640
-			"<a href='#L" . $ouvrant . "'>$ouvrant</a>$ro";
635
+		$err = $msg.
636
+			"<a href='#L".$fermant."'>$fermant</a>$rf<br />".
637
+			"<a href='#L".$ouvrant."'>$ouvrant</a>$ro";
641 638
 
642 639
 		return [ancre_texte($texte, [[$ouvrant], [$fermant]]), $err];
643 640
 	}
@@ -670,7 +667,7 @@  discard block
 block discarded – undo
670 667
 			['time' => $GLOBALS['debug_objets']['profile'][$sourcefile]]
671 668
 		);
672 669
 
673
-		$res .= "<fieldset id='f_" . $nom . "'><legend>"
670
+		$res .= "<fieldset id='f_".$nom."'><legend>"
674 671
 			. $t_skel
675 672
 			. ' '
676 673
 			. $sourcefile
@@ -685,7 +682,7 @@  discard block
 block discarded – undo
685 682
 			. "'>"
686 683
 			. _T('zbug_calcul')
687 684
 			. '</a></legend>'
688
-			. (!$temps ? '' : ("\n<span style='display:block;float:" . $GLOBALS['spip_lang_right'] . "'>$temps</span><br />"))
685
+			. (!$temps ? '' : ("\n<span style='display:block;float:".$GLOBALS['spip_lang_right']."'>$temps</span><br />"))
689 686
 			. debusquer_contexte($contexte[$sourcefile])
690 687
 		. (!$nav ? '' : ("<table width='100%'>\n$nav</table>\n"))
691 688
 		. "</fieldset>\n";
@@ -706,33 +703,33 @@  discard block
 block discarded – undo
706 703
 			$nom = $boucle->id_boucle;
707 704
 			$req = $boucle->type_requete;
708 705
 			$crit = public_decompiler($boucle, $gram, 0, 'criteres');
709
-			$self2 = $self . '&amp;var_mode_objet=' . $objet;
710
-
711
-			$res .= "\n<tr style='background-color: " .
712
-				($i % 2 ? '#e0e0f0' : '#f8f8ff') .
713
-				"'><td  align='right'>$i</td><td>\n" .
714
-				"<a  class='debug_link_boucle' href='" .
715
-				$self2 .
716
-				"&amp;var_mode_affiche=boucle#f_$nom_skel'>" .
717
-				_T('zbug_boucle') .
718
-				"</a></td><td>\n<a class='debug_link_boucle' href='" .
719
-				$self2 .
720
-				"&amp;var_mode_affiche=resultat#f_$nom_skel'>" .
721
-				_T('zbug_resultat') .
722
-				"</a></td><td>\n<a class='debug_link_resultat' href='" .
723
-				$self2 .
724
-				"&amp;var_mode_affiche=code#f_$nom_skel'>" .
725
-				_T('zbug_code') .
726
-				"</a></td><td>\n<a class='debug_link_resultat' href='" .
727
-				str_replace('var_mode=', 'var_profile=', $self2) .
728
-				"'>" .
729
-				_T('zbug_calcul') .
730
-				"</a></td><td>\n" .
731
-				(($var_mode_objet == $objet) ? "<b>$nom</b>" : $nom) .
732
-				"</td><td>\n" .
733
-				$req .
734
-				"</td><td>\n" .
735
-				spip_htmlspecialchars($crit) .
706
+			$self2 = $self.'&amp;var_mode_objet='.$objet;
707
+
708
+			$res .= "\n<tr style='background-color: ".
709
+				($i % 2 ? '#e0e0f0' : '#f8f8ff').
710
+				"'><td  align='right'>$i</td><td>\n".
711
+				"<a  class='debug_link_boucle' href='".
712
+				$self2.
713
+				"&amp;var_mode_affiche=boucle#f_$nom_skel'>".
714
+				_T('zbug_boucle').
715
+				"</a></td><td>\n<a class='debug_link_boucle' href='".
716
+				$self2.
717
+				"&amp;var_mode_affiche=resultat#f_$nom_skel'>".
718
+				_T('zbug_resultat').
719
+				"</a></td><td>\n<a class='debug_link_resultat' href='".
720
+				$self2.
721
+				"&amp;var_mode_affiche=code#f_$nom_skel'>".
722
+				_T('zbug_code').
723
+				"</a></td><td>\n<a class='debug_link_resultat' href='".
724
+				str_replace('var_mode=', 'var_profile=', $self2).
725
+				"'>".
726
+				_T('zbug_calcul').
727
+				"</a></td><td>\n".
728
+				(($var_mode_objet == $objet) ? "<b>$nom</b>" : $nom).
729
+				"</td><td>\n".
730
+				$req.
731
+				"</td><td>\n".
732
+				spip_htmlspecialchars($crit).
736 733
 				'</td></tr>';
737 734
 		}
738 735
 	}
@@ -759,7 +756,7 @@  discard block
 block discarded – undo
759 756
 		}
760 757
 		//  permettre le copier/coller facile
761 758
 		// $res = ancre_texte($req, array(), true);
762
-		$res = "<div id='T" . md5($req) . "'>\n<pre>\n" . $req . "</pre>\n</div>\n";
759
+		$res = "<div id='T".md5($req)."'>\n<pre>\n".$req."</pre>\n</div>\n";
763 760
 		//  formatage et affichage des resultats bruts de la requete
764 761
 		$ress_req = spip_query($req);
765 762
 		$brut_sql = '';
@@ -769,10 +766,10 @@  discard block
 block discarded – undo
769 766
 		$max_aff = defined('_MAX_DEBUG_AFF') ? _MAX_DEBUG_AFF : 50;
770 767
 		while ($retours_sql = sql_fetch($ress_req)) {
771 768
 			if ($num <= $max_aff) {
772
-				$brut_sql .= '<h3>' . ($num == 1 ? $num . ' sur ' . sql_count($ress_req) : $num) . '</h3>';
769
+				$brut_sql .= '<h3>'.($num == 1 ? $num.' sur '.sql_count($ress_req) : $num).'</h3>';
773 770
 				$brut_sql .= '<p>';
774 771
 				foreach ($retours_sql as $key => $val) {
775
-					$brut_sql .= '<strong>' . $key . '</strong> => ' . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
772
+					$brut_sql .= '<strong>'.$key.'</strong> => '.spip_htmlspecialchars(couper($val, 150))."<br />\n";
776 773
 				}
777 774
 				$brut_sql .= '</p>';
778 775
 			}
@@ -783,14 +780,14 @@  discard block
 block discarded – undo
783 780
 			//  ne pas afficher les $contexte_inclus
784 781
 			$view = preg_replace(',<\?php.+\?[>],Uims', '', $view);
785 782
 			if ($view) {
786
-				$res2 .= "\n<br /><fieldset>" . interdire_scripts($view) . '</fieldset>';
783
+				$res2 .= "\n<br /><fieldset>".interdire_scripts($view).'</fieldset>';
787 784
 			}
788 785
 		}
789 786
 	} elseif ($affiche == 'code') {
790 787
 		$legend = $nom;
791
-		$res = ancre_texte('<' . "?php\n" . $quoi . "\n?" . '>');
788
+		$res = ancre_texte('<'."?php\n".$quoi."\n?".'>');
792 789
 	} elseif ($affiche == 'boucle') {
793
-		$legend = _T('zbug_boucle') . ' ' . $nom;
790
+		$legend = _T('zbug_boucle').' '.$nom;
794 791
 		// Le compilateur prefixe le nom des boucles par l'extension du fichier source.
795 792
 		$gram = preg_match('/^([^_]+)_/', $objet, $r) ? $r[1] : '';
796 793
 		$res = ancre_texte(public_decompiler($quoi, $gram, 0, 'boucle'));
@@ -808,23 +805,23 @@  discard block
 block discarded – undo
808 805
 	include_spip('public/assembler'); // pour inclure_balise_dynamique
809 806
 	include_spip('inc/texte'); // pour corriger_typo
810 807
 
811
-	return _DOCTYPE_ECRIRE .
812
-	html_lang_attributes() .
813
-	"<head>\n<title>" .
814
-	('SPIP ' . $GLOBALS['spip_version_affichee'] . ' ' .
815
-		_T('admin_debug') . ' ' . spip_htmlspecialchars($titre) . ' (' .
816
-		supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))) .
817
-	")</title>\n" .
818
-	"<meta http-equiv='Content-Type' content='text/html" .
819
-	(($c = $GLOBALS['meta']['charset']) ? "; charset=$c" : '') .
820
-	"' />\n" .
808
+	return _DOCTYPE_ECRIRE.
809
+	html_lang_attributes().
810
+	"<head>\n<title>".
811
+	('SPIP '.$GLOBALS['spip_version_affichee'].' '.
812
+		_T('admin_debug').' '.spip_htmlspecialchars($titre).' ('.
813
+		supprimer_tags(corriger_typo($GLOBALS['meta']['nom_site']))).
814
+	")</title>\n".
815
+	"<meta http-equiv='Content-Type' content='text/html".
816
+	(($c = $GLOBALS['meta']['charset']) ? "; charset=$c" : '').
817
+	"' />\n".
821 818
 	http_script('', 'jquery.js')
822
-	. "<link rel='stylesheet' href='" . url_absolue(find_in_path('spip_admin.css'))
823
-	. "' type='text/css' />" .
824
-	"</head>\n" .
825
-	"<body style='margin:0 10px;'>\n" .
826
-	"<div id='spip-debug-header'>" .
827
-	$corps .
828
-	inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false) .
819
+	. "<link rel='stylesheet' href='".url_absolue(find_in_path('spip_admin.css'))
820
+	. "' type='text/css' />".
821
+	"</head>\n".
822
+	"<body style='margin:0 10px;'>\n".
823
+	"<div id='spip-debug-header'>".
824
+	$corps.
825
+	inclure_balise_dynamique(balise_FORMULAIRE_ADMIN_dyn('spip-admin-float', $GLOBALS['debug_objets']), false).
829 826
 	'</div></body></html>';
830 827
 }
Please login to merge, or discard this patch.