smarty_internal_compile_assign.php
Current file: C:\DATA\Viktor\Diplomka\XSLT-Benchmarking/Libs/Smarty/sysplugins/smarty_internal_compile_assign.php
Legend: executed not executed dead code

  Coverage
  Classes Functions / Methods Lines
Total
0.00% 0 / 1
0.00% 0 / 1 CRAP
0.00% 0 / 35
Smarty_Internal_Compile_Assign
0.00% 0 / 1
0.00% 0 / 1 156
0.00% 0 / 35
 compile($args, $compiler, $parameter)
0.00% 0 / 1 156
0.00% 0 / 35



       1                 : <?php                                                                                                                                                                                                  
       2                 : /**                                                                                                                                                                                                    
       3                 :  * Smarty Internal Plugin Compile Assign                                                                                                                                                               
       4                 :  *                                                                                                                                                                                                     
       5                 :  * Compiles the {assign} tag                                                                                                                                                                           
       6                 :  *                                                                                                                                                                                                     
       7                 :  * @package Smarty                                                                                                                                                                                     
       8                 :  * @subpackage Compiler                                                                                                                                                                                
       9                 :  * @author Uwe Tews                                                                                                                                                                                    
      10                 :  */                                                                                                                                                                                                    
      11                 :                                                                                                                                                                                                        
      12                 : /**                                                                                                                                                                                                    
      13                 :  * Smarty Internal Plugin Compile Assign Class                                                                                                                                                         
      14                 :  *                                                                                                                                                                                                     
      15                 :  * @package Smarty                                                                                                                                                                                     
      16                 :  * @subpackage Compiler                                                                                                                                                                                
      17                 :  */                                                                                                                                                                                                    
      18                 : class Smarty_Internal_Compile_Assign extends Smarty_Internal_CompileBase {                                                                                                                             
      19                 :                                                                                                                                                                                                        
      20                 :     /**                                                                                                                                                                                                
      21                 :      * Compiles code for the {assign} tag                                                                                                                                                              
      22                 :      *                                                                                                                                                                                                 
      23                 :      * @param array  $args      array with attributes from parser                                                                                                                                      
      24                 :      * @param object $compiler  compiler object                                                                                                                                                        
      25                 :      * @param array  $parameter array with compilation parameter                                                                                                                                       
      26                 :      * @return string compiled code                                                                                                                                                                    
      27                 :      */                                                                                                                                                                                                
      28                 :     public function compile($args, $compiler, $parameter)                                                                                                                                              
      29                 :     {                                                                                                                                                                                                  
      30                 :         // the following must be assigned at runtime because it will be overwritten in Smarty_Internal_Compile_Append                                                                                  
      31               0 :         $this->required_attributes = array('var', 'value');                                                                                                                                            
      32               0 :         $this->shorttag_order = array('var', 'value');                                                                                                                                                 
      33               0 :         $this->optional_attributes = array('scope');                                                                                                                                                   
      34               0 :         $_nocache = 'null';                                                                                                                                                                            
      35               0 :         $_scope = Smarty::SCOPE_LOCAL;                                                                                                                                                                 
      36                 :         // check and get attributes                                                                                                                                                                    
      37               0 :         $_attr = $this->getAttributes($compiler, $args);                                                                                                                                               
      38                 :         // nocache ?                                                                                                                                                                                   
      39               0 :         if ($compiler->tag_nocache || $compiler->nocache) {                                                                                                                                            
      40               0 :             $_nocache = 'true';                                                                                                                                                                        
      41                 :             // create nocache var to make it know for further compiling                                                                                                                                
      42               0 :             $compiler->template->tpl_vars[trim($_attr['var'], "'")] = new Smarty_variable(null, true);                                                                                                 
      43               0 :         }                                                                                                                                                                                              
      44                 :         // scope setup                                                                                                                                                                                 
      45               0 :         if (isset($_attr['scope'])) {                                                                                                                                                                  
      46               0 :             $_attr['scope'] = trim($_attr['scope'], "'\"");                                                                                                                                            
      47               0 :             if ($_attr['scope'] == 'parent') {                                                                                                                                                         
      48               0 :                 $_scope = Smarty::SCOPE_PARENT;                                                                                                                                                        
      49               0 :             } elseif ($_attr['scope'] == 'root') {                                                                                                                                                     
      50               0 :                 $_scope = Smarty::SCOPE_ROOT;                                                                                                                                                          
      51               0 :             } elseif ($_attr['scope'] == 'global') {                                                                                                                                                   
      52               0 :                 $_scope = Smarty::SCOPE_GLOBAL;                                                                                                                                                        
      53               0 :             } else {                                                                                                                                                                                   
      54               0 :                 $compiler->trigger_template_error('illegal value for "scope" attribute', $compiler->lex->taglineno);                                                                                   
      55                 :             }                                                                                                                                                                                          
      56               0 :         }                                                                                                                                                                                              
      57                 :         // compiled output                                                                                                                                                                             
      58               0 :         if (isset($parameter['smarty_internal_index'])) {                                                                                                                                              
      59               0 :             $output = "<?php \$_smarty_tpl->createLocalArrayVariable($_attr[var], $_nocache, $_scope);\n\$_smarty_tpl->tpl_vars[$_attr[var]]->value$parameter[smarty_internal_index] = $_attr[value];";
      60               0 :         } else {                                                                                                                                                                                       
      61               0 :             $output = "<?php \$_smarty_tpl->tpl_vars[$_attr[var]] = new Smarty_variable($_attr[value], $_nocache, $_scope);";                                                                          
      62                 :         }                                                                                                                                                                                              
      63               0 :         if ($_scope == Smarty::SCOPE_PARENT) {                                                                                                                                                         
      64               0 :             $output .= "\nif (\$_smarty_tpl->parent != null) \$_smarty_tpl->parent->tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]];";                                              
      65               0 :         } elseif ($_scope == Smarty::SCOPE_ROOT || $_scope == Smarty::SCOPE_GLOBAL) {                                                                                                                  
      66               0 :             $output .= "\n\$_ptr = \$_smarty_tpl->parent; while (\$_ptr != null) {\$_ptr->tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]]; \$_ptr = \$_ptr->parent; }";             
      67               0 :         }                                                                                                                                                                                              
      68               0 :         if ( $_scope == Smarty::SCOPE_GLOBAL) {                                                                                                                                                        
      69               0 :             $output .= "\nSmarty::\$global_tpl_vars[$_attr[var]] = clone \$_smarty_tpl->tpl_vars[$_attr[var]];";                                                                                       
      70               0 :         }                                                                                                                                                                                              
      71               0 :         $output .= '?>';                                                                                                                                                                               
      72               0 :         return $output;                                                                                                                                                                                
      73                 :     }                                                                                                                                                                                                  
      74                 :                                                                                                                                                                                                        
      75                 : }                                                                                                                                                                                                      
      76                 :                                                                                                                                                                                                        


Generated by PHP_CodeCoverage @package_version@ using PHP 5.3.6 and PHPUnit @package_version@ at Tue Jun 26 15:06:55 CEST 2012.