2009-11-06 14:35:00 +00:00
< ? php
/**
* Smarty Internal Plugin Compile While
*
* Compiles the { while } tag
*
* @ package Smarty
* @ subpackage Compiler
* @ author Uwe Tews
*/
/**
* Smarty Internal Plugin Compile While Class
*/
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
* @ return string compiled code
*/
public function compile ( $args , $compiler )
{
$this -> compiler = $compiler ;
$this -> required_attributes = array ( 'if condition' );
// check and get attributes
$_attr = $this -> _get_attributes ( $args );
$this -> _open_tag ( 'while' , $this -> compiler -> nocache );
// maybe nocache because of nocache variables
$this -> compiler -> nocache = $this -> compiler -> nocache | $this -> compiler -> tag_nocache ;
if ( is_array ( $args [ 'if condition' ])) {
$_output = " <?php if (!isset( \$ _smarty_tpl->tpl_vars[ " . $args [ 'if condition' ][ 'var' ] . " ])) \$ _smarty_tpl->tpl_vars[ " . $args [ 'if condition' ][ 'var' ] . " ] = new Smarty_Variable; \n " ;
$_output .= " while ( \$ _smarty_tpl->tpl_vars[ " . $args [ 'if condition' ][ 'var' ] . " ]->value = " . $args [ 'if condition' ][ 'value' ] . " ) { \n ?> " ;
return $_output ;
} else {
return '<?php while (' . $args [ 'if condition' ] . ') { ?>' ;
}
}
}
/**
* Smarty Internal Plugin Compile Whileclose Class
*/
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
*/
public function compile ( $args , $compiler )
{
$this -> compiler = $compiler ;
// must endblock be nocache?
if ( $this -> compiler -> nocache ) {
$this -> compiler -> tag_nocache = true ;
}
$this -> compiler -> nocache = $this -> _close_tag ( array ( 'while' ));
return " <?php }?> " ;
}
}
?>