Smarty,使用包含模板中的模板函数

时间:2017-01-04 16:56:40

标签: smarty smarty3

我有一个像这样的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错误并正确使用附带模板中的函数?

2 个答案:

答案 0 :(得分:0)

尝试使用assign:

{include file='includes/test.tpl' assign=pagebuilder}

答案 1 :(得分:0)

必须使用{call}标签来调用外部定义的模板函数。 因此,您的基本模板应重写为:

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