} /** * Start logging of render time * * @param object $template */ public static function start_render($template) { $key = self::get_key($template); self::$template_data[$key]['start_time'] = microtime(true); } /** * End logging of compile time * * @param object $template */ public static function end_render($template) { $key = self::get_key($template); self::$template_data[$key]['render_time'] += microtime(true) - self::$template_data[$key]['start_time']; } /** * Start logging of cache time * * @param object $template cached template */ public static function start_cache($template) { $key = self::get_key($template); self::$template_data[$key]['start_time'] = microtime(true); } /** * End logging of cache time * * @param object $template cached template */ public static function end_cache($template) { $key = self::get_key($template); self::$template_data[$key]['cache_time'] += microtime(true) - self::$template_data[$key]['start_time'];
/** * Opens a window for the Smarty Debugging Consol and display the data */ public static function display_debug($obj) { // prepare information of assigned variables $ptr = $obj; while (isset($ptr->parent)) { $ptr = $ptr->parent; } if ($obj instanceof Smarty) { $smarty = $obj; } else { $smarty = $obj->smarty; } $_assigned_vars = $ptr->tpl_vars; ksort($_assigned_vars); $_config_vars = $ptr->config_vars; ksort($_config_vars); $ldelim = $smarty->left_delimiter; $rdelim = $smarty->right_delimiter; $smarty->left_delimiter = '{'; $smarty->right_delimiter = '}'; $_template = new Smarty_Internal_Template($smarty->debug_tpl, $smarty); $_template->caching = false; $_template->force_compile = false; $_template->disableSecurity(); $_template->cache_id = null; $_template->compile_id = null; $_template->assign('template_data', self::$template_data); $_template->assign('assigned_vars', $_assigned_vars); $_template->assign('config_vars', $_config_vars); $_template->assign('execution_time', microtime(true) - $smarty->start_time); echo $smarty->fetch($_template); $smarty->left_delimiter = $ldelim; $smarty->right_delimiter = $rdelim; }