Alte Parameter im Plugin empfangen, wenn diese geändert wurden

  • Hallo zusammen,


    ich habe ein User-Plugin erstellt, das beim Anlegen eines Users automatisch ein User-Folder erstellt und beim löschen des Users auch wieder entfernt. In den Parameter-Einstellungen kann man auswählen, welche Benamung die User-Folder haben und wo diese angelegt werden sollen. Diese Verzeichnisse dienen später für User-spezifische Up- / Downloads.
    https://github.com/LukasHH/plg_user_folder

    (P.S. Das Plugin ist noch nicht fertig)

    Nun zu meiner Frage:
    Wenn die Parameter-Einstellungen nachträglich geändert werden (z.B. Bezeichnung der User-Namen), dann sollen die bestehenden Verzeichnisse umbenannt werden. Das Plugin selbst reagiert aber erst, wenn ein User angelegt oder geändert wird.

    Kann man im Plugin selbst (durch eine script.php o.ä.) die Änderung der Parameter abfangen und wenn möglich die alten und neuen Parameter empfangen?
    Das was ich bisher gefunden habe, reagiert nur bei der Installation, Update oder Deinstall des Plugins. Da passt bisher nix.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Ich verwende da Plugin-events

    Code
    public function onExtensionBeforeSave($context, $table, $isNew, $data = array())
    Code
    public function onExtensionAfterSave($context, $table, $isNew)

    Allerdings in System-Plugins.


    Nur so als Idee: In BeforeSave die alten Parameter per DB-Abfrage abholen und zwischenspeichern. Bin nicht ganz sicher, ob man auch statt DB-Abfrage ein

    Code
    $plugin = PluginHelper::getPlugin($type, $name);

    verwenden kann. Diese Daten werden teils gechached und weiß nicht, wann der Cache erneuert wird.

  • Probiere ich einfach mal aus. ;)


    Was ich mir sonst noch überlegt hatte, ob man das nicht sonst über eigene Fields könnte. Dann aber nicht automatisch, sondern als Button, mit dem man die Aktion des umbenennen auslösen kann.

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.

  • Dafür verwende ich dann AJAX via Joomlas com_ajax-System. Aber auch nur in System-Plugins, weil man da die onAjaxSonstwas-Methoden im selben Plugin unterbringen kann und nicht zusätzlich ein weiteres Ajax-Plugin basteln muss.


    Weiß nur noch, dass ich zum Einstieg im System-Plugin Stats abgespickt habe. Da sind die Buttons zwar nicht in den Plugin-Einstellungen, aber macht dann ja keinen Unterschied.

  • Kurzer Zwischenstand:
    Die Function "onExtensionBeforeSave" läuft nicht direkt im user-plugin. Habe es aber über ein separates extension-plugin hinbekommen und werde es auch darüber realisieren.


    Danke für die Hilfe

    Wenn man die Lösung hat, dann muss man nur noch das passende Problem finden.