Hallo zusammen,
ich hätte eine Frage bezüglich der Beschreibung, welche im Listing ausgegeben wird. Ich konnte dazu zwar schon einen Beitrag finden, wo meine Problematik über Freitextfelder gelöst wird nur ist dies leider in diesem Fall nicht praktikabel. Die Funktion, welche dieses Verhalten erzeugt, ist die “getListing” Funktion in “sArticle”.
Um ganz genau zu sein passiert dies in dieser Zeile:
$article['description_long'] = $this->sOptimizeText($article['description_long']);
Nur da dies leider in einer private function steht kann diese nicht einfach so überschrieben werden. Ein weiterer Ansatz wäre gewesen für jeden Artikel anhand der ID im Event “onPostDispatchListing” die Beschreibung erneut zu holen und im Objekt zu ergänzen. Aber für jeden Artikel einen API Call durchführen wird wohl kaum performant sein. Kann hier vielleicht noch jemand eine andere Herangehensweise kurz erläutern oder hat jemand schon etwas Ähnliches gemacht?
Unabhängig davon erschließt sich mir auch nicht unbedingt der Grund, warum das entfernen der HTML Tags nicht per Smarty im Template passiert.
Vielen Dank und viele Grüße
Phil
edit:
Ich konnte mir jetzt alle Attribute Ausgeben lassen. Ich kann dann jetzt einfach über die Artikel alle default Attribute abrufen. Code dazu ist folgender:
$article = $args->getReturn();
$article['sDefaultArticleAttributes'] = array_reverse(Shopware()->Modules()->Articles()->sGetArticleById($article['articleID']));