What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
The extends:
resource is used to define child/parent relationships for template inheritance from the PHP script.
For details see section of Template Interitance.
As of Smarty 3.1 the extends:
resource may use any available
template resource,
including string:
and eval:
.
When templates from strings 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.
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.
Example 16.9. Using template inheritance from the PHP script
<?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
{block}
and
{extends}
.