Direkt zum Inhalt

Dateien ersetzen in Drupal

Autor
Michael Zenger
Datum
7. November 2024

Drupal bietet von Haus aus eine praktische Funktion zur Datei-Verwaltung: Wenn du eine Datei – zum Beispiel ein PDF – über den Dateimanager hochlädst und bereits eine Datei mit demselben Namen existiert, legt Drupal automatisch eine neue Version an. So wird aus „test.pdf“ dann „test_1.pdf“ – das schützt davor, ältere Dateien versehentlich zu überschreiben.

Doch nicht immer ist dieses Verhalten gewünscht. Vielleicht möchtest du einfach eine aktualisierte Version der Datei hochladen, ohne den Dateinamen und damit verbundene Links zu verändern. Für genau diesen Fall gibt es das Modul File Replace, das eine gezielte Datei-Ersetzung ermöglicht und für eine übersichtliche Dateiverwaltung sorgt.

Das File Replace-Modul installieren

Mit dem File Replace-Modul kannst du bestehende Dateien direkt ersetzen, ohne neue Dateinamen oder URLs zu generieren. Die Installation erfolgt wie gewohnt mit Composer:

composer require 'drupal/file_replace:^1.3'

Für Drupal 11 benötigst du derzeit noch die RC-Version:

composer require 'drupal/file_replace:^1.4@RC'

Nach der Installation wird das Modul aktiviert:

drush en file_replace

Datei-Ersetzung vorbereiten: Den Datei-Manager anpassen

Nun ist die Funktion technisch gesehen bereit, aber noch nicht besonders komfortabel. Denn um die Datei zu ersetzen, bräuchtest du die exakte Datei-ID und müsstest die URL manuell eingeben. Deshalb passen wir den Datei-Manager in Drupal so an, dass die Ersetzungsfunktion leicht zugänglich ist.

Gehe zu /admin/content/files. Hier befindet sich die Dateien-Ansicht (ein „View“ in Drupal), über die du Dateien aufrufen und bearbeiten kannst. Diese Ansicht ist standardmäßig vorhanden und lässt sich individuell anpassen. Öffne den View unter /admin/structure/views/view/files zur Bearbeitung.

Anpassung des Datei-Views

Um die Ersetzungsfunktion hinzuzufügen, gehen wir wie folgt vor:

  1. Feld „Datei-ID“ hinzufügen
    Im View-Menü unter „Felder“ klickst du auf „Hinzufügen“. Suche nach „Datei-ID“ und füge dieses Feld der Ansicht hinzu.
  2. Einstellungen belassen
    Die Einstellungen auf der ersten Einstellungsseite können unverändert bleiben. Klicke auf „Weiter“.
  3. Datei-ID-Feld konfigurieren
    In der zweiten Einstellungsseite kannst du eine benutzerdefinierte Beschriftung hinzufügen. Gib hier den Text „Ersetzen“ ein.

    Aktiviere die Checkbox „Die Ausgabe dieses Feldes mit benutzerdefiniertem Text überschreiben“ und gib im Textfeld folgenden HTML-Code ein:
     

    <a href="/admin/content/files/replace/{{fid}}">Ersetzen</a>
    

    (siehe Screenshot).

     

  4. Änderungen speichern
    Speichere das neue Feld und dann den gesamten View, um die Anpassung zu übernehmen.

 

So funktioniert die Datei-Ersetzung

Wechsle nun zurück zur Datei-Übersicht unter /admin/content/files. Der View wurde erweitert und zeigt jetzt einen neuen Link „Ersetzen“ an (siehe Screenshot). Ein Klick auf diesen Link ermöglicht dir, die bestehende Datei durch eine aktualisierte Version zu ersetzen, ohne dass sich Dateiname oder URL ändern.

Damit ist die Datei-Ersetzung einfach und schnell durchführbar – eine praktische Lösung für die zentrale Dateiverwaltung in Drupal.

Viel Erfolg beim Nachbauen! 

Falls du weitere Unterstützung benötigst oder Hilfe bei individuellen Anpassungen suchst, melde dich gerne bei mir.