-1

foreachの最後のオプションにクラスを追加するのに問題がありますが、何らかの理由でそれを繰り返していますか?

{if $subcategories} 
<div class="subcategories">
{if $subcategories|@count < 6}
    <ul>
{/if}
{foreach from=$splitted_subcategories item="ssubcateg"}
    {if $subcategories|count >= 6}
        <div class="subcategories">
            <ul>
    {/if}
        {foreach from=$ssubcateg item=category name="ssubcateg"}
        {if $category.category_id}<li{if $smarty.foreach.ssubcateg.last} class="last"{/if}><a href="{"categories.view?category_id=`$category.category_id`"|fn_url}" class="strong">{$category.category}</a></li>{/if}

    {/foreach}
    {if $subcategories|count >= 6}
            </ul>
        </div>
    {/if}
{/foreach}
{if $subcategories|count < 6}
</ul>
{/if}
</div>
{/if}

出力:繰り返しているようですか?結果が6つある場合は、class = "last"を1つ追加しますが、3番目の結果のように中間の結果を追加しますか?

<ul> 
<li class="last"><a class="strong" href="#">Link</a></li>
    <li><a class="strong" href="#">Link</a></li>
    <li class="last"><a class="strong" href="#">Link</a></li>
    <li><a class="strong" href="#">Link</a></li>
</ul>
4

1 に答える 1

0

最後のアイテムが繰り返されています。これは、「内側のループの最後にある」ことを確認しているためです。内側のループ自体がループしていることを無視しています。試す:

{foreach from=$splitted_subcategories item="ssubcateg" name="outer"}
  {foreach from=$ssubcateg item=category name="ssubcateg"}
    {if $smarty.foreach.outer.last && $smarty.foreach.ssubcateg.last}
      …
于 2012-04-11T08:15:48.960 に答える