2010-11-21 87 views
0

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

{include}标签允许你传递变量在呼叫:

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

否则,我敢肯定,你可以{assign}或分配({$var=value})的缩写形式,包括模板之前使用。

相关问题