diff options
Diffstat (limited to 'libs/sysplugins/smarty_internal_compile_while.php')
| -rw-r--r-- | libs/sysplugins/smarty_internal_compile_while.php | 116 |
1 files changed, 62 insertions, 54 deletions
diff --git a/libs/sysplugins/smarty_internal_compile_while.php b/libs/sysplugins/smarty_internal_compile_while.php index 7e87a229..46b6e269 100644 --- a/libs/sysplugins/smarty_internal_compile_while.php +++ b/libs/sysplugins/smarty_internal_compile_while.php @@ -1,82 +1,90 @@ <?php /** -* Smarty Internal Plugin Compile While -* -* Compiles the {while} tag -* -* @package Smarty -* @subpackage Compiler -* @author Uwe Tews -*/ + * Smarty Internal Plugin Compile While + * + * Compiles the {while} tag + * + * @package Smarty + * @subpackage Compiler + * @author Uwe Tews + */ /** -* Smarty Internal Plugin Compile While Class -*/ + * Smarty Internal Plugin Compile While Class + * + * @package Smarty + * @subpackage Compiler + */ class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase { + /** - * Compiles code for the {while} tag - * - * @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 the {while} tag + * + * @param array $args array with attributes from parser + * @param object $compiler compiler object + * @param array $parameter array with compilation parameter + * @return string compiled code + */ public function compile($args, $compiler, $parameter) { - $this->compiler = $compiler; // check and get attributes - $_attr = $this->_get_attributes($args); - $this->_open_tag('while', $this->compiler->nocache); + $_attr = $this->getAttributes($compiler, $args); + $this->openTag($compiler, 'while', $compiler->nocache); // maybe nocache because of nocache variables - $this->compiler->nocache = $this->compiler->nocache | $this->compiler->tag_nocache; + $compiler->nocache = $compiler->nocache | $compiler->tag_nocache; if (is_array($parameter['if condition'])) { - if ($this->compiler->nocache) { - $_nocache = ',true'; - // create nocache var to make it know for further compiling - if (is_array($parameter['if condition']['var'])) { - $this->compiler->template->tpl_vars[trim($parameter['if condition']['var']['var'], "'")] = new Smarty_variable(null, true); - } else { - $this->compiler->template->tpl_vars[trim($parameter['if condition']['var'], "'")] = new Smarty_variable(null, true); - } - } else { - $_nocache = ''; - } + if ($compiler->nocache) { + $_nocache = ',true'; + // create nocache var to make it know for further compiling + if (is_array($parameter['if condition']['var'])) { + $compiler->template->tpl_vars[trim($parameter['if condition']['var']['var'], "'")] = new Smarty_variable(null, true); + } else { + $compiler->template->tpl_vars[trim($parameter['if condition']['var'], "'")] = new Smarty_variable(null, true); + } + } else { + $_nocache = ''; + } if (is_array($parameter['if condition']['var'])) { - $_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"; - $_output .= "while (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']['var']."]->value".$parameter['if condition']['var']['smarty_internal_index']." = ".$parameter['if condition']['value']."){?>"; + $_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"; + $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . "){?>"; } else { - $_output = "<?php \$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']."] = new Smarty_Variable(\$_smarty_tpl->getVariable(".$parameter['if condition']['var'].",null,true,false)->value{$_nocache});"; - $_output .= "while (\$_smarty_tpl->tpl_vars[".$parameter['if condition']['var']."]->value = ".$parameter['if condition']['value']."){?>"; - } + $_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});"; + $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . "){?>"; + } return $_output; } else { return "<?php while ({$parameter['if condition']}){?>"; - } - } -} + } + } + +} /** -* Smarty Internal Plugin Compile Whileclose Class -*/ + * Smarty Internal Plugin Compile Whileclose Class + * + * @package Smarty + * @subpackage Compiler + */ class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase { + /** - * Compiles code for the {/while} tag - * - * @param array $args array with attributes from parser - * @param object $compiler compiler object - * @return string compiled code - */ + * Compiles code for the {/while} tag + * + * @param array $args array with attributes from parser + * @param object $compiler compiler object + * @return string compiled code + */ public function compile($args, $compiler) { - $this->compiler = $compiler; // must endblock be nocache? - if ($this->compiler->nocache) { - $this->compiler->tag_nocache = true; + if ($compiler->nocache) { + $compiler->tag_nocache = true; } - $this->compiler->nocache = $this->_close_tag(array('while')); + $compiler->nocache = $this->closeTag($compiler, array('while')); return "<?php }?>"; - } -} + } + +} ?>
\ No newline at end of file |
