diff options
Diffstat (limited to 'library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php')
-rw-r--r-- | library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php b/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php deleted file mode 100644 index 7ce3dcf6f..000000000 --- a/library/Smarty/libs/sysplugins/smarty_internal_compile_extends.php +++ /dev/null @@ -1,134 +0,0 @@ -<?php - -/** - * Smarty Internal Plugin Compile extend - * Compiles the {extends} tag - * - * @package Smarty - * @subpackage Compiler - * @author Uwe Tews - */ - -/** - * Smarty Internal Plugin Compile extend Class - * - * @package Smarty - * @subpackage Compiler - */ -class Smarty_Internal_Compile_Extends extends Smarty_Internal_Compile_Shared_Inheritance -{ - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $required_attributes = array('file'); - - /** - * Array of names of optional attribute required by tag - * use array('_any') if there is no restriction of attributes names - * - * @var array - */ - public $optional_attributes = array('extends_resource'); - - /** - * Attribute definition: Overwrites base class. - * - * @var array - * @see Smarty_Internal_CompileBase - */ - public $shorttag_order = array('file'); - - /** - * Compiles code for the {extends} tag extends: resource - * - * @param array $args array with attributes from parser - * @param \Smarty_Internal_TemplateCompilerBase $compiler compiler object - * - * @return string compiled code - * @throws \SmartyCompilerException - * @throws \SmartyException - */ - public function compile($args, Smarty_Internal_TemplateCompilerBase $compiler) - { - // check and get attributes - $_attr = $this->getAttributes($compiler, $args); - if ($_attr['nocache'] === true) { - $compiler->trigger_template_error('nocache option not allowed', $compiler->parser->lex->line - 1); - } - if (strpos($_attr['file'], '$_tmp') !== false) { - $compiler->trigger_template_error('illegal value for file attribute', $compiler->parser->lex->line - 1); - } - // add code to initialize inheritance - $this->registerInit($compiler, true); - $file = trim($_attr['file'], '\'"'); - if (strlen($file) > 8 && substr($file, 0, 8) == 'extends:') { - // generate code for each template - $files = array_reverse(explode('|', substr($file, 8))); - $i = 0; - foreach ($files as $file) { - if ($file[0] == '"') { - $file = trim($file, '".'); - } else { - $file = "'{$file}'"; - } - $i ++; - if ($i == count($files) && isset($_attr['extends_resource'])) { - $this->compileEndChild($compiler); - } - $this->compileInclude($compiler, $file); - } - if (!isset($_attr['extends_resource'])) { - $this->compileEndChild($compiler); - } - } else { - $this->compileEndChild($compiler); - $this->compileInclude($compiler, $_attr['file']); - } - $compiler->has_code = false; - return ''; - } - - /** - * Add code for inheritance endChild() method to end of template - * - * @param \Smarty_Internal_TemplateCompilerBase $compiler - */ - private function compileEndChild(Smarty_Internal_TemplateCompilerBase $compiler) - { - $compiler->parser->template_postfix[] = new Smarty_Internal_ParseTree_Tag($compiler->parser, - "<?php \$_smarty_tpl->ext->_inheritance->endChild(\$_smarty_tpl);\n?>\n"); - } - - /** - * Add code for including subtemplate to end of template - * - * @param \Smarty_Internal_TemplateCompilerBase $compiler - * @param string $file subtemplate name - */ - private function compileInclude(Smarty_Internal_TemplateCompilerBase $compiler, $file) - { - $compiler->parser->template_postfix[] = new Smarty_Internal_ParseTree_Tag($compiler->parser, - $compiler->compileTag('include', - array($file, - array('scope' => 'parent')))); - } - - /** - * Create source code for {extends} from source components array - * - * @param []\Smarty_Internal_Template_Source $components - * - * @return string - */ - public static function extendsSourceArrayCode($components) - { - $resources = array(); - foreach ($components as $source) { - $resources[] = $source->resource; - } - return '{extends file=\'extends:' . join('|', $resources) . '\' extends_resource=true}'; - } -} |