使用smaryt为每4个结果设置最后一个类不能按预期工作

时间:2013-06-09 21:45:15

标签: php smarty

我一直在阅读smarty中的最佳方法,将循环中的每个第4项设置为一个类,并且遇到了使用" interation"但是下面的示例代码是有效的,但是它将类应用于第4个之后的所有内容,并且我希望每隔4个应用最后一个类。使用这种方法可以吗?

{foreach from=$product.image_pairs item="image_pair" name="additional_images"}
    {if $image_pair}
        {if $image_pair.image_id == 0}
            {assign var="img_id" value=$image_pair.detailed_id}
        {else}
        {assign var="img_id" value=$image_pair.image_id}
        {/if}
        {if $smarty.foreach.additional_images.iteration is div by 4}
            {assign var="last_image" value="last"}
        {/if}
        {include file="common_templates/image.tpl" images=$image_pair object_type="detailed_product" link_class="cm-thumbnails-mini $last_image" image_width=$th_size image_height=$th_size show_thumbnail="Y" show_detailed_link=false obj_id="`$preview_id`_`$img_id`_mini" make_box=true wrap_image=true}
    {/if}
{/foreach}

结果:

<a class="">content</a>
<a class="">content</a>
<a class="">content</a>
<a class="">content</a>
<a class="last">content</a>
<a class="last">content</a>
<a class="last">content</a>

1 个答案:

答案 0 :(得分:0)

{assign var="last_image" value="last"}

将在第4次迭代时分配此变量,这将适用于下一次迭代。您应该添加else并将空字符串分配给此变量。