summaryrefslogtreecommitdiff
path: root/lib/smarty3/sysplugins/smarty_internal_compile_private_print_expression.php
diff options
context:
space:
mode:
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.php81
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;