- 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
This commit is contained in:
uwe.tews@googlemail.com
2011-03-01 19:47:44 +00:00
parent e583777976
commit fe26cf256e
4 changed files with 15 additions and 6 deletions

View File

@@ -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}

View File

@@ -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);
}
?>

View File

@@ -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;
}
/*

View File

@@ -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;