Smarty, используйте функции шаблона из включенного шаблона

У меня есть шаблон Smarty (версия 3.1.21):

<div>
    {include file='includes/test.tpl'}
    {pagebuilder data=$data.top_description}
</div>

includes/test.tpl содержание:

{function name=pagebuilder}
    {foreach $data as $row}
       ...
    {/foreach}
{/function}

Сообщение об ошибке:

Синтаксическая ошибка в шаблоне "/home/master/projet/public/templates/controllers/pagebuilder-preview.tpl" в строке 29 "{pagebuilder data=$data.Content}" неизвестный тег "pagebuilder"

Как исключить ошибку unknown tag после включения файла и правильно использовать функцию из включенного шаблона?


person David Auvray    schedule 04.01.2017    source источник


Ответы (2)


Внешние определенные функции шаблона должны вызываться с тегом {call}. Таким образом, ваш базовый шаблон должен быть переписан в:

<div>
    {include file='includes/test.tpl'}
    # {pagebuilder data=$data.top_description} 
    {call name=pagebuilder data=$data.top_description}
</div>
person userlond    schedule 28.03.2019

попробуйте использовать назначение:

{include file='includes/test.tpl' assign=pagebuilder}
person Lukas Liesis    schedule 05.01.2017
comment
Спасибо, но такая же проблема :( - person David Auvray; 05.01.2017