Seit Shopware 5.2 gibt es ja die neue Plugin-Struktur und auch einen neuen Speicherort /custom/plugins/
Ich wollte jetzt ein plugin umbauen und stoße nur auf Stolpersteine. Jetzt wundert mich auch nicht mehr das man kein Shopware-Plugin dort findet. Es fängt schon beim einfachsten, den Informationen an.
Hier bin ich total verwirrt was Swag da tatsächlich will plugin.xml oder plugin.json
Es scheint als soll jetzt in plugin.xml gespeichert werden, die Funktion getInfo wird nicht mehr aufgerufen.
Derzeit nicht zu empfehlen, weil:
xml ist aufgebläht, unleserlich und unflexibel
unflexibel weil nicht auf Fehler und unzulänglichkeiten reagiert werden kann.
description nur als Fließtext
changelog funktioniert überhaupt nicht
Um nicht nur zu meckern, hier meine Vorschläge:
begrabt, dieses XML-gedöns, lieber weiterhin plugin.json, wenn XML dann:
defaultLang einstellbar, derzeit fest auf „en“
stellt eure Standardplugins auf das neue System um.
description als MarkDown
description alternativ als Import, z.B. readme_de.txt
changelog funktionsfähig
Wenn ihr eure neue Pluginstruktur propagiert, solltet ihr eure Standardplugins auf das neue System umstellen, damit ihr die Unzulänglichkeiten bemerkt und wir Beispiele haben, an denen wir uns orientieren können. Also stellt doch mal SwagImportExport um!
IMHO finde ich den eingeschlagenen Weg mit den XML-Dateien falsch, da nicht auf Unzulänglichkeiten reagiert werden kann bzw höchst umständlich.
Ich hätte ja auch schon umgestellt, aber leider gibt es noch zu viele offene Fragen die weder in Beschreibungen stehen, noch hier im Forum beantwortet wurden.
Das Beispiel ist leider nur für Backend. Ich habe einige Frontend-Plugins (alle im Store) die ich mal umstellen wollte. Aber zu viele Kleinigkeiten die aus den vielen Beispieln nicht ersichtlich sind. Aber solange Shopware selber seine Plugins nicht konsequent umstellt, kann ich damit ja auch noch warten.
Konkrete Fragen? Ja, leider ohne Ende.
* Gibt es ein funktionsfähiges Live-/Beispielplugin das man nach /custom/plugins/ schiebt und funktioniert? Dieses auch die Plugininformationen wie Pluginbeschreibung, Changelog etc mit ein.
* Pluginbeschreibung mit formatierten (MarkDown) Text angezeigt wird?
* Changelog angezeigt wird
* welches Format soll in Zukunft genutzt werden plugin.xml oder plugin.json
* wie steht ihr zu plugin.xml / plugin.json
Das Beispiel Attribute system
Nach dem entpacken hat man den Ordner Frontend, ist unter /custom/plugins/ Quatsch und an der alten Stelle funktioniert das Plugin nicht, weil nach neuer Struktur erstellt.
Packt man den Unterordner SwagAttribute nach /custom/plugins/ funktioniert es, aber auch hier keine plugin.(xml|json)
Gibt es ein funktionsfähiges Live-/Beispielplugin das man nach /custom/plugins/ schiebt und funktioniert? Dieses auch die Plugininformationen wie Pluginbeschreibung, Changelog etc mit ein.
Shopware nutzt in den eigenen, aktuellen Plugins eine plugin.json, um dort alle Infos abzulegen. Die plugin.json wird dabei in der Bootstrap.php ausgelesen. Im neuen Plugin System bedarf es klarer Strukturen, damit diese Infos automatisiert ausgelesen werden können. Daher wird alles in der plugin.xml hinterlegt. Bitte ignoriere einfach die plugin.json aus den Shopware Plugins.
Packt man den Unterordner SwagAttribute nach /custom/plugins/ funktioniert es, aber auch hier keine plugin.(xml|json)
Da hat wohl bei Shopware jemand geschlafen…
1.) Der Ordner „Frontend“ ist falsch
2.) Das Plugin ist nur ein Beispiel und nicht vollständig
@Sandy schrieb:
* Pluginbeschreibung mit formatierten (MarkDown) Text angezeigt wird?
Versuch doch mal HTML in der XML Datei zu verwenden. Diese musst du in einen CDATA Abschnitt einbetten. Siehe Wikipedia: https://de.wikipedia.org/wiki/CDATA
Fragen noch viele. Die Doku ist äußerst Lückenhaft und selbst mit dem Shopware Handbuch bleiben zu viele Dinge ungeklärt. Auch hilft einem das Shopware PHPStorm Plugin nicht wirklich und nen boilerplate generator gibts in den cli tools (anscheinend) auch nicht Zur Zeit heißt es die spärlich zusammengekratzen Infos aus Doku, Handbuch, Fremd-Plugins zusammensuchen und hoffen xD
@Sandy schrieb:
* Pluginbeschreibung mit formatierten (MarkDown) Text angezeigt wird?
Versuch doch mal HTML in der XML Datei zu verwenden. Diese musst du in einen CDATA Abschnitt einbetten. Siehe Wikipedia: https://de.wikipedia.org/wiki/CDATA
Sorry, das wäre nur eine Notlösung und mit sowas möchte ich nicht anfangen.
Beim oben als Beispiel gebrachten SwagBackendOrder, funktioniert changelog in der plugin.xml und die Beschreibung über README.md .
Super denke ich mir… nur mache ich das gleiche bei mir… nothing. Die komplette plugin.xml und README.md übernommen… nicht das gleiche Ergebnis.
WTF bei Shopware läuft man ständig gegen die Wand und fühlt sich verarscht. Na mal schauen ob ich raus bekomme wieso ich bei mir nicht das gleiche Ergebnis erhalte.
Das PHPStorm Plugin funktioniert bei mir so gut wie nie. Zumindest nicht was Vorschläge angeht. Das einzige was Wirklich bis jetzt zuverlässig (und vor allem vollständig!) funktioniert sind die Event Namen.
Wenn du auf einen service zugreifen willst, dann kennst du ihn ja bereits und weißt i.d.R. auch, wo er üblicherweise eingesetzt wird. Dann muss man evtl. ein wenig im Quellcode wühlen - aber es sollte kein Problem sein, den Namen zu finden.
Das mit CDATA funktioniert, hier mal meine Beispiel plugin.xml
Mein Beispiel
My Example
1.1.0
MIT
Jane Doe
(c) by EXAMPLE
http://www.EXAMPLE.de/
Meine Pluginbeschreibung
Nur als Beispiel für die neue Shopware 5.2 Pluginstruktur und die plugin.xml
IMHO
changelog funktioniert nicht
description ist mit der Beschränkung auf Fließtext murks. Ok, mit CDATA kann man arbeiten.
plugin.xml empfinde ich als Beschreibungscontainer ungeeignet
das entfernen der Funktion getInfo(), um die XML-Unzulänglichkeiten zu korrigieren, ist auch nicht hilfreich.
]]>
first release
erste Ausgabe
Changelog not (yet) supported
Changelog wird (noch) nicht unterstützt
Das ist doch schonmal super, dass es über CDATA in der XML funktioniert.
Der Chancelog wird IHMO nur angezeigt, wenn das Plugin auch im Comunity Store verfügbar ist. Bei lokalen Plugins wird der nicht ausgewertet. Außerdem gibt es zwei Beschreibungen. Einmal die aus der XML und einmal die Beschreibung aus dem Community Store. Der Reiter “Beschreibung” kommt aus dem Store. Der Reiter “Pluginbeschreibung” aus der XML.
Die Changelog wird noch nicht benutzt. Die Grundidee dahinter war es, dass später diese im Store Automatisch benutzt wird
Du kannst ja noch bis Shopware 6 oder so das alte System nutzen, wenn du es nicht magst. Aber sobald du ein Plugin mit den neuen Umgesetzt hast und das Prinzip dahinter verstanden hast. Wirst du nur noch das neue benutzen wollen, da es so extrem viel Arbeit abnimmt und du Systemnah arbeiten kannst, dank den Container…