Arbeit mit Textbausteinen in SW 6 mangelhaft

Ich habe den Fehler gefunden. Wie vermutet, der clientseitige Sanitizer verwendet die Config nicht. Betreffende Datei ist „vendor/shopware/administration/Resources/app/administration/src/core/helper/sanitizer.helper.js“

Die Methode „setConfig“ wird gar nie aufgerufen. Damit wird in der Methode „sanitize“ der Standard von der eingesetzten Bibliothek DOMPurify verwendet. Und in diesem Standard fliegen script-Tags raus.

Schneller Workaround wäre die Config manuell zu setzen (ca. Zeile 90) und „bin/build-administration.js“ auszuführen:

static sanitize(dirtyHtml, config = {}) {
        var config = { ALLOWED_TAGS: ['p', 'a', 'script'], KEEP_CONTENT: true };
        return domPurify.sanitize(dirtyHtml, config);
    }

ALLOWED_TAGS dann entsprechend erweitern. Das funktioniert dann, JS wird beibehalten und im Frontend auch ausgeführt.

  • Besserer Lösungsweg: Plugin anlegen und den Teil anpassen/überschreiben
  • Noch besserer Lösungsweg: Plugin anlegen und die YAML-Config laden und verwenden
  • Königsweg: Fix durch Shopware - wenn ich dazu komme lege ich mal ein Issue an

@R4M Über den Weg wäre es aber zumindest temporär und schnell lösbar für dich und deinen Kunden.

2 „Gefällt mir“