Array füttern mit ForEach

Grüß Euch,

aktuell bin ich soweit, dass ich bereits alle Hersteller der gefundenen Produkte in einem String/Array zusammen habe.

                [{if $oView->getArticleList()}]
                
                    [{assign var="oProducts" value=$oView->getArticleList()}] 
                    [{assign var="manulist" value=''}] 
                    
                    [{foreach from=$oProducts item=oProduct key=index}]
                        [{if $manulist}]
                            [{assign var="manulist" value=$manulist|cat:', '}]
                        [{/if}]                   
                          [{assign var="oManufacturer" value=$oProducts.$index->getManufacturer()}]
                          [{assign var="manulist" value=$manulist|cat:$oManufacturer->oxmanufacturers__oxtitle->value}]

                    [{/foreach}]    <br>
                [{$manulist|@var_dump}]        

                [{/if}]

Ich würde jetzt gern noch die doppelten & leeren String entfernen.

Danke für die Hilfe!

Das ist im Prinzip eine Aufgabe für PHP, also Modul.

[QUOTE=leofonic;142815]Das ist im Prinzip eine Aufgabe für PHP, also Modul.[/QUOTE]

Würd ungern nun doch ein Modul machen, die Leerzeichen bekomme ich nun mit

[{assign var="manulist" value=$manulist|replace:" ,":""}]

raus.

Zwecks doppelten Einträgen bin ich nun auf “{cycle}” gestoßen.

Was wäre denn aus performance-technischischer Sicht schneller, die Modul oder Smarty Variante?

Hat dann doch einfacher als gedacht mit Smarty geklappt, hab den String mittels strstr durchsucht und nur falls nicht bereits vorhanden angefügt.

              [{if $oView->getArticleList()}]
                
                    [{assign var="oProducts" value=$oView->getArticleList()}] 
                    [{assign var="manulist" value=''}] 
                    
                    [{foreach from=$oProducts item=oProduct key=index}]
                        [{if $manulist}]
                            [{assign var="manulist" value=$manulist|cat:', '}]
                        [{/if}]                   
                          [{assign var="oManufacturer" value=$oProducts.$index->getManufacturer()}]
                          [{if $manulist|strstr:$oManufacturer->oxmanufacturers__oxtitle->value}]
                          [{else}][{assign var="manulist" value=$manulist|cat:$oManufacturer->oxmanufacturers__oxtitle->value}] [{/if}]
                    [{/foreach}]  
                    
                    [{assign var="manulist" value=$manulist|replace:" ,":""}]

                    
                [{$manulist|@var_dump}]        

                [{/if}]

Wenn jemand aber doch zwecks Performance Informationen hat bzgl. dem Lösen solcher Probleme mit Smarty oder php-Modul wäre ich sehr an seiner Erfahrungen interessiert.

Jedoch komm ich von einem sprichwörtlich “blödem” Problem ins neue.
Jetzt such ich noch ne passende Funktion um den mit ,-getrennten String wieder zu zerlegen die einzelnen Hersteller auch auszugeben.

Lösung: Mit

      [{assign var="myManu" value=", "|explode:$manulist}]  
   in ein Array umwandeln und dann ganz einfach mit einer foreach-Schleife ausgeben!