diff options
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php | 99 |
1 files changed, 47 insertions, 52 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php index a37119547..188bbe77a 100644 --- a/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php +++ b/library/Smarty/libs/sysplugins/smarty_internal_compile_private_print_expression.php @@ -1,45 +1,46 @@ <?php /** -* Smarty Internal Plugin Compile Print Expression -* -* Compiles any tag which will output an expression or variable -* -* @package Smarty -* @subpackage Compiler -* @author Uwe Tews -*/ + * Smarty Internal Plugin Compile Print Expression + * Compiles any tag which will output an expression or variable + * + * @package Smarty + * @subpackage Compiler + * @author Uwe Tews + */ /** -* Smarty Internal Plugin Compile Print Expression Class -* -* @package Smarty -* @subpackage Compiler -*/ -class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_CompileBase { - + * Smarty Internal Plugin Compile Print Expression Class + * + * @package Smarty + * @subpackage Compiler + */ +class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_CompileBase +{ /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ + * Attribute definition: Overwrites base class. + * + * @var array + * @see Smarty_Internal_CompileBase + */ public $optional_attributes = array('assign'); /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ + * Attribute definition: Overwrites base class. + * + * @var array + * @see Smarty_Internal_CompileBase + */ public $option_flags = array('nocache', 'nofilter'); /** - * Compiles code for gererting output from any expression - * - * @param array $args array with attributes from parser - * @param object $compiler compiler object - * @param array $parameter array with compilation parameter - * @return string compiled code - */ + * Compiles code for generating output from any expression + * + * @param array $args array with attributes from parser + * @param object $compiler compiler object + * @param array $parameter array with compilation parameter + * + * @throws SmartyException + * @return string compiled code + */ public function compile($args, $compiler, $parameter) { // check and get attributes @@ -48,12 +49,6 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C if ($_attr['nocache'] === true) { $compiler->tag_nocache = true; } - // filter handling - if ($_attr['nofilter'] === true) { - $_filter = 'false'; - } else { - $_filter = 'true'; - } if (isset($_attr['assign'])) { // assign output to variable $output = "<?php \$_smarty_tpl->assign({$_attr['assign']},{$parameter['value']});?>"; @@ -71,13 +66,13 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C $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++) { + 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)); } @@ -85,13 +80,13 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C if ($compiler->template->smarty->escape_html) { $output = "htmlspecialchars({$output}, ENT_QUOTES, '" . addslashes(Smarty::$_CHARSET) . "')"; } - // loop over registerd filters + // 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) { if (!is_array($function)) { $output = "{$function}({$output},\$_smarty_tpl)"; - } else if (is_object($function[0])) { - $output = "\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE][{$key}][0]->{$function[1]}({$output},\$_smarty_tpl)"; + } elseif (is_object($function[0])) { + $output = "\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE]['{$key}'][0]->{$function[1]}({$output},\$_smarty_tpl)"; } else { $output = "{$function[0]}::{$function[1]}({$output},\$_smarty_tpl)"; } @@ -99,7 +94,7 @@ 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) { + foreach ((array) $compiler->template->smarty->autoload_filters[Smarty::FILTER_VARIABLE] as $name) { $result = $this->compile_output_filter($compiler, $name, $output); if ($result !== false) { $output = $result; @@ -123,15 +118,17 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C $compiler->has_output = true; $output = "<?php echo {$output};?>"; } + return $output; } /** - * @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 string $output embedded output + * + * @return string + */ private function compile_output_filter($compiler, $name, $output) { $plugin_name = "smarty_variablefilter_{$name}"; @@ -148,9 +145,7 @@ class Smarty_Internal_Compile_Private_Print_Expression extends Smarty_Internal_C // not found return false; } + return "{$plugin_name}({$output},\$_smarty_tpl)"; } - } - -?>
\ No newline at end of file |