1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-01 20:30:39 +02:00

Better shortcode debugging

This commit is contained in:
Cameron
2013-04-18 12:41:32 -07:00
parent d122e97813
commit 7167dfb62b
2 changed files with 72 additions and 20 deletions

View File

@@ -439,7 +439,7 @@ class e107_db_debug {
} }
function logCode($type, $code, $parm, $postID) function logCode($type, $code, $parm, $details)
{ {
if (!E107_DBG_BBSC) if (!E107_DBG_BBSC)
{ {
@@ -448,7 +448,7 @@ class e107_db_debug {
$this -> scbbcodes[$this -> scbcount]['type'] = $type; $this -> scbbcodes[$this -> scbcount]['type'] = $type;
$this -> scbbcodes[$this -> scbcount]['code'] = $code; $this -> scbbcodes[$this -> scbcount]['code'] = $code;
$this -> scbbcodes[$this -> scbcount]['parm'] = htmlentities($parm); $this -> scbbcodes[$this -> scbcount]['parm'] = htmlentities($parm);
$this -> scbbcodes[$this -> scbcount]['postID'] = $postID; $this -> scbbcodes[$this -> scbcount]['details'] = $details;
$this -> scbcount ++; $this -> scbcount ++;
} }
@@ -459,15 +459,14 @@ class e107_db_debug {
return FALSE; return FALSE;
} }
$text = "<table class='fborder table table-striped table-condensed' style='width: 100%'> $text = "<table class='fborder table table-striped table-condensed' style='width: 100%'>
<thead> <thead>
<tr> <tr>
<th class='fcaption' style='width: 10%;'>Type</th> <th class='fcaption' style='width: 10%;'>Type</th>
<th class='fcaption' style='width: 10%;'>Code</th> <th class='fcaption' style='width: 30%;'>Code</th>
<th class='fcaption' style='width: 10%;'>Parm</th> <th class='fcaption' style='width: 20%;'>Parm</th>
<th class='fcaption' style='width: 10%;'>Post ID</th> <th class='fcaption' style='width: 40%;'>Details</th>
</tr> </tr>
</thead> </thead>
<tbody>\n"; <tbody>\n";
@@ -476,9 +475,9 @@ class e107_db_debug {
{ {
$text .= "<tr> $text .= "<tr>
<td class='forumheader3' style='width: 10%;'>".($codes['type'] == 1 ? "BBCode" : "Shortcode")."</td> <td class='forumheader3' style='width: 10%;'>".($codes['type'] == 1 ? "BBCode" : "Shortcode")."</td>
<td class='forumheader3' style='width: 10%;'>".(isset($codes['code']) ? $codes['code'] : "&nbsp;")."</td> <td class='forumheader3' style='width: auto;'>".(isset($codes['code']) ? $codes['code'] : "&nbsp;")."</td>
<td class='forumheader3' style='width: 10%;'>".($codes['parm'] ? $codes['parm'] : "&nbsp;")."</td> <td class='forumheader3' style='width: auto;'>".($codes['parm'] ? $codes['parm'] : "&nbsp;")."</td>
<td class='forumheader3' style='width: 10%;'>".($codes['postID'] ? $codes['postID'] : "&nbsp;")."</td> <td class='forumheader3' style='width: 40%;'>".($codes['details'] ? $codes['details'] : "&nbsp;")."</td>
</tr>\n"; </tr>\n";
} }
$text .= "</tbody></table>"; $text .= "</tbody></table>";

View File

@@ -671,6 +671,7 @@ class e_parse_shortcode
$saveCodes = $this->addedCodes; $saveCodes = $this->addedCodes;
$this->eVars = $eVars; $this->eVars = $eVars;
$this->addedCodes = NULL; $this->addedCodes = NULL;
//object support //object support
if (is_object($extraCodes)) if (is_object($extraCodes))
@@ -706,6 +707,7 @@ class e_parse_shortcode
$this->parseSCFiles = $saveParseSCFiles; // Restore previous value $this->parseSCFiles = $saveParseSCFiles; // Restore previous value
$this->addedCodes = $saveCodes; $this->addedCodes = $saveCodes;
$this->eVars = $saveVars; // restore eVars $this->eVars = $saveVars; // restore eVars
$this->debug_legacy = null;
return $ret; return $ret;
} }
@@ -769,21 +771,22 @@ class e_parse_shortcode
if (E107_DBG_BBSC || E107_DBG_SC || E107_DBG_TIMEDETAILS) if (E107_DBG_BBSC || E107_DBG_SC || E107_DBG_TIMEDETAILS)
{ {
global $db_debug;
$sql->db_Mark_Time("SC $code"); $sql->db_Mark_Time("SC $code");
$db_debug->logCode(2, $code, $parm, "");
} }
if (E107_DBG_SC) if (E107_DBG_SC)
{ {
echo "<strong>";
echo '{'; $dbg = "<strong>";
echo $code; $dbg .= '{';
echo($parm) ? '='.htmlentities($parm) : ""; $dbg .= $code;
echo '}'; $dbg .=($parm) ? '='.htmlentities($parm) : "";
echo "</strong>"; $dbg .= '}';
$dbg .= "</strong>";
// echo $dbg;
return $dbg;
// trigger_error('starting shortcode {'.$code.'}', E_USER_ERROR); // no longer useful - use ?[debug=bbsc] // trigger_error('starting shortcode {'.$code.'}', E_USER_ERROR); // no longer useful - use ?[debug=bbsc]
} }
$scCode = ''; $scCode = '';
$scFile = ''; $scFile = '';
@@ -793,22 +796,31 @@ class e_parse_shortcode
{ {
//It is class-based batch shortcode. Class already loaded; call the method //It is class-based batch shortcode. Class already loaded; call the method
$ret = $this->addedCodes->$_method($parm, $sc_mode); $ret = $this->addedCodes->$_method($parm, $sc_mode);
} }
elseif (is_array($this->addedCodes) && array_key_exists($code, $this->addedCodes)) elseif (is_array($this->addedCodes) && array_key_exists($code, $this->addedCodes))
{ {
// Its array-based shortcode. Load the code for evaluation later. // Its array-based shortcode. Load the code for evaluation later.
$scCode = $this->addedCodes[$code]; $scCode = $this->addedCodes[$code];
// $_path = print_a($this->backTrace,true);
//XXX $_path = print_a($this,true);
} }
// Check to see if we've already loaded the .sc file contents // Check to see if we've already loaded the .sc file contents
elseif (array_key_exists($code, $this->scList)) elseif (array_key_exists($code, $this->scList))
{ {
$scCode = $this->scList[$code]; $scCode = $this->scList[$code];
$_path = "(loaded earlier)"; // debug.
} }
else else
{ {
//.sc file not yet loaded, or shortcode is new function type //.sc file not yet loaded, or shortcode is new function type
if ($this->parseSCFiles == true) if ($this->parseSCFiles == true)
{ {
if (array_key_exists($code, $this->registered_codes)) if (array_key_exists($code, $this->registered_codes))
{ {
//shortcode is registered, let's proceed. //shortcode is registered, let's proceed.
@@ -824,8 +836,9 @@ class e_parse_shortcode
{ {
case 'class': case 'class':
//It is batch shortcode. Load the class and call the method //It is batch shortcode. Load the class and call the method
$_class = $this->registered_codes[$code]['class']; $_class = $this->registered_codes[$code]['class'];
$_method = 'sc_'.strtolower($code); $_method = 'sc_'.strtolower($code);
if (!$this->isScClass($_class)) if (!$this->isScClass($_class))
{ {
if (!class_exists($_class) && $this->registered_codes[$code]['path']) if (!class_exists($_class) && $this->registered_codes[$code]['path'])
@@ -848,6 +861,7 @@ class e_parse_shortcode
// $this->callScFunc($_class, 'setParserVars', $this->eVars); // $this->callScFunc($_class, 'setParserVars', $this->eVars);
$ret = $this->callScFuncA($_class, $_method, array($parm, $sc_mode)); $ret = $this->callScFuncA($_class, $_method, array($parm, $sc_mode));
/*if (method_exists($this->scClasses[$_class], $_method)) /*if (method_exists($this->scClasses[$_class], $_method))
{ {
$ret = $this->scClasses[$_class]->$_method($parm, $sc_mode); $ret = $this->scClasses[$_class]->$_method($parm, $sc_mode);
@@ -898,6 +912,7 @@ class e_parse_shortcode
{ {
$_function = strtolower($code).'_shortcode'; $_function = strtolower($code).'_shortcode';
$_class = strtolower($code); $_class = strtolower($code);
$_path = e_CORE.'shortcodes/single/'.strtolower($code).'.php';
include_once(e_CORE.'shortcodes/single/'.strtolower($code).'.php'); include_once(e_CORE.'shortcodes/single/'.strtolower($code).'.php');
@@ -913,12 +928,14 @@ class e_parse_shortcode
else else
{ {
$scFile = e_CORE.'shortcodes/single/'.strtolower($code).'.sc'; $scFile = e_CORE.'shortcodes/single/'.strtolower($code).'.sc';
$_path = $scFile;
} }
} }
if ($scFile && file_exists($scFile)) if ($scFile && file_exists($scFile))
{ {
$scCode = file_get_contents($scFile); $scCode = file_get_contents($scFile);
$this->scList[$code] = $scCode; $this->scList[$code] = $scCode;
$_path = $scFile;
} }
} }
@@ -966,6 +983,40 @@ class e_parse_shortcode
{ {
$sql->db_Mark_Time("(After SC {$code})"); $sql->db_Mark_Time("(After SC {$code})");
} }
if (E107_DBG_BBSC || E107_DBG_SC || E107_DBG_TIMEDETAILS)
{
global $db_debug;
$other = array();
if($_class)
{
$other['class'] = $_class;
}
if($_function)
{
$other['function'] = $_function;
}
if($_path)
{
$other['path'] = str_replace('../','',$_path);
}
if($this->debug_legacy)
{
$other = $this->debug_legacy;
}
$info = (isset($this->registered_codes[$code])) ? print_a($this->registered_codes[$code],true) : print_a($other,true);
$db_debug->logCode(2, $code, $parm, $info);
}
return isset($ret) ? $ret : ''; return isset($ret) ? $ret : '';
} }
@@ -992,6 +1043,8 @@ class e_parse_shortcode
{ {
$sc_batch = $fname; $sc_batch = $fname;
} }
$this->debug_legacy = array('type'=>$type, 'path'=> str_replace(e_ROOT,"",$fname));
if ($sc_batch) if ($sc_batch)
{ {