Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** This file is part of Smarty.** (c) 2015 Uwe Tews** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.*//*** Smarty Internal Plugin Compile Child Class** @author Uwe Tews <uwe.tews@googlemail.com>*/class Smarty_Internal_Compile_Child extends Smarty_Internal_CompileBase{/*** Attribute definition: Overwrites base class.** @var array* @see Smarty_Internal_CompileBase*/public $optional_attributes = array('assign');/*** Tag name** @var string*/public $tag = 'child';/*** Block type** @var string*/public $blockType = 'Child';/*** Compiles code for the {child} tag** @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* @throws \SmartyCompilerException*/public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler, $parameter){// check and get attributes$_attr = $this->getAttributes($compiler, $args);$tag = isset($parameter[ 0 ]) ? "'{$parameter[0]}'" : "'{{$this->tag}}'";if (!isset($compiler->_cache[ 'blockNesting' ])) {$compiler->trigger_template_error("{$tag} used outside {block} tags ",$compiler->parser->lex->taglineno);}$compiler->has_code = true;$compiler->suppressNocacheProcessing = true;if ($this->blockType === 'Child') {$compiler->_cache[ 'blockParams' ][ $compiler->_cache[ 'blockNesting' ] ][ 'callsChild' ] = 'true';}$_assign = isset($_attr[ 'assign' ]) ? $_attr[ 'assign' ] : null;$output = "<?php \n";if (isset($_assign)) {$output .= "ob_start();\n";}$output .= '$_smarty_tpl->inheritance->call' . $this->blockType . '($_smarty_tpl, $this' .($this->blockType === 'Child' ? '' : ", {$tag}") . ");\n";if (isset($_assign)) {$output .= "\$_smarty_tpl->assign({$_assign}, ob_get_clean());\n";}$output .= "?>\n";return $output;}}