Theme kompilieren bei der Aktualisierung der Plugin Config

Durch die Umsetzung von Ticket https://issues.shopware.com/issues/NEXT-5116 können nun Plugin-Konfigurationen auch an SCSS übergeben werden.

Wird nun ein Wert in der Plugin-Konfiguration gespeichert, wird ähnlich wie in SW5 keine Aktualisierung der CSS-Ausgabe kompiliert. Das war bereits in SW5 ein großer Stolperstein für viele Nutzer. Können wir nun in SW6 darauf hoffen, dass beim Speichern der Plugin-Konfiguration der SCSS Kompiler angestoßen werden kann?

*push*

 

Man kann derzeit dem Kunden ja nicht einmal in der Plugin-Konfiguration vernünftig darauf hinweisen, dass für diese oder jene Einstellung das Theme kompiliert werden muss. Die Hilfe-Fragezeichen schaut sich leider kaum ein Kunde an - eine Card-Description für die Plugin-Konfiguration gibt es ja auch nicht.

Wie macht ihr das?

1 „Gefällt mir“

Ich habe das gleiche Anliegen:

  • Theme kompilieren nach Plugin Konfiguration
  • Card-Description wäre schön

@NiHa‍ hat ein Ticket dazu angelegt, gerne voten: https://issues.shopware.com/issues/NEXT-8780

Ich hab für die Card-Description auch gleich noch eines angelegt: https://issues.shopware.com/issues/NEXT-8848

 

Da das Plugin aktiv sein muss um die Konfiguration Oberfläche zu erreichen könnt ihr euch an Events hängen welche die Config speichern und das Theme selber compilen.

@Shyim‍

wie ich selber compilieren kann habe ich bereits rausgefunden, aber leider wird beim speichern kein event gesendet. zumindest keines das ich gefunden habe.
Das hab ich mit @NiHa‍ hier schon diskutiert: https://forum.shopware.com/discussion/comment/272048#Comment_272048

Aufgerufen wird via POST request nur /api/v1/_action/system-config/batch

Aber ich werde mal den debugger anschmeissen und schauen, ob da irgendwo ein event drin ist an das ich mich hängen kann.

@Shyim‍
Wie gesagt wird über ApiCall aufgerufen.
\Shopware\Core\System\SystemConfig\Api\SystemConfigController::batchSaveConfiguration
Direkt aus Symfony Routing.

Dann wird foreach durch alle Felder durchgegangen und jedes Feld weitergereicht in die Tiefe
vendor/shopware/platform/src/Core/Framework/DataAbstractionLayer/EntityRepository.php

Hier wird dann ein Event gefeuert 

 EntityWrittenContainerEvent

Wenn ich in der Config 5 Felder habe, dann wird es 5 mal gefeuert.
Und ich würde 5 mal den Theme Compiler anstossen.

Das ist alles super generisch in der Tiefe.

Ich könnte mich da höchstens in den Symfony „kernel.response“ Event reinhängen so wie
vendor/shopware/platform/src/Core/Content/Seo/SalesChannel/StoreApiSeoResolver.php

Denke das wäre aber bisschen übertrieben, dort dann den Request auszuwerten um rauszufinden das „meine“ config geändert wurde.

Da macht es mehr Sinn, Shopware führt in der config ein Textfeld ein, dann kan man den Shopbetreiber wenigstens drauf hinweisen.

Gruß
daMardl