Smarty - один и тот же шаблон разного контента - PullRequest
0 голосов
/ 21 ноября 2010

Какова стратегия в 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 Ответ

1 голос
/ 21 ноября 2010

Тег {include} позволяет передавать переменные в вызове:

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

В противном случае, я почти уверен, что вы можете использовать либо {assign}, либо краткую форму присвоения ({$var=value}) перед включением шаблона.

...