ich bin auf der Suche nach einer Möglichkeit, dass man in einem Plugin eine bestimmte SQL ausführt, also nicht bei der Installation, sondern beim „speichern“ der Plugin Configs. Ich dachte erst an CronJob, allerdings sollte die SQL „relativ“ einmalig sein. Hat jemand eine Idee? THX und Gruss.
das Problem dabei, eine Aktion auszuführen sobald die Pluginkonfiguration gespeichert wird, ist folgendes:
Die Pluginkonfiguration kann gespeichert werden auch wenn dein Plugin gar nicht aktiv ist. Wenn dein Plugin allerdings nicht aktiv ist wird auch kein Event ausgeführt und du kannst nicht eingreifen.
Wenn dich das nicht stört und du die SQL Abfrage nur bei aktiviertem Plugin ausführen willst könntest du dich an das “Enlight_Controller_Action_PostDispatchSecure_Backend_Config_SaveForm” Event anhängen. Dort müsstest du Abfragen, ob das gespeicherte Formular zu deinem Plugin gehört und ggf. dann deine Aktion ausführen.
@simkli Danke für den Tip. Hast du zufällig eine Resource woher du die Eventbezeichung her hast?
An diese Frage schließe ich mich mal mit an. In der SW 5.2.x. konnte ich diese Bezeichnung (Enlight_Controller_Action_PostDispatchSecure_Backend_Config_SaveForm) nicht finden.
@simkli Danke für den Tip. Hast du zufällig eine Resource woher du die Eventbezeichung her hast?
An diese Frage schließe ich mich mal mit an. In der SW 5.2.x. konnte ich diese Bezeichnung (Enlight_Controller_Action_PostDispatchSecure_Backend_Config_SaveForm) nicht finden.
Das wird ja in der Form auch nirgendwo zu finden sein. Der Part „Enlight_Controller_Action_PostDispatchSecure“ ist gleicvch für all/viele Event, danach kommt das Modul (_Backend), dann der Controller (_Config), dann die Action (_SaveForm).
Anderes Beispiel: Enlight_Controller_Action_PostDispatchSecure_Frontend_Detail -> wird im Frontend auf der Artikeldetailseite aufgerufen, nach dem alle Daten vorbereitet wurden. Usw.
Statt „Enlight_Controller_Action_PostDispatchSecure“ kann es auch folgende geben:
Enlight_Controller_Action_PreDispatch - wird davor aufgerufen ()
Enlight_Controller_Action_PostDispatch - wird danach aufgerufen
Nun ja, so weit ist das schon klar, aber ich konnte selbst die Action „SaveForm“ nicht finden, deshalb finde ich die Nachfrage schon gerechtfertigt.
Ohne Zweifel ist die Nachfrage gerechtfertigt!!
Hier findest Du die saveFormAction: /engine/Shopware/Controllers/Backend/Config.php
Wobei /Backend für „_Backend“ steht, /Config.php für „_Config“ und „SaveFormAction“ für _SaveForm" (das Wort „Action“ wird in den Events, Urls usw nicht verwendet)