
Comparing changes: https://github.com/smarty-php/smarty/compare/v4.3.1...v4.4.1 It is noticeable that Smarty 4.3.1 does not officially support PHP 8.3. Is only supported with 4.4.0. Remark: During tests with Smarty 4.5.1, it was noticed that the following warning occurs: Deprecated: Using the unregistered function "function_exists" in a template is deprecated and will be removed in a future version. Use Smarty::registerPlugin to explicitly register a custom modifier. As of Smarty 5.X.X, templates must be revised again. The Smarty release 5.0.2 is already officially available. However, integration into FlatPress is not entirely trivial.
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 Inheritance](#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
|
|
superseded 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 programmatically. 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).
|