我有一个列表项模板如下:
<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>
现在我有一个名为 listing_item 的变量,它包含单个列表项的模板。
我想将值分配给 listing_item 中的变量,如:
{assign var="$listing_item.thumbnail" value="Sometown"}
当我包含模板时,我不会传递值,因为我想多次使用 listing_item ,所以我不想在每次需要时加载它。
这里的想法是包含模板一次,并分配值和&amp;回声它需要的地方。
那么,如何在已包含并分配给变量的模板中为变量赋值?
或者,在smarty中满足我的需求的最佳做法是什么?
任何帮助都将受到高度赞赏
答案 0 :(得分: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>