Hallo ihr,
ich bin dabei, eine Erweiterung namens tags_files zu programmieren, die das hinzufügen von Tags zu Dateien erlauben soll.
Nun brauche ich dabei eine extra Datenbanktabelle, in der Verweise auf die Dateien gespeichert werden, da die Dateiverwaltung selbst ja keine Datenbanktabelle hat und ich deshalb nicht einfach ein neues Feld hinzufügen kann.
Das Problem ist jetzt folgendes. Jedesmal wenn sich ein Dateiname ändert, Dateien gelöscht oder verschoben werden werden in dieser Tabelle die Einträge ungültig.
Daher will ich Änderungen in der Dateiverwaltung abfangen und die Links dann anpassen. (Ja, ich weiß, wenn die Dateien per FTP verändert werden nützt das nichts. Der Redakteur hat aber keinen FTP-Zugriff – das hat nur der Administrator der Seite und der bin ich und ich weiß, dass ich da was kaputt mache …)
Wenn Dateien umbenannt werden habe ich das mit onsave_callback in den Griff bekommen.
Das mit dem Löschen, Verschieben und Kopieren von Dateien funktioniert allerdings nicht, weil in den Methoden DC_Folder::cut(), DC_Folder::copy() und DC_Folder::delete() keine Callback-Funktionen durchlaufen werden.
Meine Frage: Gibt es eine andere Möglichkeit das zu überwachen, oder muss ich in einer eigenen Klasse diese Methoden überschreiben, und mir meinen Callback-Zugriff selber bauen.
Es wäre vielleicht etwas für die Zukunft, das im Core-Code zu ergänzen, oder ist das mit Absicht weggelassen? Denn bei DC_Folder::save() ist die Callback-Abfrage der onsave_callback ja schließlich auch vorhanden.
Viele Grüße, Holger
Lesezeichen