Smarty3块附加在包含的模板中

时间:2010-11-26 04:23:02

标签: include smarty block smarty3

我有一些用Smarty 3编写的模板:

  1. 布局页面
  2. 索引页
  3. 包含页面
  4. layout.tpl:

    {block "css"}{/block}
    {block "js"}{/block}
    {block "content"}{/block}
    

    在index.tpl:

    {extends "layout.tpl"}
    {block "content"}
    content text
    {include "include.tpl"}
    {/block}
    

    include.tpl

    {block "js" append}
    include some extra js files for this included content
    {/block}
    include text
    

    但是我遇到了编译器异常:

    致命错误:未捕获异常'SmartyCompilerException',消息'模板中的语法错误include.tpl {block“js”prepend}太多的速记属性

    包含模板中的块附加是否不可用,即使它包含在子模板中?

    我认为如果我可以像这样使用块附加,或者可能有其他方法可以做到这一点,那将会非常有用吗?谢谢!

1 个答案:

答案 0 :(得分:2)

Smarty的模板继承在解析器甚至知道你的{include}之前被处理。因此它无法处理包含模板中的{block}。也就是说,除非包含的模板不扩展另一个模板本身。