/***************************************************************************\
* SPIP, Systeme de publication pour l'internet *
* *
- * Copyright (c) 2001-2012 *
+ * Copyright (c) 2001-2014 *
* Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
* *
* Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
if (!defined('_ECRIRE_INC_VERSION')) return;
include_spip('public/decompiler');
+include_spip('inc/filtres_mini');
// Le debusqueur repose sur la globale debug_objets,
// affectee par le compilateur et le code produit par celui-ci.
*/
defined('_DEBUG_MAX_SQUELETTE_ERREURS') || define('_DEBUG_MAX_SQUELETTE_ERREURS', 9);
-//
-// Point d'entree general,
-// pour les appels involontaires ($message non vide => erreur)
-// et volontaires (var_mode et var_profile)
-// Si pas d'autorisation, les erreurs ne sont pas affichees
-// (mais seront dans les logs)
-// Si l'erreur vient de SPIP, en parler sur spip@rezo.net
-function public_debusquer_dist($message = '', $lieu = ''){
+/**
+ * Point d'entrée pour les erreurs de compilation
+ *
+ * Point d'entrée pour les appels involontaires ($message non vide => erreur)
+ * et volontaires (var_mode et var_profile)
+ *
+ * Si pas d'autorisation, les erreurs ne sont pas affichées
+ * (mais seront dans les logs)
+ *
+ * Si l'erreur vient de SPIP, en parler sur `spip@rezo.net`
+ *
+ * @param bool|string|array $message
+ * - Message d'erreur (string|array)
+ * - false pour retourner le texte des messages d'erreurs
+ * - vide pour afficher les messages d'erreurs
+ * @param string|Contexte $lieu
+ * Contexte : lieu d'origine de l'erreur
+ * @param array $opt
+ * Options pour debug ou tests unitaires
+ * - 'erreurs' = 'get' : Retourne le tableau des erreurs
+ * - 'erreurs' = 'reset' : Efface le tableau des erreurs
+ * @return null|string
+ * - string si $message à false.
+**/
+function public_debusquer_dist($message = '', $lieu = '', $opt = array()){
global $visiteur_session;
global $debug_objets;
static $tableau_des_erreurs = array();
+ // Pour des tests unitaires, pouvoir récupérer les erreurs générées
+ if (isset($opt['erreurs'])) {
+ if ($opt['erreurs'] == 'get') {
+ return $tableau_des_erreurs;
+ }
+ if ($opt['erreurs'] == 'reset') {
+ $tableau_des_erreurs = array();
+ return true;
+ }
+ }
+
// Erreur ou appel final ?
if ($message){
$message = debusquer_compose_message($message);
// Requete erronee
$err = "<b>" . _T('avis_erreur_mysql') . " $errno</b><br /><tt>\n"
- . htmlspecialchars($msg)
+ . spip_htmlspecialchars($msg)
. "\n<br /><span style='color: red'><b>"
- . htmlspecialchars($query)
+ . spip_htmlspecialchars($query)
. "</b></span></tt><br />";
//. aide('erreur_mysql');
}
else
return strlen(trim($res))
- ? "<img src='".chemin_image('compat-16.png')."' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res</div>"
+ ? "<img src='".chemin_image('compat-16.png')."' 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>"
// cas de l'appel sur erreur: montre la page
: $GLOBALS['debug_objets']['resultat']['tout'];
}
$res = $id = '';
}
return !trim($texte) ? '' : (
- "<img src='".chemin_image('compat-16.png')."' alt='afficher-masquer le debug' id='spip-debug-toggle' onclick=\"x = document.getElementById('spip-debug'); (x.style.display == '' ? x.style.display = 'none' : x.style.display = '');\" /><div id='spip-debug'>$res"
+ "<img src='".chemin_image('compat-16.png')."' 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 id='debug_boucle'><fieldset$id><legend>"
. "<a href='".$self."#f_".substr($fonc, 0, 37)."'> ↑ "
. ($legend ? $legend : $mode)
"</td><td>\n" .
$req .
"</td><td>\n" .
- htmlspecialchars($crit) .
+ spip_htmlspecialchars($crit) .
"</td></tr>";
}
}
$brut_sql .= "<h3>" . ($num==1 ? $num . " sur " . sql_count($ress_req) : $num) . "</h3>";
$brut_sql .= "<p>";
foreach ($retours_sql as $key => $val){
- $brut_sql .= "<strong>" . $key . "</strong> => " . htmlspecialchars(couper($val, 150)) . "<br />\n";
+ $brut_sql .= "<strong>" . $key . "</strong> => " . spip_htmlspecialchars(couper($val, 150)) . "<br />\n";
}
$brut_sql .= "</p>";
}