diff --git a/change_log.txt b/change_log.txt index 1c535d71..7a8d874f 100644 --- a/change_log.txt +++ b/change_log.txt @@ -1,4 +1,9 @@ ===== SVN trunk ===== +01/03/2011 +- bugfix replace modifier did not work in 3.0.7 on systems without multibyte support +- bugfix {$smarty.template} could return in 3.0.7 parent template name instead of + child name when it needed to compile + 25/02/2011 - bugfix for Smarty2 style compiler plugins on unnamed attribute passing like {tag $foo $bar} diff --git a/libs/plugins/modifier.replace.php b/libs/plugins/modifier.replace.php index 0636a191..6a669816 100644 --- a/libs/plugins/modifier.replace.php +++ b/libs/plugins/modifier.replace.php @@ -22,8 +22,10 @@ */ function smarty_modifier_replace($string, $search, $replace) { - require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'); - return smarty_mb_str_replace($search, $replace, $string); + if (function_exists('mb_split')) { + require_once(SMARTY_PLUGINS_DIR . 'shared.mb_str_replace.php'); + return smarty_mb_str_replace($search, $replace, $string); + } + return str_replace($search, $replace, $string); } - ?> \ No newline at end of file diff --git a/libs/sysplugins/smarty_internal_compile_include.php b/libs/sysplugins/smarty_internal_compile_include.php index ff6430c3..8fd4002e 100644 --- a/libs/sysplugins/smarty_internal_compile_include.php +++ b/libs/sysplugins/smarty_internal_compile_include.php @@ -101,7 +101,7 @@ class Smarty_Internal_Compile_Include extends Smarty_Internal_CompileBase { $_caching = Smarty::CACHING_OFF; } // default for included templates - if ($this->compiler->template->caching && !$this->compiler->nocache && !$this->compiler->tag_nocache) { + if ($compiler->template->caching && !$this->compiler->nocache && !$this->compiler->tag_nocache) { $_caching = self::CACHING_NOCACHE_CODE; } /* diff --git a/libs/sysplugins/smarty_internal_templatecompilerbase.php b/libs/sysplugins/smarty_internal_templatecompilerbase.php index 5b22cec1..8372a3db 100644 --- a/libs/sysplugins/smarty_internal_templatecompilerbase.php +++ b/libs/sysplugins/smarty_internal_templatecompilerbase.php @@ -52,7 +52,7 @@ class Smarty_Internal_TemplateCompilerBase { $this->tag_nocache = false; // save template object in compiler class $this->template = $template; - $this->smarty->_current_file = $this->template->getTemplateFilepath(); + $this->smarty->_current_file = $saved_filepath = $this->template->getTemplateFilepath(); // template header code $template_header = ''; if (!$template->suppressHeader) { @@ -80,7 +80,9 @@ class Smarty_Internal_TemplateCompilerBase { } // call compiler $_compiled_code = $this->doCompile($_content); - } while ($this->abort_and_recompile); + } while ($this->abort_and_recompile); + // restore original filepath which could have been modified by template inheritance + $this->template->template_filepath = $saved_filepath; // return compiled code to template object if ($template->suppressFileDependency) { $template->compiled_template = $_compiled_code;