Smarty - 相同模板的不同内容

时间:2010-11-21 05:34:04

标签: foreach smarty

每次将模板包含在另一个模板中时,使用不同变量的smarty策略是什么?

这就是我的意思。 我有一个聪明的模板,可以创建一个简单的导航列表。

    <ul class='linkList'>

  <li>

    <h3>{$title}</h3>

    <ul>
      {foreach $links as $d}
        <li><a title='{$d...}' href='{$d....}'>{$d.text}</a></li>
      {/foreach}
    </ul>

  </li>

</ul>

我想在我的主模板中多次包含它,每次都传递不同的值。我不知道用什么策略来做这件事。

如果我在我的php文件中分配变量,就像这样

$smarty->assign('links',array(.....);
$smarty->assign('title','My first link list');

$smarty->assign('links',array(different values);
$smarty->assign('title','My second link list');

然后包含模板两次我将使用第二批值获得相同的列表两次。

1 个答案:

答案 0 :(得分:1)

{include}标记允许您在调用中传递变量:

{include 'linklist.tpl' title="Sample Links 1" links=$link_array1}
{include 'linklist.tpl' title="Sample Links 2" links=$link_array2}

否则,我非常确定您可以在包含模板之前使用{assign}或简短形式的assign({$var=value})。