[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Smarty Internal Plugin Compile While 4 * 5 * Compiles the {while} tag 6 * 7 * @package Smarty 8 * @subpackage Compiler 9 * @author Uwe Tews 10 */ 11 12 /** 13 * Smarty Internal Plugin Compile While Class 14 * 15 * @package Smarty 16 * @subpackage Compiler 17 */ 18 class Smarty_Internal_Compile_While extends Smarty_Internal_CompileBase { 19 20 /** 21 * Compiles code for the {while} 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 // check and get attributes 31 $_attr = $this->getAttributes($compiler, $args); 32 $this->openTag($compiler, 'while', $compiler->nocache); 33 34 if (!array_key_exists("if condition",$parameter)) { 35 $compiler->trigger_template_error("missing while condition", $compiler->lex->taglineno); 36 } 37 38 // maybe nocache because of nocache variables 39 $compiler->nocache = $compiler->nocache | $compiler->tag_nocache; 40 if (is_array($parameter['if condition'])) { 41 if ($compiler->nocache) { 42 $_nocache = ',true'; 43 // create nocache var to make it know for further compiling 44 if (is_array($parameter['if condition']['var'])) { 45 $compiler->template->tpl_vars[trim($parameter['if condition']['var']['var'], "'")] = new Smarty_variable(null, true); 46 } else { 47 $compiler->template->tpl_vars[trim($parameter['if condition']['var'], "'")] = new Smarty_variable(null, true); 48 } 49 } else { 50 $_nocache = ''; 51 } 52 if (is_array($parameter['if condition']['var'])) { 53 $_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"; 54 $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var']['var'] . "]->value" . $parameter['if condition']['var']['smarty_internal_index'] . " = " . $parameter['if condition']['value'] . "){?>"; 55 } else { 56 $_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});"; 57 $_output .= "while (\$_smarty_tpl->tpl_vars[" . $parameter['if condition']['var'] . "]->value = " . $parameter['if condition']['value'] . "){?>"; 58 } 59 return $_output; 60 } else { 61 return "<?php while ({$parameter['if condition']}){?>"; 62 } 63 } 64 65 } 66 67 /** 68 * Smarty Internal Plugin Compile Whileclose Class 69 * 70 * @package Smarty 71 * @subpackage Compiler 72 */ 73 class Smarty_Internal_Compile_Whileclose extends Smarty_Internal_CompileBase { 74 75 /** 76 * Compiles code for the {/while} tag 77 * 78 * @param array $args array with attributes from parser 79 * @param object $compiler compiler object 80 * @return string compiled code 81 */ 82 public function compile($args, $compiler) 83 { 84 // must endblock be nocache? 85 if ($compiler->nocache) { 86 $compiler->tag_nocache = true; 87 } 88 $compiler->nocache = $this->closeTag($compiler, array('while')); 89 return "<?php }?>"; 90 } 91 92 } 93 94 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:08:37 2014 | Cross-referenced by PHPXref 0.7.1 |