From c23ce16cafb826c8bb4fe7aaf2a5525b29052b23 Mon Sep 17 00:00:00 2001 From: Mario Vavti Date: Sun, 6 Dec 2015 20:12:05 +0100 Subject: update smarty library - seems to bring some performance improvement --- .../libs/sysplugins/smarty_template_config.php | 118 +++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 library/Smarty/libs/sysplugins/smarty_template_config.php (limited to 'library/Smarty/libs/sysplugins/smarty_template_config.php') diff --git a/library/Smarty/libs/sysplugins/smarty_template_config.php b/library/Smarty/libs/sysplugins/smarty_template_config.php new file mode 100644 index 000000000..f48d4711d --- /dev/null +++ b/library/Smarty/libs/sysplugins/smarty_template_config.php @@ -0,0 +1,118 @@ +handler = clone $handler; // Note: prone to circular references + $this->resource = $resource; + $this->type = $type; + $this->name = $name; + $this->smarty = $smarty; + } + + /** + * initialize Source Object for given resource + * Either [$_template] or [$smarty, $template_resource] must be specified + * + * @param Smarty_Internal_Template $_template template object + * @param Smarty $smarty smarty object + * @param string $template_resource resource identifier + * + * @return Smarty_Template_Source Source Object + * @throws SmartyException + */ + public static function load(Smarty_Internal_Template $_template = null, Smarty $smarty = null, $template_resource = null) + { + static $_incompatible_resources = array('extends' => true, 'php' => true); + $smarty = $_template->smarty; + $template_resource = $_template->template_resource; + if (empty($template_resource)) { + throw new SmartyException('Missing config name'); + } + // parse resource_name, load resource handler + list($name, $type) = Smarty_Resource::parseResourceName($template_resource, $smarty->default_config_type); + // make sure configs are not loaded via anything smarty can't handle + if (isset($_incompatible_resources[$type])) { + throw new SmartyException ("Unable to use resource '{$type}' for config"); + } + $resource = Smarty_Resource::load($smarty, $type); + $source = new Smarty_Template_Config($resource, $smarty, $template_resource, $type, $name); + $resource->populate($source, $_template); + if ((!isset($source->exists) || !$source->exists) && isset($_template->smarty->default_config_handler_func)) { + Smarty_Internal_Extension_DefaultTemplateHandler::_getDefault($_template, $source, $resource); + } + $source->unique_resource = $resource->buildUniqueResourceName($smarty, $name, true); + return $source; + } +} -- cgit v1.2.3