From 3548de5fa1482c487b982f5401b214811170e308 Mon Sep 17 00:00:00 2001 From: uwetews Date: Sun, 20 Dec 2015 17:51:16 +0100 Subject: [PATCH] - bugfix the source uid of the extendsall resource must contain $template_dir settings https://github.com/smarty-php/smarty/issues/123 --- change_log.txt | 1 + demo/plugins/resource.extendsall.php | 16 ++++++++++------ libs/Smarty.class.php | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/change_log.txt b/change_log.txt index 08c83c3b..daaefb28 100644 --- a/change_log.txt +++ b/change_log.txt @@ -3,6 +3,7 @@ - bugfix failure when the default resource type was set to 'extendsall' https://github.com/smarty-php/smarty/issues/123 - update compilation of Smarty special variables - bugfix add addition check for OS type on normalizaition of file path https://github.com/smarty-php/smarty/issues/134 + - bugfix the source uid of the extendsall resource must contain $template_dir settings https://github.com/smarty-php/smarty/issues/123 19.12.2015 - bugfix using $smarty.capture.foo in expressions could fail https://github.com/smarty-php/smarty/pull/138 diff --git a/demo/plugins/resource.extendsall.php b/demo/plugins/resource.extendsall.php index f968b8dc..a6dd5e48 100644 --- a/demo/plugins/resource.extendsall.php +++ b/demo/plugins/resource.extendsall.php @@ -23,13 +23,13 @@ class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends $uid = ''; $sources = array(); $exists = true; - foreach ($source->smarty->getTemplateDir() as $key => $directory) { + foreach ($_template->smarty->getTemplateDir() as $key => $directory) { try { - $s = Smarty_Template_Source::load(null, $source->smarty, 'file:[' . $key . ']' . $source->name); + $s = Smarty_Resource::source(null, $source->smarty, 'file:' . '[' . $key . ']' . $source->name); if (!$s->exists) { continue; } - $sources[$s->uid] = $s; + $sources[ $s->uid ] = $s; $uid .= $s->filepath; } catch (SmartyException $e) { @@ -38,7 +38,9 @@ class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends if (!$sources) { $source->exists = false; - return; + $source->template = $_template; + + return; } $sources = array_reverse($sources, true); @@ -47,10 +49,12 @@ class Smarty_Resource_Extendsall extends Smarty_Internal_Resource_Extends $source->components = $sources; $source->filepath = $s->filepath; - $source->uid = sha1($uid); + $source->uid = sha1($uid . $_template->smarty->_joined_template_dir); $source->exists = $exists; if ($_template && $_template->smarty->compile_check) { - $source->timestamp = $s->getTimeStamp(); + $source->timestamp = $s->timestamp; } + // need the template at getContent() + $source->template = $_template; } } diff --git a/libs/Smarty.class.php b/libs/Smarty.class.php index 2e173df6..4acffc75 100644 --- a/libs/Smarty.class.php +++ b/libs/Smarty.class.php @@ -118,7 +118,7 @@ class Smarty extends Smarty_Internal_TemplateBase /** * smarty version */ - const SMARTY_VERSION = '3.1.29-dev/16'; + const SMARTY_VERSION = '3.1.29-dev/17'; /** * define variable scopes