Es kommt vor, dass beim Verwenden des TinyMCE-Editors in Shopware 5 das Einbetten eines HTML5-Videos in die Artikelbeschreibung Probleme verursacht. Denn der HTML-Code wird möglicherweise mit bestimmten Attributen bereinigt/gelöscht, was dazu führt, dass das Video nicht ordnungsgemäß funktioniert.
In meinem konkreten Fall hatte der Code folgende Form (wie er auch von W3 vorgeschrieben wird).
<video width="640" height="480" controls>
<source src="/video/name.mp4" type="video/mp4">
</video>
Shopware bereinigt, wie bereits erwähnt, den Code und entfernt dabei den <source>-Tag, sodass nur noch der Video-Tag übrig bleibt. Die Lösung war eigentlich recht einfach.
<video controls="controls" src="/video/name.mp4" width="600"></video>
Das Video in der Artikelbeschreibung funktionierte nun einwandfrei. Natürlich ist es unmöglich, sich alles zu merken, und wenn ein Kollege möglicherweise die Beschreibung bearbeiten und ein Video einfügen möchte, kann das Problem erneut auftreten. Aus diesem Grund habe ich nach einer Lösung gesucht.
Shopware TinyMCE HTML Elemente Validieren
Die Lösung ist recht einfach, allerdings nicht sauber, da sie direkt im Kern (Core) angepasst wurde und durch ein Update jederzeit wieder überschrieben werden kann. Daher empfiehlt es sich, ein Plugin zu schreiben, um das Problem dauerhaft zu lösen.
Die schnelle und unsaubere Lösung im Ordner:
/themes/Backend/ExtJs/backend/base/component
Liegt die Datei „Shopware.form.field.TinyMCE.js“ und hier in Zeile 141 findet ihr den Abschnitt „extended_valid_elements„. Fügt dort einfach zwischen den Kommas „,source[src|type],“ ein oder eure Code Elemente die nicht Entfernt werden sollen. Speichert die Datei, löscht den Cache und schon funktioniert auch die andere Video Variante.
Ich hoffe, ich konnte euch/dir damit helfen. Das Shopware Forum konnte mir leider nicht direkt weiterhelfen, obwohl es Beiträge gibt aber keine direkte Lösung und das verlinkte Plugin auf GitHub ist so alt, dass es nicht kompatibel ist.
Auch gibt es ein Bezahltes Plugin. Es wäre meiner Meinung nach zu viel, extra für diese kleine Anpassung ein Plugin für 55€ zu erwerben, wenn man weiß, wo man es selbst anpassen kann und es nur zwei Minuten Arbeit erfordert.