getId($parameter[ 1 ]) : null; if (!$name) { //$compiler->trigger_template_error("missing or illegal \$smarty.{$tag} name attribute", null, true); } return '$_smarty_tpl->smarty->ext->_capture->getBuffer($_smarty_tpl'.(isset($name)?", '{$name}')":')'); } /** * 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 = "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 "smarty->ext->_capture->close(\$_smarty_tpl);?>"; } }