Smarty присваивает значение переменной внутри включенного шаблона

У меня есть шаблон элемента списка, как показано ниже:

<div class="listing-item">
<div class="photo">{$thumbnail}</div>
<div class="title">{$name}</div>
<div class="price">{$price} {$currency}</div>
<div class="location">{$city}/{$town}</div>
</div>

Я включаю этот шаблон из другого файла шаблона и назначаю его в переменную с именем listing_item, как показано ниже:

<div class="listing-box-container clearfix">
{include file="common/product/listing_item.tpl" assign=listing_item}
</div>

Теперь у меня есть переменная с именем var listing_item который содержит шаблон для одного элемента списка.

Я хочу присвоить значение переменной внутри listing_item лайк:

{assign var="$listing_item.thumbnail" value="Sometown"}

Я не являюсь паролем, пока я включаю шаблон, потому что я хочу использовать listing_item несколько раз, поэтому я не хочу загружать его каждый раз, когда мне это нужно.

Идея здесь заключается в том, чтобы включить шаблон один раз и назначить значения & Эхо, где это необходимо.

Итак, как я могу присвоить значение переменной внутри шаблона, который уже был включен и назначен переменной?

Или, какова лучшая практика для удовлетворения моих потребностей в умном?

Любая помощь будет высоко оценена

1

Решение

Если вы используете smarty3 Вы можете использовать эту конструкцию:

{$listing_item = [
'thumbnail' => 'some_thumbnail',
'title' => 'some_title',
'price' => 'some_price'
]}

Подробнее о синтаксисе переменных здесь http://www.smarty.net/docs/en/language.syntax.variables.tpl

Теперь передайте это шаблону:

<div class="listing-box-container clearfix">
{include file="common/product/listing_item.tpl" listing_item=$listing_item}
</div>

И в рамках шаблона используйте:

<div class="listing-item">
<div class="photo">{$listing_item.thumbnail}</div>
<div class="title">{$listing_item.name}</div>
<div class="price">{$listing_item.price} {$listing_item.currency}</div>
<div class="location">{$listing_item.city}/{$listing_item.town}</div>
</div>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]