Im Template ein Array sorieren nach Alphabet

Ich versuche gerade ein Array im Templte per Smarty zu sortieren.

Das Array läuft er in der Foreach Schleife durch und gibt es auch aus. Aber er sortiert es nicht.

{foreach from='$option' item='xptions'}

Die ganzen Möglichkeiten zum sortieren was ich so gefunden habe, hat er entweder ignoriert oder einen Fehler gebracht.

Habe Google 2 Stunden geqäult nun wollte ich hier mal fragen.

Und deine ganzer Code sieht wie aus? Wir sind ja keine Hellseher, was nicht funktioniert und was du bereits versucht hast …

10 Sekunden Google -> php - Is there a specific smarty function to order alphabetically an array? - Stack Overflow

Und damit dann -> Getting started with Smarty

Ich will ein Plugin im Template anpassen weil die Agentur die Zeit nicht hat.

Das Template habe ich gefunden und ich habe am Anfang eine

{foreach $foreachGroup.values as $option}

Ich möchte nun die Werte die in $option hängen sortieren um diese dann nach der Sortierung auszugeben. Derzeit kommen die Werte so an wie diese im Backend eingegeben werden.

Ich will diese nach Alphabet haben.

Das |sortby usw habe ich schon probiert. Irgendwo habe ich gelesen das eigentlich Shopware mit der 5.4 diesen im Template freigegeben hat das man keinen eigenen Modifizierer mehr braucht.

Das von Stackoverflow habe ich auch schon gesehen. Aber ich wollte kein PHP im Smarty nutzen.

Scheinbar hat aber auch Shopware das {PHP} im Template unterbunden

@csaeum schrieb:

Das von Stackoverflow habe ich auch schon gesehen. Aber ich wollte kein PHP im Smarty nutzen.

Scheinbar hat aber auch Shopware das {PHP} im Template unterbunden

Du nutzt ja auch kein PHP im Template. Du nutzt die Smarty Funktion. Und das ist auch der korrekte Weg.

Über Smarty rufst du dann praktisch dein smarty Plugin auf, welches die PHP Funktion aufruft und zurück gibt. Steht ja auch alles im Link von der Doku oben.

Das Stackoverflow war ja nur das PHP Beispiel. Das baust du dir dann in dein Smarty Modifier ein. Also Beispiel:

/_private/smarty/modifier.sort.php

Und in deinen .tpl kannst du diesen Modifier dann aufrufen.

{foreach $foreachGroup.values|@sort as $option}

Sollte gehen, habs aber nicht getestet.

Das Stackoverflow war ja nur das PHP Beispiel. Das baust du dir dann in dein Smarty Modifier ein. Also Beispiel:

/_private/smarty/modifier.sort.php

Und in deinen .tpl kannst du diesen Modifier dann aufrufen.

{foreach $foreachGroup.values|@sort as $option}

Sollte gehen, habs aber nicht getestet.

 

Hallo Shopwareianer,

ist das der komplette Pfad (/_private/smarty/modifier.sort.php) vom Shopware-Root?

Ich habe die Datei entsprechend erstellt und wollte dann die Filter-Tags des Blogs sortieren.

Im filter.tpl habe ich die Schleife entsprechend ergänzt:
{foreach $sFilterTags|@sort as $tag}

Ausgabe war dann leidiglich „()“;

 

Hi. Ich muss den Thread nochmal wiederbeleben da ich aktuell das Gleiche Problem habe.

Ich habe unter /meintheme/frontend/private/smarty/ die Datei modifier.sort.php mit folgendem Inhalt angelegt:

In meinem Theme verusche ich hier jetzt drauf zuzugreifen:

                {block name='frontend_detail_swkwe_pseudovariants_list_items'}
                    
                        {foreach $sArticle.swkwe_pseudovariants.variants|sort as $variant}
                            {include file='frontend/detail/swkwe_pseudovariants/pseudovariant_list/item.tpl'}
                        {/foreach}
                    
                {/block}

Das funktioniert aber nicht. Die dann ausgegebene Liste ist Leer. Wenn ich den modifier weg lasse werden alle Werte ausgegeben, nur eben unsortiert. Kann mir hier jemand weiterhelfen?

 

Danke und LG

Hat sich erledigt … Ich war im falschen Verzeichnis. Korrekt ist der Pfad /meinTheme/_private statt /meinTheme/frontend/private

 

LG