Blame view

application/_libs/Smarty-3.0.9/libs/sysplugins/smarty_internal_compile_eval.php 1.55 KB
8d65d0ce   andryeyev   init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
  <?php
  
  /**
   * Smarty Internal Plugin Compile Eval
   *
   * Compiles the {eval} tag 
   * @package Smarty
   * @subpackage Compiler
   * @author Uwe Tews
   */
  
  /**
   * Smarty Internal Plugin Compile Eval Class
   */ 
  class Smarty_Internal_Compile_Eval extends Smarty_Internal_CompileBase {
      public $required_attributes = array('var');
      public $optional_attributes = array('assign'); 
      public $shorttag_order = array('var','assign');
  
      /**
       * Compiles code for the {eval} 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('var');
          $this->optional_attributes = array('assign'); 
          // check and get attributes
          $_attr = $this->_get_attributes($args); 
          if (isset($_attr['assign'])) {
                // output will be stored in a smarty variable instead of beind displayed
              $_assign = $_attr['assign'];
          }
    
          // create template object
          $_output = "\$_template = new {$compiler->smarty->template_class}('eval:'.".$_attr['var'].", \$_smarty_tpl->smarty, \$_smarty_tpl);"; 
          //was there an assign attribute? 
          if (isset($_assign)) {
              $_output .= "\$_smarty_tpl->assign($_assign,\$_template->getRenderedTemplate());";
          } else {
              $_output .= "echo \$_template->getRenderedTemplate();";
          } 
          return "<?php $_output ?>";
      } 
  } 
  
  ?>