2010-11-21 43 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})的縮寫形式,包括模板之前使用。