packages/ssoinabox-webui/root/usr/local/share/ssoinabox/htdocs/includes/smarty/sysplugins/smarty_internal_compile_capture.php
changeset 0 3906ca745819
equal deleted inserted replaced
-1:000000000000 0:3906ca745819
       
     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 ?>