Smarty: Variable für Variable/Parameter in foreach-Schleife

Timo_B

Aktives Mitglied
6. Oktober 2014
28
0
Dithmarschen
Moin,

ich korrigiere grade die Sortierung "Erscheinungsdatum" von desc auf asc, etwas ungewöhlich aber erfolgreich über den Umweg, das Ergebnis-Array einfach umzudrehen anstatt die nicht vorhandene Option zu wählen, den SQL-Code anzupassen.
Also: jetzt gehts los 🙂

Der "from"-Parameter in einer foreach-Schleife ändert sich abhängig von einer Bedingung (Hier: "umdrehen" der Sortierreihenfolge nur bei "Erscheinungsdatum").
Im Moment habe ich es so gelöst, das ich die komplette Foreach-Schleife jeweils in die if/else zweige kopiere:

Code:
{if $smarty.get.Sortierung == "" or $smarty.get.Sortierung == 10}
    {foreach name=artikel from=$Suchergebnisse->Artikel->elemente|@array_reverse item=Artikel} 
     ...(>400-zeilen)...
   {/foreach}
{else}
    {foreach name=artikel from=$Suchergebnisse->Artikel->elemente item=Artikel} 
     ...(>400-zeilen)...
{/foreach}
{/if}

Mit schwebt da natürlich etwas einfacheres vor:

Code:
{if bedingung}
 {var assign name="var" value="from=$Suchergebnisse->Artikel->elemente|@array_reverse"}
{else}
 {var assign name="var" value="from=$Suchergebnisse->Artikel->elemente"}
{/if}

//und dann nur _einmal_ die Schleife:

{foreach name=artikel from=$var item=Artikel}

Bis jetzt bin ich dran gescheitert.
Habe versucht, var value="`...`" oder value="{literal}...{/literal}" jeweils ohne Erfolg.

Jemand eine Idee, wie man das lösen kann?

LG
Timo
 

martinwolf

Offizieller Service Partner
SPBanner
6. September 2012
3.716
355
AW: Smarty: Variable für Variable/Parameter in foreach-Schleife

Code:
    {if $smarty.get.Sortierung == "" or $smarty.get.Sortierung == 10}
        {assign var="treffer" value=$Suchergebnisse->Artikel->elemente|@array_reverse}
    {else}
        {assign var="treffer" value=$Suchergebnisse->Artikel->elemente}
    {/if}

{foreach name=artikel from=$treffer item=Artikel}
...
{/foreach}
 

Timo_B

Aktives Mitglied
6. Oktober 2014
28
0
Dithmarschen
AW: Smarty: Variable für Variable/Parameter in foreach-Schleife

Entschuldigt, leute - klassisches Beispiel von Unterkoffeinierung.
Ich var nicht bei der Sache 🙂

Danke, martinwolf
 

Ähnliche Themen