diff --git a/change_log.txt b/change_log.txt index fa60f14b..5a53f817 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,6 +1,7 @@ ===== Smarty 3.1 trunk ===== 20.09.2011 - bugfix removed debug echo output while compiling template inheritance +- bugfix relative paths in $template_dir broke relative path resolving in {include "../foo.tpl"} 19.09.2011 - bugfix regression in Smarty_CacheReource_KeyValueStore introduced by r4261 diff --git a/libs/sysplugins/smarty_resource.php b/libs/sysplugins/smarty_resource.php index 852939e3..04fae95d 100644 --- a/libs/sysplugins/smarty_resource.php +++ b/libs/sysplugins/smarty_resource.php @@ -159,6 +159,11 @@ abstract class Smarty_Resource { } $file = dirname($_template->parent->source->filepath) . DS . $file; $_file_exact_match = true; + if (!preg_match('/^([\/\\\\]|[a-zA-Z]:[\/\\\\])/', $file)) { + // the path gained from the parent template is relative to the current working directory + // as expansions (like include_path) have already been done + $file = getcwd() . DS . $file; + } } elseif ($_file_is_dotted) { throw new SmartyException("Template '{$file}' may not start with ../ or ./'"); }