43 public function compile($args, $compiler, $parameter)
48 if ($_attr[
'nocache'] ===
true) {
49 $compiler->tag_nocache =
true;
52 if ($_attr[
'nofilter'] ===
true) {
57 if (isset($_attr[
'assign'])) {
59 $output =
"<?php \$_smarty_tpl->assign({$_attr['assign']},{$parameter['value']});?>";
64 if (!empty($parameter[
'modifierlist'])) {
65 $output = $compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => $parameter[
'modifierlist'],
'value' =>
$output));
67 if (!$_attr[
'nofilter']) {
69 if (!empty($compiler->smarty->default_modifiers)) {
70 if (empty($compiler->default_modifier_list)) {
71 $modifierlist = array();
72 foreach ($compiler->smarty->default_modifiers as $key => $single_default_modifier) {
73 preg_match_all(
'/(\'[^\'\\\\]*(?:\\\\.[^\'\\\\]*)*\'|"[^"\\\\]*(?:\\\\.[^"\\\\]*)*"|:|[^:]+)/', $single_default_modifier, $mod_array);
74 for (
$i = 0, $count = count($mod_array[0]);
$i < $count;
$i++) {
75 if ($mod_array[0][
$i] !=
':') {
76 $modifierlist[$key][] = $mod_array[0][
$i];
80 $compiler->default_modifier_list = $modifierlist;
82 $output = $compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => $compiler->default_modifier_list,
'value' =>
$output));
85 if ($compiler->template->smarty->escape_html) {
91 if (!is_array($function)) {
92 $output =
"{$function}({$output},\$_smarty_tpl)";
93 }
else if (is_object($function[0])) {
94 $output =
"\$_smarty_tpl->smarty->registered_filters[Smarty::FILTER_VARIABLE][{$key}][0]->{$function[1]}({$output},\$_smarty_tpl)";
96 $output =
"{$function[0]}::{$function[1]}({$output},\$_smarty_tpl)";
103 $result = $this->compile_output_filter($compiler, $name,
$output);
112 if (isset($compiler->template->variable_filters)) {
113 foreach ($compiler->template->variable_filters as $filter) {
114 if (count($filter) == 1 && (
$result = $this->compile_output_filter($compiler, $filter[0],
$output)) !==
false) {
117 $output = $compiler->compileTag(
'private_modifier', array(), array(
'modifierlist' => array($filter),
'value' =>
$output));
123 $compiler->has_output =
true;
124 $output =
"<?php echo {$output};?>";
135 private function compile_output_filter($compiler, $name,
$output)
137 $plugin_name =
"smarty_variablefilter_{$name}";
138 $path = $compiler->smarty->loadPlugin($plugin_name,
false);
140 if ($compiler->template->caching) {
151 return "{$plugin_name}({$output},\$_smarty_tpl)";
getAttributes($compiler, $attributes)
This function checks if the attributes passed are valid.
compile($args, $compiler, $parameter)
Compiles code for gererting output from any expression.
static $_CHARSET
The character set to adhere to (e.g.