Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** Smarty Internal Plugin Compile Capture* Compiles the {capture} tag** @package Smarty* @subpackage Compiler* @author Uwe Tews*//*** Smarty Internal Plugin Compile Capture Class** @package Smarty* @subpackage Compiler*/class Smarty_Internal_Compile_Capture extends Smarty_Internal_CompileBase{/*** Attribute definition: Overwrites base class.** @var array* @see Smarty_Internal_CompileBase*/public $shorttag_order = array('name');/*** Attribute definition: Overwrites base class.** @var array* @see Smarty_Internal_CompileBase*/public $optional_attributes = array('name', 'assign', 'append');/*** Compiles code for the {$smarty.capture.xxx}** @param array $args array with attributes from parser* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object* @param array $parameter array with compilation parameter** @return string compiled code*/public static function compileSpecialVariable($args,Smarty_Internal_TemplateCompilerBase $compiler,$parameter = null) {return '$_smarty_tpl->smarty->ext->_capture->getBuffer($_smarty_tpl' .(isset($parameter[ 1 ]) ? ", {$parameter[ 1 ]})" : ')');}/*** Compiles code for the {capture} tag** @param array $args array with attributes from parser* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object* @param null $parameter** @return string compiled code*/public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter = null){// check and get attributes$_attr = $this->getAttributes($compiler, $args, $parameter, 'capture');$buffer = isset($_attr[ 'name' ]) ? $_attr[ 'name' ] : "'default'";$assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : 'null';$append = isset($_attr[ 'append' ]) ? $_attr[ 'append' ] : 'null';$compiler->_cache[ 'capture_stack' ][] = array($compiler->nocache);// maybe nocache because of nocache variables$compiler->nocache = $compiler->nocache | $compiler->tag_nocache;$_output = "<?php \$_smarty_tpl->smarty->ext->_capture->open(\$_smarty_tpl, $buffer, $assign, $append);?>";return $_output;}}/*** Smarty Internal Plugin Compile Captureclose Class** @package Smarty* @subpackage Compiler*/class Smarty_Internal_Compile_CaptureClose extends Smarty_Internal_CompileBase{/*** Compiles code for the {/capture} tag** @param array $args array with attributes from parser* @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object* @param null $parameter** @return string compiled code*/public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter){// check and get attributes$_attr = $this->getAttributes($compiler, $args, $parameter, '/capture');// must endblock be nocache?if ($compiler->nocache) {$compiler->tag_nocache = true;}list($compiler->nocache) = array_pop($compiler->_cache[ 'capture_stack' ]);return "<?php \$_smarty_tpl->smarty->ext->_capture->close(\$_smarty_tpl);?>";}}