首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含模板中的Smarty3块追加

包含模板中的Smarty3块追加
EN

Stack Overflow用户
提问于 2010-11-26 04:23:01
回答 2查看 2.5K关注 0票数 3

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

  1. A布局页
  2. 索引页
  3. 包括页面

layout.tpl:

代码语言:javascript
复制
{block "css"}{/block}
{block "js"}{/block}
{block "content"}{/block}

index.tpl:

代码语言:javascript
复制
{extends "layout.tpl"}
{block "content"}
content text
{include "include.tpl"}
{/block}

include.tpl

代码语言:javascript
复制
{block "js" append}
include some extra js files for this included content
{/block}
include text

但我有一个编译器例外:

致命错误:异常'SmartyCompilerException‘与模板include.tpl中的消息’语法错误‘{块"js“前置}太多速记属性

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

我认为,如果我可以使用这样的方式添加块,或者可能有其他方法来实现,这将是非常有帮助的?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-06-06 21:26:30

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

票数 2
EN

Stack Overflow用户

发布于 2021-09-27 09:43:08

“太多的速记属性”指的是语句中缺少属性名称:

代码语言:javascript
复制
{block "js" append}

Smarty之所以感到困惑,是因为不再清楚每个属性所指的是什么。

相反,将"js“的速记属性替换为长版本的name="js”,您应该没问题:

代码语言:javascript
复制
{block name="js" append}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4282511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档