ich arbeite gerade an einem Plugin für ein neues CMS-Element inkl. CMS-Block. Die Grundlage, dafür ist folgendes Beispiel:
Bis Shopware 6.4.20.2 läuft das Plugin einwandfrei. Nach dem Update auf Shopware 6.5 gibt es Probleme mit dem CMS-Block.
Er erscheint zwar weiterhin in der Block-Kategorie. Wenn man ihn dann aber per Drag & Drop auf die CMS-Seite zieht, wird das Element nicht dargestellt. Ein Speichern der CMS-Seite bleibt wirkungslos. Eine Fehlermeldung wird nicht angezeigt. Nach dem Verlassen der CMS-Seite ist das Element weg.
Wenn ich einen CMS-Block für irgendeinen Text einfüge und danach das CMS-Element austausche funktioniert es. Es muss sich also um ein Problem mit dem CMS-Block handeln.
Hat jemand eine Idee, wass sich bzgl. dieses Themas, bei dem Update auf 6.5 geändert hat?
den gleichen Fehler hatte ich auch und konnte ihn leider nicht lösen, hoffe das hier jemand die Antwort auf dieses Problem hat. Aber vielleicht hilft dir ja das CMS-Element hier, das ist schon auf 6.5 angepasst: GitHub - moorl/plugin-MoorlCmsTwig at 6.5
Hallo, ich weiß nicht ob ich zu blöd dafür bin, aber ich hab das Plugin installiert, aber mir wird in den Erlebniswelten das CMS-Element nicht angezeigt. Muss ich da noch irgendwas laden?
Das ist ja der ganze Witz, hab ich bereits gemacht und wenn ich mit node --version die Version abfrage, spuckt er mir v18.16.0 aus. Oder liegt das an meiner lokalen Entwicklungsumgebung mit Docker und DDEV?
Okay, jetzt habe ich die Lösung doch noch gefunden . Es hat nichts mit dem Update auf SW 6.5 zutun.
Das Plugin hatte einen Fehler, dass interessanterweise in SW 6.4.x toleriert wurde und mir daher bisher nicht aufgefallen ist:
In der Registrierung des CMS-Blocks, also Shopware.Service('cmsService').registerCmsBlock(...), und der Registrierung der Componente, also Component.register('... wurde ein falscher Name angegeben.
Nach dem Einsetzen des korrekten Namens und einem Rebuild der Administration wird das neue CMS-Element nun korrekt im Backend angezeigt.
Hallo und vielen Dank für das Feedback!
Da ist mir wohl ein kleiner Fehler unterlaufen, tut mir leid.
Ich werde das im entsprechenden Github Repository fixen und pushen. Beim nächsten mal gerne einfach ein GitHub Issue aufmachen, dann sehe ich das direkt
bis zum Erscheinen von Shopware 6.5 lief das Plugin ja problemlos. Wenn Updates rauskommen, speziell Major Releases, weiß man nie was passiert.
Trotzdem danke ich Dir für Deinen Beitrag:
Nur mit der spärlichen Shopware-Dokumentation wäre es mir deutlich schwerer gefallen, in das Thema reinzukommen. Deswegen hat mir der Artikel echt weitergeholfen. Den Fehler habe ich dann herausgefunden, weil ich nochmal sehr genau hingeschaut habe .
Ich hoffe, es wird auch für Andere hilfreich sein.
Kannst du bitte dein genaues Beispiel nennen was wo wie falsch war und wie du es korrigiert hast? Ich habe das selbe Problem aber meine Namen passen. Habe es mehrfach überprüft. Echt zum verrückt werden
Danke vorab.
ich habe entsprechende Änderungen am Repository vorgenommen.
Am besten einmal die Änderungen pullen, dann sollte es funktionieren.
Im Frontend muss der Name ebenfalls angepasst werden, darum kümmere ich mich heute Abend.
Es sollte hier ausreichen den block umzubennen in cms-block-button.html.twig
Danke für dein Feedback. Habe mir die Änderungen angeschaut und mit meiner Component verglichen. Bei mir gab es keine Differenz bei den Namen. Habe jetzt aber wohl doch den Fehler gefunden. Es lag am generellen Naming der Dateien und der Component. Ich hatte diese bst-cms-block… benannt. Nachdem ich das Naming auf sw-cms-block umbenannt habe, tut es jetzt wieder. Zuvor war im HTML der Erlebniswelt <sw-cms-block-…> welches nicht befüllt wurde. Anscheinend muss es seit 6.5 immer mit sw-cms beginnen.
Jetzt hab ich doch noch ein anderes Problem. Unter 6.5 läuft jetzt alles super. Wenn ich aber diese Version in 6.4 einspiele, bzw. das Plugin update mit der neuen Version, funktioniert es unter 6.4 nicht mehr. Ist das nicht abwärtskompatibel? Muss ich für >= 6.5 eine eigene Version anlegen? Würde den Pflegeaufwand erschweren. Wie handhabt ihr das?