From 7f4d21666a8be726d5cea41f9993a087cf3d41c6 Mon Sep 17 00:00:00 2001 From: "Committo,Ergo:sum" <esj@rezo.net> Date: Thu, 30 Jul 2009 14:49:19 +0000 Subject: [PATCH] =?UTF-8?q?Lorsqu'on=20connait=20le=20num=C3=A9ro=20de=20l?= =?UTF-8?q?igne=20et=20le=20squelette=20o=C3=B9=20se=20situe=20une=20erreu?= =?UTF-8?q?r,=20le=20lien=20activable=20en=20cliquant=20sur=20le=20num?= =?UTF-8?q?=C3=A9ro=20de=20l'erreur=20atterit=20sur=20le=20d=C3=A9busqueur?= =?UTF-8?q?=20avec=20le=20mode=20o=C3=B9=20appara=C3=AEt=20le=20squelette?= =?UTF-8?q?=20(qu'il=20soit=20inclus=20ou=20non),=20avec=20l'ancre=20indiq?= =?UTF-8?q?uant=20le=20num=C3=A9ro=20de=20la=20ligne=20fautive=20pour=20qu?= =?UTF-8?q?'elle=20soit=20visible=20m=C3=AAme=20si=20la=20page=20d=C3=A9pa?= =?UTF-8?q?sse=20l'=C3=A9cran.=20Il=20faudrait=20arriver=20=C3=A0=20ce=20q?= =?UTF-8?q?ue=20ces=20informations=20soient=20toujours=20disponibles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/public/compiler.php | 2 +- ecrire/public/debusquer.php | 88 +++++++++++++++++++++++-------------- 2 files changed, 57 insertions(+), 33 deletions(-) diff --git a/ecrire/public/compiler.php b/ecrire/public/compiler.php index 957c37cff6..cdc0d16212 100644 --- a/ecrire/public/compiler.php +++ b/ecrire/public/compiler.php @@ -995,7 +995,7 @@ function compiler_squelette($squelette, $boucles, $nom, $descr, $sourcefile, $co if (is_array($tableau_des_erreurs)) { foreach ($tableau_des_erreurs as $err) { $head .= "\n// " - . str_replace("\n", ' ', join(" ", $err)); + . str_replace("\n", ' ', $err[0]); } } diff --git a/ecrire/public/debusquer.php b/ecrire/public/debusquer.php index 31a9fb7cb9..1e8baf7bc2 100644 --- a/ecrire/public/debusquer.php +++ b/ecrire/public/debusquer.php @@ -47,21 +47,14 @@ function public_debusquer_dist($message='', $lieu='', $quoi='') { global $tableau_des_erreurs; if ($message) { - if (is_array($message)) list($message, $lieu) = $message; - elseif ($quoi) - list($message, $lieu) = debusquer_requete($message, $lieu, $quoi); - elseif (is_object($lieu)) - $lieu = _T('squelette') - . ' <b> ' . $lieu->descr['sourcefile'] . '</b> ' - . (!$lieu->id_boucle ? '' : - (' ' . _T('zbug_boucle') . ' <b>' . $lieu->id_boucle . '</b>')) - . ' ' . _T('ligne') . ' <b>' . $lieu->ligne . '</b>'; - - spip_log("Debug: $message | $lieu (" . $GLOBALS['fond'] .")" ); + $quoi = $quoi + ? debusquer_requete($message, $lieu, $quoi) + : array($message, $lieu); + $tableau_des_erreurs[] = $quoi; + spip_log("Debug: " . $quoi[0] . " (" . $GLOBALS['fond'] .")" ); $GLOBALS['bouton_admin_debug'] = true; - $tableau_des_erreurs[] = array($message, $lieu); // Eviter les boucles infernales - if (!_DEBUG_MAX_SQUELETTE_ERREURS OR count($tableau_des_erreurs) <= _DEBUG_MAX_SQUELETTE_ERREURS) return; + if (!_DEBUG_MAX_SQUELETTE_ERREURS OR count($tableau_des_erreurs) <= _DEBUG_MAX_SQUELETTE_ERREURS) return ; $lieu = $quoi = ''; } include_spip('inc/autoriser'); @@ -97,9 +90,10 @@ function debusquer_contexte($env) { } // Si le code php produit des erreurs, on les affiche en surimpression -// sauf pour un visiteur non admin (lui ne voit rien de special) -// et en mode validation (fausse erreur "double occurrence insert_head") -// ajouter &var_mode=debug pour voir les erreurs et en parler sur spip@rezo.net +// pour les administrateurs (les autres ne voient rien de plus). +// Le mode validation est traite a part (sinon "double occurrence insert_head") +// Cliquer sur un numero d'erreur permet d'appeler le debusqueur. +// Si l'erreur vient de SPIP, en parler sur spip@rezo.net // http://doc.spip.org/@affiche_erreurs_page function affiche_erreurs_page($tableau_des_erreurs, $message='', $style='') { @@ -107,28 +101,58 @@ function affiche_erreurs_page($tableau_des_erreurs, $message='', $style='') { return ''; $GLOBALS['bouton_admin_debug'] = true; $res = ''; - $anc = ''; - $i = 1; - foreach ($tableau_des_erreurs as $err) { - $res .= "<tr id='req$i'><td style='text-align: right'><a href='".quote_amp($GLOBALS['REQUEST_URI'])."#spip-debug'><b>" - . $i - ." </b></a>\n</td><td>" - .join("</td>\n<td>",$err) - ."</td></tr>\n"; - - $i++; + $href = quote_amp(parametre_url($GLOBALS['REQUEST_URI'], 'var_mode', 'debug')); + foreach ($tableau_des_erreurs as $i => $err) { + $boucle = $ligne = $skel = " / "; + list($msg, $lieu) = $err; + if (is_object($lieu)) { + $ligne = $lieu->ligne; + $nom_code = $lieu->descr['nom']; + $skel = $lieu->descr['sourcefile']; + if ($lieu->id_boucle) $boucle = $lieu->id_boucle; + $h = parametre_url($href, 'var_mode_affiche', 'squelette'); + $h = parametre_url($h, 'var_mode_objet', $nom_code); + $h .= '#L' . $ligne; + } else $h = $href . "#spip-debug"; + + $res .= "<tr id='req$i'><td style='text-align: right'><a href='" + . $h + . "'><b>" + . ($i+1) + . " </b></a>\n</td><td style='text-align: left'>" + . $msg + . "</td><td style='text-align: left'>" + . $skel + . "</td><td style='text-align: left'>" + . $boucle + . "</td><td style='text-align: left'>" + . $ligne + . "</td></tr>\n"; + } - $cols = 1+count($err); + if (_DIR_RESTREINT AND headers_sent()) - $style = "z-index: 1000; filter:alpha(opacity=95); -moz-opacity:0.9; opacity: 0.95;" - . ($style ? $style : " position: absolute; top: 90px; left: 10px; width: 200px;"); + $style = " width: 200px; z-index: 1000; filter:alpha(opacity=95); -moz-opacity:0.9; opacity: 0.95;" + . ($style ? $style : " position: absolute; top: 90px; left: 10px;"); return "\n<table id='spip-debug' cellpadding='2' border='1' - style='text-align: left;$style'><tr><th style='text-align: center' colspan='$cols'>" - . ($message ? $message : _T('zbug_erreur_squelette')) + style='text-align: left;$style'><caption style='text-align: center'>" + . ($message ? $message : + (count($tableau_des_erreurs) . ' ' . _T('zbug_erreur_squelette'))) ## aide locale courte a ecrire, avec lien vers une grosse page de documentation # aide('erreur_compilation'), - . "<p style='text-align: left'>$anc</p></th></tr>" + . "<br /><br /></caption>" + . "<tr><th>" + . _T('numero') + . "</th><th>" + . _T('message') + . "</th><th>" + . _T('squelette') + . "</th><th>" + . _T('boucle') + . "</th><th>" + . _T('ligne') + . "</th></tr>" . $res . "</table>"; } -- GitLab