2010-11-26 7 views
3

Ich habe einige mit Smarty geschrieben Vorlagen 3:Smarty3 Block hängen Sie in eingeschlossener Vorlage

  1. Eine Layoutseite
  2. Ein Index-Seite
  3. Eine Include-Seite

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 

Aber ich habe einen Compiler Ausnahme:

Fatal error: abgefangene Ausnahme 'SmartyCompilerException' mit der Meldung ‚Syntaxfehler in Vorlage include.tpl {Block„js "zuviele Kurzschreibattribute vorgeben"

Ist das Block-Anhängen in einer enthaltenen Vorlage nicht verfügbar, selbst wenn es in der untergeordneten Vorlage enthalten ist?

Ich denke, es wird sehr hilfreich sein, wenn ich block append so verwenden kann, oder es gibt andere Möglichkeiten, dies zu tun? Vielen Dank!

Antwort

2

Smarty's Template-Vererbung wird verarbeitet, bevor der Parser überhaupt von {include} weiß. Daher kann es nicht mit {block} s in enthaltenen Vorlagen umgehen. Das heißt, es sei denn, die enthaltene Vorlage erweitert nicht eine andere Vorlage.