[ Index ] |
PHP Cross Reference of vtigercrm-6.1.0 |
[Summary view] [Print] [Text view]
1 <?php 2 /** 3 * Smarty Internal Plugin Compile Capture 4 * 5 * Compiles the {capture} tag 6 * 7 * @package Smarty 8 * @subpackage Compiler 9 * @author Uwe Tews 10 */ 11 12 /** 13 * Smarty Internal Plugin Compile Capture Class 14 * 15 * @package Smarty 16 * @subpackage Compiler 17 */ 18 class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase { 19 20 /** 21 * Attribute definition: Overwrites base class. 22 * 23 * @var array 24 * @see Smarty_Internal_CompileBase 25 */ 26 public $shorttag_order = array('name'); 27 /** 28 * Attribute definition: Overwrites base class. 29 * 30 * @var array 31 * @see Smarty_Internal_CompileBase 32 */ 33 public $optional_attributes = array('name', 'assign', 'append'); 34 35 /** 36 * Compiles code for the {capture} tag 37 * 38 * @param array $args array with attributes from parser 39 * @param object $compiler compiler object 40 * @return string compiled code 41 */ 42 public function compile($args, $compiler) 43 { 44 // check and get attributes 45 $_attr = $this->getAttributes($compiler, $args); 46 47 $buffer = isset($_attr['name']) ? $_attr['name'] : "'default'"; 48 $assign = isset($_attr['assign']) ? $_attr['assign'] : 'null'; 49 $append = isset($_attr['append']) ? $_attr['append'] : 'null'; 50 51 $compiler->_capture_stack[0][] = array($buffer, $assign, $append, $compiler->nocache); 52 // maybe nocache because of nocache variables 53 $compiler->nocache = $compiler->nocache | $compiler->tag_nocache; 54 $_output = "<?php \$_smarty_tpl->_capture_stack[0][] = array($buffer, $assign, $append); ob_start(); ?>"; 55 56 return $_output; 57 } 58 59 } 60 61 /** 62 * Smarty Internal Plugin Compile Captureclose Class 63 * 64 * @package Smarty 65 * @subpackage Compiler 66 */ 67 class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase { 68 69 /** 70 * Compiles code for the {/capture} tag 71 * 72 * @param array $args array with attributes from parser 73 * @param object $compiler compiler object 74 * @return string compiled code 75 */ 76 public function compile($args, $compiler) 77 { 78 // check and get attributes 79 $_attr = $this->getAttributes($compiler, $args); 80 // must endblock be nocache? 81 if ($compiler->nocache) { 82 $compiler->tag_nocache = true; 83 } 84 85 list($buffer, $assign, $append, $compiler->nocache) = array_pop($compiler->_capture_stack[0]); 86 87 $_output = "<?php list(\$_capture_buffer, \$_capture_assign, \$_capture_append) = array_pop(\$_smarty_tpl->_capture_stack[0]);\n"; 88 $_output .= "if (!empty(\$_capture_buffer)) {\n"; 89 $_output .= " if (isset(\$_capture_assign)) \$_smarty_tpl->assign(\$_capture_assign, ob_get_contents());\n"; 90 $_output .= " if (isset( \$_capture_append)) \$_smarty_tpl->append( \$_capture_append, ob_get_contents());\n"; 91 $_output .= " Smarty::\$_smarty_vars['capture'][\$_capture_buffer]=ob_get_clean();\n"; 92 $_output .= "} else \$_smarty_tpl->capture_error();?>"; 93 return $_output; 94 } 95 96 } 97 98 ?>
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 |