diff options
author | emkael <emkael@tlen.pl> | 2018-10-18 02:40:38 +0200 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2018-10-18 02:40:38 +0200 |
commit | eab8a101e7a3fcbb41e01a574985e06c5a3775de (patch) | |
tree | 60f201da5984b0c3638d10da02bba42b61aa3177 /lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php | |
parent | 7f38be342c1495aeca418286c15c25c18ac9e142 (diff) |
Updating Smarty
Diffstat (limited to 'lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php')
-rw-r--r-- | lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php | 81 |
1 files changed, 40 insertions, 41 deletions
diff --git a/lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php b/lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php index 811996b..23cae8a 100644 --- a/lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php +++ b/lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php @@ -49,9 +49,14 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C $output = $parameter[ 'value' ]; // tag modifier if (!empty($parameter[ 'modifierlist' ])) { - $output = $compiler->compileTag('private_modifier', array(), - array('modifierlist' => $parameter[ 'modifierlist' ], - 'value' => $output)); + $output = $compiler->compileTag( + 'private_modifier', + array(), + array( + 'modifierlist' => $parameter[ 'modifierlist' ], + 'value' => $output + ) + ); } if (isset($_attr[ 'assign' ])) { // assign output to variable @@ -64,19 +69,27 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C 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 ] != ':') { + 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; } - $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 + ) + ); } // autoescape html if ($compiler->template->smarty->escape_html) { @@ -85,7 +98,7 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C // loop over registered filters if (!empty($compiler->template->smarty->registered_filters[ Smarty::FILTER_VARIABLE ])) { foreach ($compiler->template->smarty->registered_filters[ Smarty::FILTER_VARIABLE ] as $key => - $function) { + $function) { if (!is_array($function)) { $output = "{$function}({$output},\$_smarty_tpl)"; } elseif (is_object($function[ 0 ])) { @@ -98,33 +111,32 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C } // auto loaded filters if (isset($compiler->smarty->autoload_filters[ Smarty::FILTER_VARIABLE ])) { - foreach ((array) $compiler->template->smarty->autoload_filters[ Smarty::FILTER_VARIABLE ] as $name) - { - $result = $this->compile_output_filter($compiler, $name, $output); + foreach ((array)$compiler->template->smarty->autoload_filters[ Smarty::FILTER_VARIABLE ] as $name) { + $result = $this->compile_variable_filter($compiler, $name, $output); if ($result !== false) { $output = $result; } else { // not found, throw exception - throw new SmartyException("Unable to load filter '{$name}'"); + throw new SmartyException("Unable to load variable filter '{$name}'"); } } } foreach ($compiler->variable_filters as $filter) { - if (count($filter) == 1 && - ($result = $this->compile_output_filter($compiler, $filter[ 0 ], $output)) !== false + if (count($filter) === 1 + && ($result = $this->compile_variable_filter($compiler, $filter[ 0 ], $output)) !== false ) { $output = $result; } else { - $output = $compiler->compileTag('private_modifier', array(), - array('modifierlist' => array($filter), 'value' => $output)); + $output = $compiler->compileTag( + 'private_modifier', + array(), + array('modifierlist' => array($filter), 'value' => $output) + ); } } } - - $compiler->has_output = true; - $output = "<?php echo {$output};?>"; + $output = "<?php echo {$output};?>\n"; } - return $output; } @@ -134,26 +146,13 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C * @param string $output embedded output * * @return string + * @throws \SmartyException */ - private function compile_output_filter(Smarty_Internal_TemplateCompilerBase $compiler, $name, $output) + private function compile_variable_filter(Smarty_Internal_TemplateCompilerBase $compiler, $name, $output) { - $plugin_name = "smarty_variablefilter_{$name}"; - $path = $compiler->smarty->loadPlugin($plugin_name); - if ($path) { - /** - if ($compiler->template->caching) { - $compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ $name ][ Smarty::FILTER_VARIABLE ][ 'file' ] = - $path; - $compiler->parent_compiler->template->compiled->required_plugins[ 'nocache' ][ $name ][ Smarty::FILTER_VARIABLE ][ 'function' ] = - $plugin_name; - } else { - $compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ $name ][ Smarty::FILTER_VARIABLE ][ 'file' ] = - $path; - $compiler->parent_compiler->template->compiled->required_plugins[ 'compiled' ][ $name ][ Smarty::FILTER_VARIABLE ][ 'function' ] = - $plugin_name; - } - * */ - return "{$plugin_name}({$output},\$_smarty_tpl)"; + $function = $compiler->getPlugin($name, 'variablefilter'); + if ($function) { + return "{$function}({$output},\$_smarty_tpl)"; } else { // not found return false; |