[英]Smarty Foreach Columns
我正在將常規模板轉換為響應式模板。 我在生成列時遇到了一些麻煩。
我的代碼無法正常工作
<div class="row-fluid">
{foreach name=aussen item=module_data from=$module_content}
{php} $col++; {/php}
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">View details »</a></p>
</div>
{php} if ($col>=4) {$col=0;echo '';}{/php}
{/foreach}
</div>
響應主題具有這種結構
<div class="span9">
<div class="row-fluid">
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">Button »</a></p>
</div>
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">Button »</a></p>
</div>
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">Button »</a></p>
</div>
</div>
<div class="row-fluid">
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">Button »</a></p>
</div>
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">Button »</a></p>
</div>
<div class="span4">
<h2>Heading</h2>
<p>Text</p>
<p><a class="btn" href="#">Button »</a></p>
</div>
</div>
</div>
如果每行達到最大值,我如何重寫“我的代碼”以生成具有“行 - 流”類的行,並給出3,4或5的流明?
你可以使用Smarty 3手冊 (或Smarty 2的等效頁面 )中描述的iteration
和index
屬性找出你所使用的{foreach}
循環的iteration
。
在這種情況下,你想要做一些不同的“每4次迭代”,所以你可以使用Smarty is even by 4
構造。 你的foreach循環名稱為aussen
,因此要測試的變量是$smarty.foreach.aussen.iteration
。
或者,您可以使用現有的{$col}
變量(盡管請參閱上面關於不使用{php}
標簽的評論):如果列號為零,則打開容器div以開始新行; 如果是4,則關閉容器div以標記行的結尾。 這種方法還需要你發現你是否在循環的最后一行,以防它不能被4整除,所以你總是關閉這行: {if $col==4 or $smarty.foreach.aussen.last}</div>{/if}
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.