Class Smarty foreach:为每个迭代添加类

Class Smarty foreach:为每个迭代添加类,class,foreach,smarty,add,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_Cn

我在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\u alt.tpl
包含一个简单的div容器,并为每个产品显示。现在,我正在寻找一种解决方案,以便在每秒钟的div容器中添加一个额外的类


我搜索了一下,发现(我想是的)我必须处理偶数和奇数。但是我研究了如何将其精确地应用于foreach循环,目标是每个secoddiv容器都获得一个额外的类。

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

 {cycle values='yourClass1,youClass2' assign='class'} 
这可能就是你奇偶思维的来源:手册上说

 {cycle values='odd,even' assign='class'} 
但这些只是价值观。无论如何,变量“class”现在有交替的“yourClass1”和“yourClass2”(或奇数/偶数)作为内容。如果将其指定给include,然后添加类似的内容

<div class="{$class}">

你可以轮流上课。其中一个就是你想要的。另一个可以是空的


查看循环手册:

谢谢,伙计。这听起来很好。下周我会尝试一下,并给你一些反馈。我刚刚尝试过,效果很好,但有一个小错误。它在第二个div开始分配和循环类,而不是在第一个div。因此第一个div容器没有得到任何额外的类。我不确定这将如何实现,您可能想要尝试进行基本调试的唯一方法是在一个小示例中执行此操作(例如,不包括),直到获得完美的类,然后外推到include方法?