ich habe ein Plugin erstellt das mehrere eigene Einkaufswelt-Elemente erzeugt. Diese kann ich auch einwandfrei in Einkaufswelten verwenden.
Problem ist nur, wenn ich mein Plugin erweitere. Beispielweise ein neues Feld hinzufüge.
Dann muss ich das Plugin komplett neu installieren (ein Update + Cache löschen und neuladen bringt keine Änderung). Nach dem Neuinstallieren sind natürlich meine ganzen Elemente aus den Einkaufswelten gelöscht worden… Warum funktioniert das nicht per Update?
und wieso musst du beim Update deines Einkaufswelten - Element - Plugins (beispielsweise für ein neues Feld) das Plugin neu installieren?
Das ist doch gar nicht nötig, damit das neue Feld auch mit auswählbar etc ist. Einfach in der Update - Methode per SQL (gibt leider keine Shopware-Funktion dafür, um ein Einkaufswelten-Element zu aktualisieren/zu erweitern) das neue Feld hinzufügen, kompletten Cache leeren und Backend neu laden. Fertig.
Das ist doch gar nicht nötig, damit das neue Feld auch mit auswählbar etc ist. Einfach in der Update - Methode per SQL (gibt leider keine Shopware-Funktion dafür, um ein Einkaufswelten-Element zu aktualisieren/zu erweitern) das neue Feld hinzufügen, kompletten Cache leeren und Backend neu laden. Fertig.
Doch, es gibt eine Methode dafür: In Plugin Update Methode sich das passende Widget zum Plugin holen (genauso mit dem selben Widget Namen wie man es ursprünglich angelegt hat), Feld hinzufügen und Doctrine’s persist() und flush() aufrufen - fertig! Kein SQL Gefummel oder ähnliches nötig. Von direktem SQL in einem Plugin würde eh abraten, immer DBAL QueryBuilder oder den Doctrine QueryBuilder verwenden!
Aber es ist richtig, dass es das im neuen Plugin System nicht gibt. Das kann man aber ganz gut von der Basis-Bootstrap.php abschreiben und es so leicht ins neue System portieren. Habe ich bisher auch immer nur so gemacht - funktioniert super. Das ist auch der beschriebene Weg aus dem Shopware Buch.
Würde mich auch interessieren. Ich habe ein Plugin dass mehrere interne Emotion Widgets bereitstellt. Da kommen hin und wieder einige dazu oder es ändert sich was. Bei jeder Neuinstallation des Plugins sind auch alle Inhalte weg -_-