[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/libraries/Smarty/libs/sysplugins/ -> smarty_internal_compile_capture.php (source)

   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  ?>


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1