在smarty之后获得第三个元素

时间:2014-02-01 05:32:23

标签: smarty prestashop

你好我想为每个第3个元素应用一个特定的类,下一个获得第三个元素很容易我用

{if $smarty.foreach.products.index % 3}omega{else}

但让下一个变得棘手,我尝试了

{if $smarty.foreach.products.index % 3+1}omega{else}

但不起作用,你知道什么是正确的写作方式吗?

3 个答案:

答案 0 :(得分:0)

我现在不能尝试,但它应该是

{if($ smarty.foreach.products.index-1)%3 == 0} omega {else}

当指数= 4,7,10 ......时,你应该得到欧米茄。

答案 1 :(得分:0)

使用迭代和索引:

{if $smarty.foreach.products.iteration is div by 3 or  $smarty.foreach.products.index is div by 3}omega{/if}

迭代从1(1,2,3,...)开始计数,所以第三个元素将获得该类,并且当索引开始计数为0(0,1,2,3,...)时,第4个元素也将获得类

http://www.smarty.net/docsv2/en/language.function.foreach.tpl

了解有关foreach的更多信息

答案 2 :(得分:0)

使用.iteration

  

iteration包含当前循环迭代并始终​​从   一,不像索引。它在每次迭代时递增1。

Smarty 3

{foreach $myArray as $foo}
  {if $foo@iteration % 3 == 0}

Smarty 2

{foreach from=$myArray item=i name=foo}
  {if $smarty.foreach.foo.iteration % 3 == 0}