2010-11-21 5 views
0

Какова стратегия в smarty для использования разных переменных каждый раз, когда шаблон включен в другой шаблон?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}) перед включением шаблона.