28 public function compile($args, $compiler, $parameter)
32 $this->
openTag($compiler,
'while', $compiler->nocache);
34 if (!array_key_exists(
"if condition",$parameter)) {
35 $compiler->trigger_template_error(
"missing while condition", $compiler->lex->taglineno);
39 $compiler->nocache = $compiler->nocache | $compiler->tag_nocache;
40 if (is_array($parameter[
'if condition'])) {
41 if ($compiler->nocache) {
44 if (is_array($parameter[
'if condition'][
'var'])) {
45 $compiler->template->tpl_vars[trim($parameter[
'if condition'][
'var'][
'var'],
"'")] =
new Smarty_variable(null,
true);
47 $compiler->template->tpl_vars[trim($parameter[
'if condition'][
'var'],
"'")] =
new Smarty_variable(null,
true);
52 if (is_array($parameter[
'if condition'][
'var'])) {
53 $_output =
"<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter[
'if condition'][
'var'][
'var'] .
"]) || !is_array(\$_smarty_tpl->tpl_vars[" . $parameter[
'if condition'][
'var'][
'var'] .
"]->value)) \$_smarty_tpl->createLocalArrayVariable(" . $parameter[
'if condition'][
'var'][
'var'] .
"$_nocache);\n";
54 $_output .=
"while (\$_smarty_tpl->tpl_vars[" . $parameter[
'if condition'][
'var'][
'var'] .
"]->value" . $parameter[
'if condition'][
'var'][
'smarty_internal_index'] .
" = " . $parameter[
'if condition'][
'value'] .
"){?>";
56 $_output =
"<?php if (!isset(\$_smarty_tpl->tpl_vars[" . $parameter[
'if condition'][
'var'] .
"])) \$_smarty_tpl->tpl_vars[" . $parameter[
'if condition'][
'var'] .
"] = new Smarty_Variable(null{$_nocache});";
57 $_output .=
"while (\$_smarty_tpl->tpl_vars[" . $parameter[
'if condition'][
'var'] .
"]->value = " . $parameter[
'if condition'][
'value'] .
"){?>";
61 return "<?php while ({$parameter['if condition']}){?>";
85 if ($compiler->nocache) {
86 $compiler->tag_nocache =
true;
88 $compiler->nocache = $this->
closeTag($compiler, array(
'while'));
compile($args, $compiler)
Compiles code for the {/while} tag.
compile($args, $compiler, $parameter)
Compiles code for the {while} tag.
openTag($compiler, $openTag, $data=null)
Push opening tag name on stack.
getAttributes($compiler, $attributes)
This function checks if the attributes passed are valid.
closeTag($compiler, $expectedTag)
Pop closing tag.