Skip to content
Extraits de code Groupes Projets
Valider cd382436 rédigé par Fil's avatar Fil
Parcourir les fichiers

en mode debug, stockons aussi les boucles en clair.

parent 7254f2d4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -279,7 +279,7 @@ function boucle_debug_resultat ($nom, $resultat) { ...@@ -279,7 +279,7 @@ function boucle_debug_resultat ($nom, $resultat) {
function boucle_debug_compile ($id, $nom, $pretty, $sourcefile, $code) { function boucle_debug_compile ($id, $nom, $pretty, $sourcefile, $code) {
global $debug_objets; global $debug_objets;
$debug_objets['boucles'][$nom.$id] = $code; $debug_objets['code'][$nom.$id] = $code;
$debug_objets['pretty'][$nom.$id] = $pretty; $debug_objets['pretty'][$nom.$id] = $pretty;
} }
...@@ -291,6 +291,13 @@ function squelette_debug_compile($nom, $sourcefile, $squelette) { ...@@ -291,6 +291,13 @@ 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)
function boucle_debug ($id, $nom, $boucle) {
global $debug_objets;
$debug_objets['boucle'][$nom.$id] = $boucle;
}
// l'environnement graphique du debuggueur // l'environnement graphique du debuggueur
function debug_page($no_exit = false) { function debug_page($no_exit = false) {
global $flag_ob; global $flag_ob;
...@@ -309,8 +316,8 @@ function debug_page($no_exit = false) { ...@@ -309,8 +316,8 @@ function debug_page($no_exit = false) {
$link = $GLOBALS['clean_link']; $link = $GLOBALS['clean_link'];
$link->addvar('debug_objet', $nom_skel); $link->addvar('debug_objet', $nom_skel);
$link->delvar('debug_affiche'); $link->delvar('debug_affiche');
echo " <a href='".$link->getUrl()."&debug_affiche=code'>code</a>";
echo " <a href='".$link->getUrl()."&debug_affiche=resultat'>resultat</a>"; echo " <a href='".$link->getUrl()."&debug_affiche=resultat'>resultat</a>";
echo " <a href='".$link->getUrl()."&debug_affiche=code'>code</a>";
echo "</li>\n<ul>\n"; echo "</li>\n<ul>\n";
if (is_array($debug_objets['pretty'])) if (is_array($debug_objets['pretty']))
...@@ -321,6 +328,7 @@ function debug_page($no_exit = false) { ...@@ -321,6 +328,7 @@ function debug_page($no_exit = false) {
$link = $GLOBALS['clean_link']; $link = $GLOBALS['clean_link'];
$link->addvar('debug_objet', $nom); $link->addvar('debug_objet', $nom);
$link->delvar('debug_affiche'); $link->delvar('debug_affiche');
echo " <a href='".$link->getUrl()."&debug_affiche=boucle'>boucle</a>";
echo " <a href='".$link->getUrl()."&debug_affiche=code'>code</a>"; echo " <a href='".$link->getUrl()."&debug_affiche=code'>code</a>";
echo " <a href='".$link->getUrl()."&debug_affiche=resultat'>resultat</a>"; echo " <a href='".$link->getUrl()."&debug_affiche=resultat'>resultat</a>";
echo "</li>\n"; echo "</li>\n";
...@@ -334,9 +342,12 @@ function debug_page($no_exit = false) { ...@@ -334,9 +342,12 @@ function debug_page($no_exit = false) {
foreach ($res as $view) { foreach ($res as $view) {
echo "<hr>".interdire_scripts($view); echo "<hr>".interdire_scripts($view);
} }
} else if ($debug_objet AND $debug_affiche == 'code' AND $res = $debug_objets['boucles'][$debug_objet]) { } else if ($debug_objet AND $debug_affiche == 'code' AND $res = $debug_objets['code'][$debug_objet]) {
echo "<b>".$debug_objets['pretty'][$debug_objet]."</b><br />"; echo "<b>".$debug_objets['pretty'][$debug_objet]."</b><br />";
highlight_string("<"."?php\n".$res."\n?".">"); highlight_string("<"."?php\n".$res."\n?".">");
} else if ($debug_objet AND $debug_affiche == 'boucle' AND $res = $debug_objets['boucle'][$debug_objet]) {
echo "<b>".$debug_objets['pretty'][$debug_objet]."</b><br />";
highlight_string($res);
} }
......
...@@ -518,7 +518,7 @@ function calculer_squelette($squelette, $nom, $gram, $sourcefile) { ...@@ -518,7 +518,7 @@ function calculer_squelette($squelette, $nom, $gram, $sourcefile) {
$boucles = ''; $boucles = '';
spip_timer('calcul_skel'); spip_timer('calcul_skel');
include_local("inc-$gram-squel.php3"); include_local("inc-$gram-squel.php3");
$racine = parser($squelette, '',$boucles); $racine = parser($squelette, '',$boucles, $nom);
# include_local('inc-compilo-debug.php3'); # include_local('inc-compilo-debug.php3');
# afftable($racine); # afftable($racine);
# affboucles($boucles); # affboucles($boucles);
......
...@@ -225,7 +225,7 @@ function parser_param($params, &$result, $idb) { ...@@ -225,7 +225,7 @@ function parser_param($params, &$result, $idb) {
$result->param = $params2; $result->param = $params2;
} }
function parser($texte, $id_parent, &$boucles) { function parser($texte, $id_parent, &$boucles, $nom) {
$all_res = array(); $all_res = array();
...@@ -233,6 +233,14 @@ function parser($texte, $id_parent, &$boucles) { ...@@ -233,6 +233,14 @@ function parser($texte, $id_parent, &$boucles) {
$nom_boucle = $regs[1].$regs[2]; $nom_boucle = $regs[1].$regs[2];
$p = strpos($texte, '<BOUCLE'.$nom_boucle); $p = strpos($texte, '<BOUCLE'.$nom_boucle);
// envoyer la boucle au debugueur
if ($GLOBALS['var_debug']) {
$preg = "@<B($nom_boucle|OUCLE${nom_boucle}[^-_.a-zA-Z0-9][^>]*)>"
. ".*</(BOUCLE|/?B)$nom_boucle>@ms";
preg_match($preg, $texte, $match);
boucle_debug ($nom_boucle, $nom, $match[0]);
}
// //
// Recuperer la partie principale de la boucle // Recuperer la partie principale de la boucle
// //
...@@ -313,10 +321,10 @@ function parser($texte, $id_parent, &$boucles) { ...@@ -313,10 +321,10 @@ function parser($texte, $id_parent, &$boucles) {
$texte = substr($texte, $p + strlen($s)); $texte = substr($texte, $p + strlen($s));
} }
$result->cond_avant = parser($result->cond_avant, $id_parent,$boucles); $result->cond_avant = parser($result->cond_avant, $id_parent,$boucles, $nom);
$result->cond_apres = parser($result->cond_fin, $id_parent,$boucles); $result->cond_apres = parser($result->cond_fin, $id_parent,$boucles, $nom);
$result->cond_altern = parser($result->cond_altern,$id_parent,$boucles); $result->cond_altern = parser($result->cond_altern,$id_parent,$boucles, $nom);
$result->milieu = parser($milieu, $id_boucle,$boucles); $result->milieu = parser($milieu, $id_boucle,$boucles, $nom);
$all_res = array_merge($all_res, parser_champs_etendus($debut)); $all_res = array_merge($all_res, parser_champs_etendus($debut));
$all_res[] = $result; $all_res[] = $result;
......
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