2010-11-26 7 views
3

に追加します。Smarty3ブロックは、私はSmartyの3で書かれたいくつかのテンプレートが付属テンプレート

  1. レイアウトページ
  2. インデックスページ
  3. Anはページ

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 

しかし、私は、コンパイラの例外が発生しました:

致命的なエラー:テンプレートinclude.tpl {ブロック「jsの中にメッセージ「構文エラーでキャッチされない例外 'SmartyCompilerException' "prepend}あまりにも多くの省略形の属性

子テンプレートに含まれていても、インクルードされたテンプレートでブロックの追加が利用できないのですか?

ブロックを使用してこのような方法で追加することができますか、これを行うには他の方法があるかもしれません。ありがとう!

答えて

2

Smartyのテンプレート継承は、パーサーが{include}について知る前に処理されます。したがって、インクルードされたテンプレートで{block}を処理することはできません。つまり、含まれているテンプレートが別のテンプレート自体を拡張していない場合を除きます。

関連する問題