forked from SimplesIP/pabx-app
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.8 KiB
49 lines
1.8 KiB
<?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 |
|
*/ |
|
public 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; |
|
} |
|
} |
|
}
|
|
|