Ergebnis 1 bis 2 von 2

Thema: Dateiverwaltung: ondelete_callback, oncut_callback, oncopy_callback nicht verfügbar

  1. #1
    Contao-Nutzer Avatar von complanar
    Registriert seit
    30.08.2010.
    Ort
    Eisenberg (Thür)
    Beiträge
    11

    Standard Dateiverwaltung: ondelete_callback, oncut_callback, oncopy_callback nicht verfügbar

    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
    complanar
    --- Wie soll ich wissen, was ich denke, bevor ich höre, was ich sage? ---

  2. #2
    Contao-Urgestein
    Registriert seit
    03.06.2010.
    Ort
    Wuppertal
    Beiträge
    2.149
    User beschenken
    Wunschliste

    Standard

    Okay, wie wäre es wenn du mit etwas arbeitest, was sich nicht ändert?
    Der Inhalt der Datei wird sich ja nicht ändern, von daher wie bei SFV eine Prüfsumme des Inhalts erstellen. crc32() könnte da die Lösung sein.

    Das ganze könnte natürlich aus Performancegründen etwas langsam werden, aber du könntest ja prüfen ob für den Pfad eine Datei existiert, falls nein, wird geprüft ob ein Eintrag mit der Prüfsumme existiert und falls das auch nicht der Fall ist, ist es eine neue Datei...

    So spontan mal als Alternative.
    Geändert von Flex (04.03.2012 um 14:01 Uhr)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •