Uninstall-Script

  • Hallo zusammen,


    Ich benötige die Möglichkeit bei der Deinstallation eines Plugins ein Uninstall-Script durchlaufen zu lassen.

    Ich wollte dabei auf PackageUninstallationDispatcher::executeUninstallScript() zurückgreifen, doch leider klappt dies nicht.


    Ich habe die Datei wcf\acp\uninstall\paketbezeichner.php angelegt, doch sie wird nicht aufgerufen.


    Habe ich etwas übersehen?


    Vielen Dank im Voraus!

  • Hast du die Datei manuell erstellt, oder über das file-PIP eingepflegt? Eventuell stimmen die Rechte der Datei nicht oder du hast dich einfach vertippt. Zumindest bei mir wurde das Script immer ausgeführt, wenngleich auch die Position der Ausführung für mich absolut unbrauchbar ist, weil die Datenbank schon durchgelaufen ist.

  • Hast du die Datei manuell erstellt, oder über das file-PIP eingepflegt?

    Rein vom Code der PackageUninstallationDispatcher::executeUninstallScript() her sollte das egal sein.

    (siehe PackageUninstallationDispatcher.class.php @ 5.2.2)

  • Naja, wenn er die Datei nicht lesen kann, kann er sie nicht lesen. ;)

    Das WSC erstellt Dateien entsprechend mit korrekten Rechten und Besitzern - lädst du sie manuell hoch, passiert es zumindest mir gerne Mal, dass die Datei schlussendlich einen anderen Besitzer hat als sie haben sollte.

  • Hast du die Datei manuell erstellt, oder über das file-PIP eingepflegt? Eventuell stimmen die Rechte der Datei nicht oder du hast dich einfach vertippt. Zumindest bei mir wurde das Script immer ausgeführt, wenngleich auch die Position der Ausführung für mich absolut unbrauchbar ist, weil die Datenbank schon durchgelaufen ist.

    Nein, ganz normal wie die anderen files auch über die Paket-Installation. Ist dem Paket auch in der Datenbank zugewiesen und wird auch bei der Deinstallation entfernt.


    Gibt es eine vergleichsweise einfache Möglichkeit mich an der Stelle mal ins Debugging zu hängen? Es kann ja eigentlich nur ein abweichender Dateiname oder Pfad sein, wenngleich ich das bereits mehrfach geprüft habe.

  • Du kannst dich theoretisch mal an der von Markus Zhang erwähnten Stelle per wcfDebug(…) rein setzen und schauen, ob er das aufruft, ob er die Datei findet oder welchen Dateinamen/-pfad er sucht, …

    Etwas sinnvolleres fällt mir dazu leider nicht ein.

  • Ich hab es einmal durch-debugged... Dateipfad und -name hat gestimmt, file_exists() gab auch true zurück und auch die Debug-Tests in meinem Script wurden erreicht.

    Kurzum: Es funktioniert und hat vermutlich schon immer funktioniert - ich muss sehr schief geschaut haben... :/

    Sorry und danke trotzdem für die Tipps!