
Updated calls to current Smarty API (register_function()/register_modifier()/register_block() -> registerPlugin(); assign_by_ref() -> assignByRef()). Fixed file includes in templates with quotes. Removed SmartyValidate.class.php includes. Still work in progress as some errors still appear!
37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
Extends Template Resources {#resources.extends}
|
|
==========================
|
|
|
|
The `extends:` resource is used to define child/parent relationships for
|
|
template inheritance from the PHP script. For details see section of
|
|
[Template Interitance](#advanced.features.template.inheritance).
|
|
|
|
As of Smarty 3.1 the `extends:` resource may use any available [template
|
|
resource](#resources), including `string:` and `eval:`. When [templates
|
|
from strings](#resources.string) are used, make sure they are properly
|
|
(url or base64) encoded. Is an `eval:` resource found within an
|
|
inheritance chain, its \"don\'t save a compile file\" property is
|
|
superseeded by the `extends:` resource. The templates within an
|
|
inheritance chain are not compiled separately, though. Only a single
|
|
compiled template will be generated.
|
|
|
|
> **Note**
|
|
>
|
|
> Use this when inheritance is required programatically. When inheriting
|
|
> within PHP, it is not obvious from the child template what inheritance
|
|
> took place. If you have a choice, it is normally more flexible and
|
|
> intuitive to handle inheritance chains from within the templates.
|
|
|
|
|
|
<?php
|
|
$smarty->display('extends:parent.tpl|child.tpl|grandchild.tpl');
|
|
|
|
// inheritance from multiple template sources
|
|
$smarty->display('extends:db:parent.tpl|file:child.tpl|grandchild.tpl|eval:{block name="fooBazVar_"}hello world{/block}');
|
|
?>
|
|
|
|
|
|
|
|
See also [Template Inheritance](#advanced.features.template.inheritance)
|
|
[`{block}`](#language.function.block) and
|
|
[`{extends}`](#language.function.extends).
|