]> git.mxchange.org Git - friendica.git/blobdiff - library/Smarty/libs/sysplugins/smarty_internal_debug.php
Merge remote-tracking branch 'upstream/develop' into 1704-duplicate-feed
[friendica.git] / library / Smarty / libs / sysplugins / smarty_internal_debug.php
index 2aea13f301e39d6faffa48f2a6c13e04c190d01e..e5175d51d33b67528990bb711b9cf6fff0f29afc 100644 (file)
@@ -1,22 +1,21 @@
 <?php
 /**
  * Smarty Internal Plugin Debug
- *
  * Class to collect data for the Smarty Debugging Consol
  *
- * @package Smarty
+ * @package    Smarty
  * @subpackage Debug
- * @author Uwe Tews
+ * @author     Uwe Tews
  */
 
 /**
  * Smarty Internal Plugin Debug Class
  *
- * @package Smarty
+ * @package    Smarty
  * @subpackage Debug
  */
-class Smarty_Internal_Debug extends Smarty_Internal_Data {
-
+class Smarty_Internal_Debug extends Smarty_Internal_Data
+{
     /**
      * template data
      *
@@ -24,6 +23,27 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
      */
     public static $template_data = array();
 
+    /**
+     * List of uid's which shall be ignored
+     *
+     * @var array
+     */
+    public static $ignore_uid = array();
+
+    /**
+     * Ignore template
+     *
+     * @param object $template
+     */
+    public static function ignore($template)
+    {
+        // calculate Uid if not already done
+        if ($template->source->uid == '') {
+            $template->source->filepath;
+        }
+        self::$ignore_uid[$template->source->uid] = true;
+    }
+
     /**
      * Start logging of compile time
      *
@@ -31,7 +51,25 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
      */
     public static function start_compile($template)
     {
-        $key = self::get_key($template);
+        static $_is_stringy = array('string' => true, 'eval' => true);
+        if (!empty($template->compiler->trace_uid)) {
+            $key = $template->compiler->trace_uid;
+            if (!isset(self::$template_data[$key])) {
+                if (isset($_is_stringy[$template->source->type])) {
+                    self::$template_data[$key]['name'] = '\'' . substr($template->source->name, 0, 25) . '...\'';
+                } else {
+                    self::$template_data[$key]['name'] = $template->source->filepath;
+                }
+                self::$template_data[$key]['compile_time'] = 0;
+                self::$template_data[$key]['render_time'] = 0;
+                self::$template_data[$key]['cache_time'] = 0;
+            }
+        } else {
+            if (isset(self::$ignore_uid[$template->source->uid])) {
+                return;
+            }
+            $key = self::get_key($template);
+        }
         self::$template_data[$key]['start_time'] = microtime(true);
     }
 
@@ -42,7 +80,15 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
      */
     public static function end_compile($template)
     {
-        $key = self::get_key($template);
+        if (!empty($template->compiler->trace_uid)) {
+            $key = $template->compiler->trace_uid;
+        } else {
+            if (isset(self::$ignore_uid[$template->source->uid])) {
+                return;
+            }
+
+            $key = self::get_key($template);
+        }
         self::$template_data[$key]['compile_time'] += microtime(true) - self::$template_data[$key]['start_time'];
     }
 
@@ -115,6 +161,7 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
         $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;
@@ -138,7 +185,8 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
     /**
      * Recursively gets variables from all template/data scopes
      *
-     * @param Smarty_Internal_Template|Smarty_Data $obj object to debug
+     * @param  Smarty_Internal_Template|Smarty_Data $obj object to debug
+     *
      * @return StdClass
      */
     public static function get_debug_vars($obj)
@@ -169,14 +217,16 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
                 }
             }
         }
+
         return (object) array('tpl_vars' => $tpl_vars, 'config_vars' => $config_vars);
     }
 
     /**
      * Return key into $template_data for template
      *
-     * @param object $template  template object
-     * @return string   key into $template_data
+     * @param  object $template template object
+     *
+     * @return string key into $template_data
      */
     private static function get_key($template)
     {
@@ -190,17 +240,15 @@ class Smarty_Internal_Debug extends Smarty_Internal_Data {
             return $key;
         } else {
             if (isset($_is_stringy[$template->source->type])) {
-                self::$template_data[$key]['name'] = '\''.substr($template->source->name,0,25).'...\'';
+                self::$template_data[$key]['name'] = '\'' . substr($template->source->name, 0, 25) . '...\'';
             } else {
                 self::$template_data[$key]['name'] = $template->source->filepath;
             }
             self::$template_data[$key]['compile_time'] = 0;
             self::$template_data[$key]['render_time'] = 0;
             self::$template_data[$key]['cache_time'] = 0;
+
             return $key;
         }
     }
-
 }
-
-?>
\ No newline at end of file