Skip to content
Extraits de code Groupes Projets
Valider 1c6f9736 rédigé par esj's avatar esj
Parcourir les fichiers

Débusqueur: donner la requete MysQL, virer le squelette englobant afin de...

Débusqueur: donner la requete MysQL, virer le squelette englobant afin de disposer de toute la largeur, mettre les boutons à gauche du code afin qu'ils soient toujours au même endroit, colorer alternativement les lignes
parent 5a02cc4f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -53,6 +53,7 @@ function spip_query_db($query) { ...@@ -53,6 +53,7 @@ function spip_query_db($query) {
// specifiquement pour les select des squelettes // specifiquement pour les select des squelettes
// c'est une instance de spip_abstract_select, voir ses specs dans inc_calcul // c'est une instance de spip_abstract_select, voir ses specs dans inc_calcul
// a noter qu'on pourrait y raliser traite_query moindre cout // a noter qu'on pourrait y raliser traite_query moindre cout
// les \n et \t sont utiles au debusqueur
function spip_mysql_select($select, $from, $where, function spip_mysql_select($select, $from, $where,
$groupby, $orderby, $limit, $groupby, $orderby, $limit,
...@@ -60,9 +61,9 @@ function spip_mysql_select($select, $from, $where, ...@@ -60,9 +61,9 @@ function spip_mysql_select($select, $from, $where,
$table, $id, $serveur) { $table, $id, $serveur) {
$DB = 'spip_'; $DB = 'spip_';
$q = " FROM $DB" . join(", $DB", $from) $q = "\nFROM $DB" . join(",\n\t$DB", $from)
. ($where ? ' WHERE ' . join(' AND ', $where) : '') . ($where ? "\nWHERE " . join("\n\tAND ", $where) : '')
. ($groupby ? " GROUP BY $groupby" : '') . ($groupby ? "\nGROUP BY $groupby" : '')
. ($orderby ? "\nORDER BY $orderby" : '') . ($orderby ? "\nORDER BY $orderby" : '')
. ($limit ? "\nLIMIT $limit" : ''); . ($limit ? "\nLIMIT $limit" : '');
...@@ -76,13 +77,16 @@ function spip_mysql_select($select, $from, $where, ...@@ -76,13 +77,16 @@ function spip_mysql_select($select, $from, $where,
// Erreur ? C'est du debug de squelette, ou une erreur du serveur // Erreur ? C'est du debug de squelette, ou une erreur du serveur
if ($GLOBALS['var_mode'] == 'debug') {
boucle_debug_resultat($id, '', $q);
}
if (!($res = @spip_query($q))) { if (!($res = @spip_query($q))) {
include_ecrire('inc_debug_sql.php3'); include_ecrire('inc_debug_sql.php3');
echo erreur_requete_boucle($q, $id, $table); echo erreur_requete_boucle($q, $id, $table);
} }
// # spip_log($serveur . spip_num_rows($res) . $q);
# spip_log($serveur . spip_num_rows($result) . $q);
return $res; return $res;
} }
......
...@@ -96,7 +96,7 @@ function erreur_squelette($message='', $lieu='') { ...@@ -96,7 +96,7 @@ function erreur_squelette($message='', $lieu='') {
if (++$runs > 4) { if (++$runs > 4) {
if ($HTTP_COOKIE_VARS['spip_admin'] OR if ($HTTP_COOKIE_VARS['spip_admin'] OR
$auteur_session['statut'] == '0minirezo' OR $auteur_session['statut'] == '0minirezo' OR
$GLOBALS['var_mode']) { ($GLOBALS['var_mode'] == 'debug')) {
echo debut_entete('Debug'), '</head><body>'; echo debut_entete('Debug'), '</head><body>';
die(affiche_erreurs_page($tableau_des_erreurs)); die(affiche_erreurs_page($tableau_des_erreurs));
} }
...@@ -107,13 +107,21 @@ function erreur_squelette($message='', $lieu='') { ...@@ -107,13 +107,21 @@ function erreur_squelette($message='', $lieu='') {
// Le debugueur v2 // Le debugueur v2
// //
// appelee a chaque sortie de boucle (inc-compilo) // appelee a chaque sortie de boucle (inc-compilo) et a chaque requete
function boucle_debug_resultat ($nom, $resultat) { // dans ce derniers cas on n'a pas le nom du squelette
// alors on memorise dans une statique et lors de l'autre appel qui suit
// on finalise
function boucle_debug_resultat ($id, $nom, $resultat) {
global $debug_objets; global $debug_objets;
static $requete = array();
if (!$nom) {$requete[$id] = $resultat; return;}
if ($requete[$id]) {
$debug_objets['requete']["$nom$id"] = $requete[$id];
$requete[$id] = '';
}
// ne pas memoriser plus de 3 tours d'une meme boucle // ne pas memoriser plus de 3 tours d'une meme boucle
if (count($debug_objets['resultat'][$nom]) < 3) if (count($debug_objets['resultat']["$nom$id"]) < 3)
$debug_objets['resultat'][$nom][] = $resultat; $debug_objets['resultat']["$nom$id"][] = $resultat;
} }
// appelee a chaque compilation de boucle (inc-compilo) // appelee a chaque compilation de boucle (inc-compilo)
...@@ -131,7 +139,7 @@ function squelette_debug_compile($nom, $sourcefile, $squelette) { ...@@ -131,7 +139,7 @@ function squelette_debug_compile($nom, $sourcefile, $squelette) {
$debug_objets['sourcefile'][$nom] = $sourcefile; $debug_objets['sourcefile'][$nom] = $sourcefile;
} }
// appelee a chaque parsing de squelette (inc-parser) // appelee a chaque analyse syntaxique de squelette (inc-parser)
function boucle_debug ($id, $nom, $boucle) { function boucle_debug ($id, $nom, $boucle) {
global $debug_objets; global $debug_objets;
...@@ -154,6 +162,11 @@ function debug_dumpfile ($texte, $fonc, $type) { ...@@ -154,6 +162,11 @@ function debug_dumpfile ($texte, $fonc, $type) {
$link->addvar('var_mode','debug'); $link->addvar('var_mode','debug');
$self = $link->getUrl(); $self = $link->getUrl();
// en cas de squelette inclus, virer le code de l'incluant:
// - il contient souvent une Div restreignant la largeur a 3 fois rien
// - ca fait 2 headers !
ob_end_clean();
echo debut_entete('Debug'), echo debut_entete('Debug'),
"<link rel='stylesheet' href='spip_admin.css' type='text/css' />", "<link rel='stylesheet' href='spip_admin.css' type='text/css' />",
"</head>\n<body>", "</head>\n<body>",
...@@ -162,30 +175,28 @@ function debug_dumpfile ($texte, $fonc, $type) { ...@@ -162,30 +175,28 @@ function debug_dumpfile ($texte, $fonc, $type) {
echo "<li><b>",$sourcefile,"</b>"; echo "<li><b>",$sourcefile,"</b>";
echo " <a href='",$self, "&var_mode_objet=$nom_skel&var_mode_affiche=resultat'>resultat</a>"; echo " <a href='",$self, "&var_mode_objet=$nom_skel&var_mode_affiche=resultat'>resultat</a>";
echo " <a href='", $self, "&var_mode_objet=$nom_skel&var_mode_affiche=code'>code</a>"; echo " <a href='", $self, "&var_mode_objet=$nom_skel&var_mode_affiche=code'>code</a>";
echo "<ul>\n"; echo "<table width='100%'>\n";
$i = 0;
$colors = array('#ff00ff', '#00ff00');
if (is_array($debug_objets['pretty'])) if (is_array($debug_objets['pretty']))
foreach ($debug_objets['pretty'] as $nom => $pretty) foreach ($debug_objets['pretty'] as $nom => $pretty)
if (substr($nom, 0, strlen($nom_skel)) == $nom_skel) { if (substr($nom, 0, strlen($nom_skel)) == $nom_skel) {
$i++;
$aff = "&lt;".$pretty."&gt;"; $aff = "&lt;".$pretty."&gt;";
if ($var_mode_objet == $nom) if ($var_mode_objet == $nom)
$aff = "<b>$aff</b>"; $aff = "<b>$aff</b>";
echo "<li>"; echo "<tr bgcolor='" . $colors[$i%2] . "'><td align='right'>$i</td><td><a href='",$self,"&var_mode_objet=$nom&var_mode_affiche=boucle' class='debug_link_boucle'>boucle</a></td><td><a href='",$self, "&var_mode_objet=$nom&var_mode_affiche=resultat' class='debug_link_resultat'>resultat</a></td><td><a href='", $self, "&var_mode_objet=$nom&var_mode_affiche=code' class='debug_link_code'>code</a></td><td>$aff</td></tr>";
echo $aff;
echo " <a href='",$self,"&var_mode_objet=$nom&var_mode_affiche=boucle' class='debug_link_boucle'>boucle</a>";
echo " <a href='",$self, "&var_mode_objet=$nom&var_mode_affiche=resultat' class='debug_link_resultat'>resultat</a>";
echo " <a href='", $self, "&var_mode_objet=$nom&var_mode_affiche=code' class='debug_link_code'>code</a>";
echo "</li>\n";
} }
echo "</ul>\n</li>\n"; echo "</table>\n</li>\n";
} }
echo "</ul>\n"; echo "</ul>\n";
if ($var_mode_objet && ($res = $debug_objets[$var_mode_affiche][$var_mode_objet])) { if ($var_mode_objet && ($res = $debug_objets[$var_mode_affiche][$var_mode_objet])) {
if ($var_mode_affiche == 'resultat') { if ($var_mode_affiche == 'resultat') {
echo "<div id=\"debug_boucle\"><fieldset><legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>"; echo "<div id=\"debug_boucle\"><fieldset><legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>";
highlight_string($debug_objets['requete'][$var_mode_objet]);
echo "<p class='spip-admin-bloc'>les premiers appels &agrave; cette boucle ont donn&eacute;&nbsp;:</p>"; echo "<p class='spip-admin-bloc'>les premiers appels &agrave; cette boucle ont donn&eacute;&nbsp;:</p>";
foreach ($res as $view) foreach ($res as $view)
echo "<ul><fieldset>",interdire_scripts($view),"</fieldset></ul>"; if ($res) echo "<br><fieldset>",interdire_scripts($view),"</fieldset>";
echo "</fieldset></div>"; echo "</fieldset></div>";
} else if ($var_mode_affiche == 'code') { } else if ($var_mode_affiche == 'code') {
...@@ -196,7 +207,7 @@ function debug_dumpfile ($texte, $fonc, $type) { ...@@ -196,7 +207,7 @@ function debug_dumpfile ($texte, $fonc, $type) {
echo "<div id=\"debug_boucle\"><fieldset><legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>"; echo "<div id=\"debug_boucle\"><fieldset><legend>",$debug_objets['pretty'][$var_mode_objet],"</legend>";
highlight_string($res); highlight_string($res);
echo "</fieldset></div>"; echo "</fieldset></div>";
} }
} }
if ($texte) { if ($texte) {
...@@ -220,7 +231,7 @@ function debug_dumpfile ($texte, $fonc, $type) { ...@@ -220,7 +231,7 @@ function debug_dumpfile ($texte, $fonc, $type) {
} }
echo "\n</div>"; echo "\n</div>";
echo inclure_balise_dynamique(balise_formulaire_admin_dyn('','','','','',$debug_objets)); echo inclure_balise_dynamique(balise_formulaire_admin_dyn('','','','','',$debug_objets));
echo '</body>'; echo '</body></html>';
exit; exit;
} }
......
...@@ -626,8 +626,8 @@ function calculer_squelette($squelette, $nom, $gram, $sourcefile) { ...@@ -626,8 +626,8 @@ function calculer_squelette($squelette, $nom, $gram, $sourcefile) {
if ($GLOBALS['var_mode'] == 'debug') { if ($GLOBALS['var_mode'] == 'debug') {
boucle_debug_compile ($id, $nom, $pretty, boucle_debug_compile ($id, $nom, $pretty,
$sourcefile, $codeboucle.$fincode); $sourcefile, $codeboucle.$fincode);
$codedebug = "\n boucle_debug_resultat $codedebug = "
('$nom$id', \$t0);"; boucle_debug_resultat('$id', '$nom', \$t0);";
} }
$code .= $codeboucle.$codedebug.$fincode; $code .= $codeboucle.$codedebug.$fincode;
......
...@@ -56,7 +56,7 @@ a:active.spip-admin-boutons { ...@@ -56,7 +56,7 @@ a:active.spip-admin-boutons {
background-color: #FFECD9; background-color: #FFECD9;
font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
} }
#spip-debug ul ul { #spip-debug ul table {
font-size: 80%; font-size: 80%;
} }
...@@ -74,10 +74,10 @@ a:active.spip-admin-boutons { ...@@ -74,10 +74,10 @@ a:active.spip-admin-boutons {
font-weight: bold; font-weight: bold;
} }
#spip-debug ul ul a { #spip-debug ul table a {
text-decoration: none; text-decoration: none;
} }
#spip-debug ul ul a:hover { #spip-debug ul table a:hover {
text-decoration: underline; text-decoration: underline;
} }
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter