packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/sysplugins/smarty_internal_compile_eval.php
changeset 0 3906ca745819
equal deleted inserted replaced
-1:000000000000 0:3906ca745819
       
     1 <?php
       
     2 /**
       
     3  * Smarty Internal Plugin Compile Eval
       
     4  *
       
     5  * Compiles the {eval} tag.
       
     6  *
       
     7  * @package Smarty
       
     8  * @subpackage Compiler
       
     9  * @author Uwe Tews
       
    10  */
       
    11 
       
    12 /**
       
    13  * Smarty Internal Plugin Compile Eval Class
       
    14  *
       
    15  * @package Smarty
       
    16  * @subpackage Compiler
       
    17  */
       
    18 class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
       
    19 
       
    20     /**
       
    21      * Attribute definition: Overwrites base class.
       
    22      *
       
    23      * @var array
       
    24      * @see Smarty_Internal_CompileBase
       
    25      */
       
    26     public $required_attributes = array('var');
       
    27     /**
       
    28      * Attribute definition: Overwrites base class.
       
    29      *
       
    30      * @var array
       
    31      * @see Smarty_Internal_CompileBase
       
    32      */
       
    33     public $optional_attributes = array('assign');
       
    34     /**
       
    35      * Attribute definition: Overwrites base class.
       
    36      *
       
    37      * @var array
       
    38      * @see Smarty_Internal_CompileBase
       
    39      */
       
    40     public $shorttag_order = array('var','assign');
       
    41 
       
    42     /**
       
    43      * Compiles code for the {eval} tag
       
    44      *
       
    45      * @param array  $args     array with attributes from parser
       
    46      * @param object $compiler compiler object
       
    47      * @return string compiled code
       
    48      */
       
    49     public function compile($args, $compiler)
       
    50     {
       
    51         $this->required_attributes = array('var');
       
    52         $this->optional_attributes = array('assign');
       
    53         // check and get attributes
       
    54         $_attr = $this->getAttributes($compiler, $args);
       
    55         if (isset($_attr['assign'])) {
       
    56               // output will be stored in a smarty variable instead of beind displayed
       
    57             $_assign = $_attr['assign'];
       
    58         }
       
    59 
       
    60         // create template object
       
    61         $_output = "\$_template = new {$compiler->smarty->template_class}('eval:'.".$_attr['var'].", \$_smarty_tpl->smarty, \$_smarty_tpl);";
       
    62         //was there an assign attribute?
       
    63         if (isset($_assign)) {
       
    64             $_output .= "\$_smarty_tpl->assign($_assign,\$_template->fetch());";
       
    65         } else {
       
    66             $_output .= "echo \$_template->fetch();";
       
    67         }
       
    68         return "<?php $_output ?>";
       
    69     }
       
    70 
       
    71 }
       
    72 
       
    73 ?>