2012-04-10 7 views
-1

Ich habe Probleme mit dem Hinzufügen einer Klasse zu der letzten Option von foreach, es wiederholt es aus irgendeinem Grund irgendwelche Ideen ??smarty foreach zuletzt nicht richtig funktioniert?

{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} 

Ausgabe: scheint Wiederholung zu werden? und wenn es 6 Ergebnisse gibt, addiert eine Klasse = "last", aber das mittlere Ergebnis wie im 3. Ergebnis?

<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> 
+0

Ich weiß nicht, warum Sie beschlossen, zu tun, was Sie gerade getan haben. Wenn Sie eine Frage gestellt haben und nicht die Antwort erhalten haben, nach der Sie gesucht haben, [löschen] (http://stackoverflow.com/questions/10050215/smarty-foreach-last-not-working-correctly- where-have- Ich bin falsch gegangen und die exakt gleiche Frage neu zu posten ist nicht der richtige Weg, um die Dinge hier zu machen. Bitte tu das nicht. – Lix

+1

Entschuldigung, angenommen, es war älter und ging in der Priorität für die Leute zu sehen und hoffte auf eine Antwort. werde das aber nicht nochmal machen. –

+0

Ich bin nur neugierig, welche Syntax ist das? – Shoe

Antwort

0

Ihr letzter Punkt wiederholt sich, weil Sie »zuletzt im inneren Looop« suchen. Sie vernachlässigen, dass die innere Schleife selbst geloopt ist. versuchen Sie:

{foreach from=$splitted_subcategories item="ssubcateg" name="outer"} 
    {foreach from=$ssubcateg item=category name="ssubcateg"} 
    {if $smarty.foreach.outer.last && $smarty.foreach.ssubcateg.last} 
     … 
+0

schien nicht zu funktionieren? es hat jetzt die Klasse auf den letzten 2 –

+0

gab es einen Tippfehler in "ssubcateg". Versuch es noch einmal – rodneyrehm