Shopware 6.5 - Plugin mit CMS-Block und Element funktioniert nicht mehr korrekt

Hallo,

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?

Viele Grüße, Frank

Moin Frank,

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

Viele Grüße
Tom

Hi Tom,

ja, @Moorleiche, weiß es sicher. Vielleicht ließt er ja den Post und gibt uns einen Hinweis :wink:.

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?

Hallo,

hast du den Cache schonmal gelöscht und das Admin neu aufgebaut?

bin/console cache:clear 
./bin/build-administration.sh

bzw.

./psh.phar administration:build

Dann sollte das Element auf jeden Fall im Backend sichtbar sein, in der Block-Kategorie „Text“ glaube ich.

Viele Grüße
Tom

Cache habe ich schon mehrfach geleert, aber mein Admin kann ich leider nicht neu aufbauen, da bekomme ich folgende Fehlermeldung:

Aber das ist wohl eher Thema für ein anderen Eintrag hier im Forum.

Hallo @fink-luca ,

Du musst auf dem Server node 18 installieren, sonst klappt der Admin-/Storefront-Rebuild ab Shopware 6.5 nicht mehr.

Viele Grüße, Frank

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?

… wie auch immer? An Deiner Fehlermeldung siehst Du, dass node 16.19.1 läuft.

1 „Gefällt mir“

Okay, jetzt habe ich die Lösung doch noch gefunden :hugs:. 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.

1 „Gefällt mir“

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 :slight_smile:

2 „Gefällt mir“

Hallo @ninja,

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 :face_with_monocle:.

Ich hoffe, es wird auch für Andere hilfreich sein.

Viele Grüße, Frank

2 „Gefällt mir“

Hi @Frank_2812.

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 :frowning:
Danke vorab.

Beste Grüße
Mike

Hey Mike,

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

Ich hoffe das hilft ein wenig :slight_smile:

Viele Grüße
Joschi

Hi Ninja.

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.

Gruß Mike

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?