From 7085a0c2f7104a56a7e946c43ba0b5736be5f4e7 Mon Sep 17 00:00:00 2001
From: emkael <emkael@tlen.pl>
Date: Tue, 27 Dec 2016 14:47:01 +0100
Subject:  * smarty bundled

---
 ...ernal_method_registerdefaulttemplatehandler.php | 82 ++++++++++++++++++++++
 1 file changed, 82 insertions(+)
 create mode 100644 lib/smarty3/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php

(limited to 'lib/smarty3/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php')

diff --git a/lib/smarty3/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php b/lib/smarty3/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php
new file mode 100644
index 0000000..73e8f62
--- /dev/null
+++ b/lib/smarty3/sysplugins/smarty_internal_method_registerdefaulttemplatehandler.php
@@ -0,0 +1,82 @@
+<?php
+
+/**
+ * Smarty Method RegisterDefaultTemplateHandler
+ *
+ * Smarty::registerDefaultTemplateHandler() method
+ *
+ * @package    Smarty
+ * @subpackage PluginsInternal
+ * @author     Uwe Tews
+ */
+class Smarty_Internal_Method_RegisterDefaultTemplateHandler
+{
+    /**
+     * Valid for Smarty and template object
+     *
+     * @var int
+     */
+    public $objMap = 3;
+
+    /**
+     * Register template default handler
+     *
+     * @api  Smarty::registerDefaultTemplateHandler()
+     *
+     * @param \Smarty_Internal_TemplateBase|\Smarty_Internal_Template|\Smarty $obj
+     * @param  callable                                                       $callback class/method name
+     *
+     * @return \Smarty|\Smarty_Internal_Template
+     * @throws SmartyException              if $callback is not callable
+     */
+    public function registerDefaultTemplateHandler(Smarty_Internal_TemplateBase $obj, $callback)
+    {
+        $smarty = isset($obj->smarty) ? $obj->smarty : $obj;
+        if (is_callable($callback)) {
+            $smarty->default_template_handler_func = $callback;
+        } else {
+            throw new SmartyException("Default template handler not callable");
+        }
+        return $obj;
+    }
+
+    /**
+     * get default content from template or config resource handler
+     *
+     * @param Smarty_Template_Source $source
+     *
+     * @throws \SmartyException
+     */
+    public static function _getDefaultTemplate(Smarty_Template_Source $source)
+    {
+        if ($source->isConfig) {
+            $default_handler = $source->smarty->default_config_handler_func;
+        } else {
+            $default_handler = $source->smarty->default_template_handler_func;
+        }
+        $_content = $_timestamp = null;
+        $_return = call_user_func_array($default_handler,
+                                        array($source->type, $source->name, &$_content, &$_timestamp, $source->smarty));
+        if (is_string($_return)) {
+            $source->exists = is_file($_return);
+            if ($source->exists) {
+                $source->timestamp = filemtime($_return);
+            } else {
+                throw new SmartyException("Default handler: Unable to load " .
+                                          ($source->isConfig ? 'config' : 'template') .
+                                          " default file '{$_return}' for '{$source->type}:{$source->name}'");
+            }
+            $source->name = $source->filepath = $_return;
+            $source->uid = sha1($source->filepath);
+        } elseif ($_return === true) {
+            $source->content = $_content;
+            $source->exists = true;
+            $source->uid = $source->name = sha1($_content);
+            $source->handler = Smarty_Resource::load($source->smarty, 'eval');
+        } else {
+            $source->exists = false;
+            throw new SmartyException('Default handler: No ' . ($source->isConfig ? 'config' : 'template') .
+                                      " default content for '{$source->type}:{$source->name}'");
+        }
+    }
+}
\ No newline at end of file
-- 
cgit v1.2.3