44 public function compile($args, $compiler, $parameter)
49 if ($_attr[
'nocache'] ===
true) {
50 $compiler->tag_nocache =
true;
52 if (isset($_attr[
'assign'])) {
54 $output =
"<?php \$_smarty_tpl->assign({$_attr['assign']},{$parameter['value']});?>";
57 $output = $parameter[
'value'];
59 if (!empty($parameter[
'modifierlist'])) {
60 $output = $compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => $parameter[
'modifierlist'],
'value' => $output));
62 if (!$_attr[
'nofilter']) {
64 if (!empty($compiler->smarty->default_modifiers)) {
65 if (empty($compiler->default_modifier_list)) {
66 $modifierlist = array();
67 foreach ($compiler->smarty->default_modifiers as $key => $single_default_modifier) {
68 preg_match_all(
'/(\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|:|[^:]+)/', $single_default_modifier, $mod_array);
69 for ($i = 0, $count = count($mod_array[0]); $i < $count; $i ++) {
70 if ($mod_array[0][$i] !=
':') {
71 $modifierlist[$key][] = $mod_array[0][$i];
75 $compiler->default_modifier_list = $modifierlist;
77 $output = $compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => $compiler->default_modifier_list,
'value' => $output));
80 if ($compiler->template->smarty->escape_html) {
81 $output =
"htmlspecialchars({$output}, ENT_QUOTES, '" . addslashes(
Smarty::$_CHARSET) .
"')";
86 if (!is_array($function)) {
87 $output =
"{$function}({$output},\$_smarty_tpl)";
88 } elseif (is_object($function[0])) {
89 $output =
"\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE]['{$key}'][0]->{$function[1]}({$output},\$_smarty_tpl)";
91 $output =
"{$function[0]}::{$function[1]}({$output},\$_smarty_tpl)";
99 if ($result !==
false) {
107 if (isset($compiler->template->variable_filters)) {
108 foreach ($compiler->template->variable_filters as $filter) {
109 if (count($filter) == 1 && ($result = $this->
compile_output_filter($compiler, $filter[0], $output)) !==
false) {
112 $output = $compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => array($filter),
'value' => $output));
118 $compiler->has_output =
true;
119 $output =
"<?php echo {$output};?>";
134 $plugin_name =
"smarty_variablefilter_{$name}";
135 $path = $compiler->smarty->loadPlugin($plugin_name,
false);
137 if ($compiler->template->caching) {
149 return "{$plugin_name}({$output},\$_smarty_tpl)";