扩展模板资源

extends:扩展资源使用在定义父/子关系的模板继承中。 详情参见模板继承

Smarty 3.1后,extends:资源可以使用任何类型的 资源, 包括string:eval:。 当使用字符串资源的时候,确保其已经被编码(URL编码或base64编码)。 在继承链条中的eval:资源, “不保存编译文件”的特性将被extends:取代。 继承链条中的多个模板不会分开编译,而是仅会生成一个单独的编译文件。

Note

当需要继承的时候使用这个。当在PHP代码中使用继承,子模板的覆盖看起来不是很明显。如果可以选择,这是一个更灵活和直接的方式来处理模板继承。


Example 16.9. 使用模板继承

  1. <?php
  2. $smarty->display('extends:parent.tpl|child.tpl|grandchild.tpl');
  3.  
  4. // 从多个模板资源中继承
  5. $smarty->display('extends:db:parent.tpl|file:child.tpl|grandchild.tpl|eval:{block name="fooBazVar_"}hello world{/block}');
  6. ?>
  7.  

参见 模板继承{block}{extends}.

原文: https://www.smarty.net/docs/zh_CN/resources.extends.tpl