Блок Smarty3 добавляется во включенный шаблон - PullRequest
3 голосов
/ 26 ноября 2010

У меня есть несколько шаблонов, написанных с помощью Smarty 3:

  1. Страница макета
  2. Индексная страница
  3. Страница включения

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} слишком много сокращенных атрибутов

Доступен ли блок добавления во включенном шаблоне, даже если он включен дочерним шаблоном?

Я думаю, что было бы очень полезно, если бы я мог использовать блок append как-то так, или могут быть другие способы сделать это? Спасибо!

1 Ответ

2 голосов
/ 07 июня 2011

Шаблонное наследование Smarty обрабатывается еще до того, как анализатор узнает о вашем {include}.Таким образом, он не может обрабатывать {block} s во включенных шаблонах.То есть, если включенный шаблон не расширяет сам другой шаблон.

...