/**
  * Opens a window for the Smarty Debugging Console and display the data
  *
  * @param Smarty_Internal_Template|Smarty $obj object to debug
  * @param bool                            $full
  */
 public static function display_debug($obj, $full = false)
 {
     if (!$full) {
         self::$offset++;
         $savedIndex = self::$index;
         self::$index = 9999;
     }
     // prepare information of assigned variables
     $ptr = self::get_debug_vars($obj);
     if ($obj instanceof Smarty) {
         $smarty = clone $obj;
     } else {
         $smarty = clone $obj->smarty;
     }
     $debugging = $smarty->debugging;
     $_assigned_vars = $ptr->tpl_vars;
     ksort($_assigned_vars);
     $_config_vars = $ptr->config_vars;
     ksort($_config_vars);
     $smarty->registered_filters = array();
     $smarty->autoload_filters = array();
     $smarty->default_modifiers = array();
     $smarty->force_compile = false;
     $smarty->left_delimiter = '{';
     $smarty->right_delimiter = '}';
     $smarty->debugging = false;
     $smarty->debugging_ctrl = 'NONE';
     $smarty->force_compile = false;
     $_template = new Smarty_Internal_Template($smarty->debug_tpl, $smarty);
     $_template->caching = false;
     $_template->smarty->disableSecurity();
     $_template->cache_id = null;
     $_template->compile_id = null;
     if ($obj instanceof Smarty_Internal_Template) {
         $_template->assign('template_name', $obj->source->type . ':' . $obj->source->name);
     }
     if ($obj instanceof Smarty || $full) {
         $_template->assign('template_data', self::$template_data[self::$index]);
     } else {
         $_template->assign('template_data', null);
     }
     $_template->assign('assigned_vars', $_assigned_vars);
     $_template->assign('config_vars', $_config_vars);
     $_template->assign('execution_time', microtime(true) - $smarty->start_time);
     $_template->assign('display_mode', $debugging == 2 || !$full);
     $_template->assign('offset', self::$offset * 50);
     echo $_template->fetch();
     if (isset($full)) {
         self::$index--;
     }
     if (!$full) {
         self::$index = $savedIndex;
     }
 }
Exemplo n.º 2
0
 /**
  * Opens a window for the Smarty Debugging Console and display the data
  * @param Smarty_Internal_Template|Smarty $obj object to debug
  * @param bool $full
  */
 public static function display_debug($obj, $full = FALSE)
 {
     if (!$full) {
         self::$offset++;
         $savedIndex = self::$index;
         self::$index = 9999;
     }
     if ($obj instanceof Smarty) {
         $smarty = $obj;
     } else {
         $smarty = $obj->smarty;
     }
     // create fresh instance of smarty for displaying the debug console
     // to avoid problems if the application did overload the Smarty class
     $debObj = new Smarty();
     // copy the working dirs from application
     $debObj->setCompileDir($smarty->getCompileDir());
     // init properties by hand as user may have edited the original Smarty class
     $debObj->setPluginsDir(is_dir(__DIR__ . '/../plugins') ? __DIR__ . '/../plugins' : $smarty->getPluginsDir());
     $debObj->force_compile = FALSE;
     $debObj->compile_check = TRUE;
     $debObj->left_delimiter = '{';
     $debObj->right_delimiter = '}';
     $debObj->security_policy = NULL;
     $debObj->debugging = FALSE;
     $debObj->debugging_ctrl = 'NONE';
     $debObj->error_reporting = E_ALL & ~E_NOTICE;
     $debObj->debug_tpl = isset($smarty->debug_tpl) ? $smarty->debug_tpl : 'file:' . __DIR__ . '/../debug.tpl';
     $debObj->registered_plugins = [];
     $debObj->registered_resources = [];
     $debObj->registered_filters = [];
     $debObj->autoload_filters = [];
     $debObj->default_modifiers = [];
     $debObj->escape_html = TRUE;
     $debObj->caching = FALSE;
     $debObj->compile_id = NULL;
     $debObj->cache_id = NULL;
     // prepare information of assigned variables
     $ptr = self::get_debug_vars($obj);
     $_assigned_vars = $ptr->tpl_vars;
     ksort($_assigned_vars);
     $_config_vars = $ptr->config_vars;
     ksort($_config_vars);
     $debugging = $smarty->debugging;
     $_template = new Smarty_Internal_Template($debObj->debug_tpl, $debObj);
     if ($obj instanceof Smarty_Internal_Template) {
         $_template->assign('template_name', $obj->source->type . ':' . $obj->source->name);
     }
     if ($obj instanceof Smarty || $full) {
         $_template->assign('template_data', self::$template_data[self::$index]);
     } else {
         $_template->assign('template_data', NULL);
     }
     $_template->assign('assigned_vars', $_assigned_vars);
     $_template->assign('config_vars', $_config_vars);
     $_template->assign('execution_time', microtime(TRUE) - $smarty->start_time);
     $_template->assign('display_mode', $debugging == 2 || !$full);
     $_template->assign('offset', self::$offset * 50);
     echo $_template->fetch();
     if (isset($full)) {
         self::$index--;
     }
     if (!$full) {
         self::$index = $savedIndex;
     }
 }