123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- /**
- * Smarty Internal Plugin Compile Shared Inheritance
- * Shared methods for {extends} and {block} tags
- *
- * @package Smarty
- * @subpackage Compiler
- * @author Uwe Tews
- */
-
- /**
- * Smarty Internal Plugin Compile Shared Inheritance Class
- *
- * @package Smarty
- * @subpackage Compiler
- */
- class Smarty_Internal_Compile_Shared_Inheritance extends Smarty_Internal_CompileBase
- {
- /**
- * Compile inheritance initialization code as prefix
- *
- * @param \Smarty_Internal_TemplateCompilerBase $compiler
- * @param bool|false $initChildSequence if true force child template
- */
- static function postCompile(Smarty_Internal_TemplateCompilerBase $compiler, $initChildSequence = false)
- {
- $compiler->prefixCompiledCode .= "<?php \$_smarty_tpl->_loadInheritance();\n\$_smarty_tpl->inheritance->init(\$_smarty_tpl, " .
- var_export($initChildSequence, true) . ");\n?>\n";
- }
-
- /**
- * Register post compile callback to compile inheritance initialization code
- *
- * @param \Smarty_Internal_TemplateCompilerBase $compiler
- * @param bool|false $initChildSequence if true force child template
- */
- public function registerInit(Smarty_Internal_TemplateCompilerBase $compiler, $initChildSequence = false)
- {
- if ($initChildSequence || !isset($compiler->_cache['inheritanceInit'])) {
- $compiler->registerPostCompileCallback(array('Smarty_Internal_Compile_Shared_Inheritance', 'postCompile'),
- array($initChildSequence),
- 'inheritanceInit',
- $initChildSequence);
-
- $compiler->_cache['inheritanceInit'] = true;
- }
- }
- }
|