diff --git a/change_log.txt b/change_log.txt index c0bf6609..d9cd5910 100644 --- a/change_log.txt +++ b/change_log.txt @@ -2,6 +2,7 @@ 05.10.2011 - bugfix of problem introduced with r4342 by replacing strlen() with isset() - add environment configuration issue with mbstring.func_overload Smarty cannot compensate for (Issue #45) +- bugfix nofilter tag option did not disable default modifier 04.10.2011 - bugfix assign() in plugins called in subtemplates did change value also in parent template diff --git a/libs/sysplugins/smarty_internal_compile_private_print_expression.php b/libs/sysplugins/smarty_internal_compile_private_print_expression.php index 56dfb2b9..1e9a502f 100644 --- a/libs/sysplugins/smarty_internal_compile_private_print_expression.php +++ b/libs/sysplugins/smarty_internal_compile_private_print_expression.php @@ -1,45 +1,45 @@ compileTag('private_modifier', array(), array('modifierlist' => $parameter['modifierlist'], 'value' => $output)); } - // default modifier - if (!empty($compiler->smarty->default_modifiers)) { - if (empty($compiler->default_modifier_list)) { - $modifierlist = array(); - foreach ($compiler->smarty->default_modifiers as $key => $single_default_modifier) { - preg_match_all('/(\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|:|[^:]+)/', $single_default_modifier, $mod_array); - for ($i = 0, $count = count($mod_array[0]);$i < $count;$i++) { - if ($mod_array[0][$i] != ':') { - $modifierlist[$key][] = $mod_array[0][$i]; + if (!$_attr['nofilter']) { + // default modifier + if (!empty($compiler->smarty->default_modifiers)) { + if (empty($compiler->default_modifier_list)) { + $modifierlist = array(); + foreach ($compiler->smarty->default_modifiers as $key => $single_default_modifier) { + preg_match_all('/(\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|:|[^:]+)/', $single_default_modifier, $mod_array); + for ($i = 0, $count = count($mod_array[0]);$i < $count;$i++) { + if ($mod_array[0][$i] != ':') { + $modifierlist[$key][] = $mod_array[0][$i]; + } } } + $compiler->default_modifier_list = $modifierlist; } - $compiler->default_modifier_list = $modifierlist; + $output = $compiler->compileTag('private_modifier', array(), array('modifierlist' => $compiler->default_modifier_list, 'value' => $output)); } - $output = $compiler->compileTag('private_modifier', array(), array('modifierlist' => $compiler->default_modifier_list, 'value' => $output)); - } - if (!$_attr['nofilter']) { // autoescape html if ($compiler->template->smarty->escape_html) { $output = "htmlspecialchars({$output}, ENT_QUOTES, SMARTY_RESOURCE_CHAR_SET)"; @@ -127,11 +127,11 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C } /** - * @param object $compiler compiler object - * @param string $name name of variable filter - * @param type $output embedded output - * @return string - */ + * @param object $compiler compiler object + * @param string $name name of variable filter + * @param type $output embedded output + * @return string + */ private function compile_output_filter($compiler, $name, $output) { $plugin_name = "smarty_variablefilter_{$name}";