簡體   English   中英

Smarty Foreach專欄

[英]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 &raquo;</a></p>
        </div>
        <div class="span4">
          <h2>Heading</h2>
          <p>Text</p>
          <p><a class="btn" href="#">Button &raquo;</a></p>
        </div>
        <div class="span4">
          <h2>Heading</h2>
          <p>Text</p>
          <p><a class="btn" href="#">Button &raquo;</a></p>
        </div>
    </div>
    <div class="row-fluid">
        <div class="span4">
          <h2>Heading</h2>
          <p>Text</p>
          <p><a class="btn" href="#">Button &raquo;</a></p>
        </div>
        <div class="span4">
          <h2>Heading</h2>
          <p>Text</p>
          <p><a class="btn" href="#">Button &raquo;</a></p>
        </div>
        <div class="span4">
          <h2>Heading</h2>
          <p>Text</p>
          <p><a class="btn" href="#">Button &raquo;</a></p>
        </div>
    </div>
</div>

如果每行達到最大值,我如何重寫“我的代碼”以生成具有“行 - 流”類的行,並給出3,4或5的流明?

你可以使用Smarty 3手冊 (或Smarty 2的等效頁面 )中描述iterationindex屬性找出你所使用的{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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM