Hallo zusammen,
ich habe einen Shop von Shopware 5.1.1 auf 5.2.9 geupdated.
Im Listing geben wir die Description in der box-basic.tpl über die Variable {$sArticle.description_long} mit HTML aus.
Leider funktioniert das in Shopware 5.2 nicht mehr wie gewünscht, hier wird standardmäßig im Listing HTML ausgefiltert.
Im Standard Bare Theme, ist die Variable so definiert: {$sArticle.description_long|strip_tags|truncate:240}
Mit strip_tags werden die HTML Befehle ja rausgefiltert. Wenn ich strip_tags entferne, das ganze hat keine Auswirkung.
Selbst wenn ich im bare Theme strip_tags entferne, werden dennoch die HTML Befehle rausgefiltert.
Wenn ich die Variable {$sArticle.description_long} z.B. im Detail Template bei einem Produkte setze, wird HTML nicht rausgefiltert. Innerhalb von den Listings aber schon?!?!
Hat jemand ein ähnliche Problem oder weiß Abhilfe??
Hallo, im listing werden tags gestript, in detail nicht:
Listing:
{$sArticle.description_long|strip_tags|truncate:240}
Detail:
{$sArticle.description_long}
Danke @brettvormkopp
Das ist ja toll, und was mache ich jetzt? Wie kann ich denn im Listing Tags nicht stripen also das Gegenteil bewirken?
Merci
Hallo, also dazu muss man noch eines wissen. wenn man strip tag zusammen mit truncate nutzt, also den Text kürzt, dann ist das bei normalem Text ok. Wenn da aber HTML Code drin ist, dann kann es passieren, dass der HTML-text genau an der Stelle abgekürzt wird wo gerade ein html-Element ist. Das würde dann deine Seite „zerschiessen“.
Ausgangstext:
schau hier was für ein toller text
Ergebnis nur mit truncate:10 (macht Seite kaputt)
schau hier was für ein toller text
Ja das ist mir klar.
Das Problem ist jedoch ein anderes. Wenn ich im Listing Template
{$sArticle.description_long}
nutze, ohne truncute und ohne strip_tags (ich brauche beides nicht) wird dennoch HTML gefiltert! Genau das möchte ich ja nicht...
Also ich vermute dass es hier seitens Shopware eine generelle Einstellung gibt die im Listing HTML stript bevor das Template generiert wird.
OK habe nun selber eine Lösung erarbeitet (Achtung nicht updatefähig):
engine/Shopware/Core/sArticle.php
die Description im Listing wird nicht mit HTML angezeigt. Das liegt zum einen am Listing da muss das Template erweitert werden und das strip tag entfernt werden, aber auch an sArticles.php muss was geändert werden:
Zeilen ab 2286
2287 // es soll html dargestellt werden.
2288 //$article['description_long'] = $this->sOptimizeText($article['description_long']);
2289 $article['description_long'] = $article['description_long'];
das sOptimizeText ist das Problem… es muss raus.
Wieso macht shopware das an dieser Stelle ?
Das sollte doch in Smarty geschehen ?
Das sollte man eventuell optional machen.
Hab das gleiche Problem und bisher auch keine Lösung gefunden.