Smarty foreach:为每次迭代添加类

时间:2012-04-27 11:33:13

标签: class foreach smarty add

我在tpl文件中有一个foreach循环代码,如下所示:

[{foreach from=$oView->getArticleList() item=actionproduct name=test_articleList}]
[{include file="inc/product_alt.tpl"  product=$actionproduct testid="action_"|cat:$actionproduct->oxarticles__oxid->value test_Cntr=$smarty.foreach.test_articleList.iteration}]
[{/foreach}]

foreach循环中包含的文件product_alt.tpl包含一个简单的div容器,并显示每个产品。现在我正在寻找一个解决方案,为每个第二个div容器添加一个额外的类。

我谷歌了一下,发现(我想是的)我必须与偶数和奇数一起工作。但我坚持如何将这完全应用于foreach循环,目标是每个secod div容器都获得额外的类。

1 个答案:

答案 0 :(得分:2)

您正在寻找cycle。例如,您可以在include语句中分配一个额外的$class变量,该变量由assign更改,如下所示:

 {cycle values='yourClass1,youClass2' assign='class'} 

这可能是你奇怪/甚至想到的地方:手册说

 {cycle values='odd,even' assign='class'} 

但这些只是价值观。 Anyeay,你的变量'class'现在交替使用“yourClass1”和“yourClass2”(或奇数/偶数)作为内容。如果您将此分配给您的包含,然后添加类似

的内容
<div class="{$class}">

你会得到交替的课程。其中一个是你想要的。另一个可能是空的..

查看周期手册:http://www.smarty.net/docsv2/en/language.function.cycle