Am Content-Management-System Drupal scheiden sich oft die Geister. Die einen halten es für zu kompliziert, die anderen für das logischste und eleganteste System der Welt. Beide Gruppen liegen natürlich falsch :), die Wahrheit liegt wie immer in der Mitte. Drupal ist auch in der Version 9 ein sehr logisch aufgebautes System. Wenn man als Site Builder weiss was man erreichen will, kann man fast jede Anforderung sehr elegant umsetzen. Als Beispiel möchte ich heute den Umgang von Drupal mit Medien ein wenig genauer zeigen.
Was sind Medien?
Unter Medien versteht man bei Drupal hochgeladene Fotos, Grafiken, Videodateien, PDF‘s und ähnliche Dateien. Das Verwalten von Medien, besonders wenn es viele werden, ist, völlig unabhängig von Drupal, immer aufwendig. Hinzu kommen oft Anforderungen bezüglich Zugriffsberechtigungen, Urheberrechtsfragen und unterschiedliche Qualitätsstufen. Es ist also nicht nur ein „Hochladen“ von Dateien, sondern oft ein hochkomplexes Zusammenspiel verschiedener Anforderungen, die auf grösseren Sites auch von mehreren Personen gepflegt werden müssen, was neue Herausforderungen mit sich bringt.
Datei hochladen
In Drupal 9 Core sind die Module für die Medienverwaltung standardmässig deaktiviert. Drupal Core kennt im Auslieferungszustand nur „Dateien“. Im vordefinierten Inhaltstyp Seite lassen sich im WYSIWYG Editor Dateien hochladen und anzeigen.
Bild im WYSIWYG Editor einfügen
Bild wird in der hochgeladenen Grösse angezeigt
Das hochgeladene Bild wird in der „echten“ Grösse, also in der Anzahl der Pixel, angezeigt. Wenn das Bild nicht genau in einem Photo-Editor vorbereitet wird, ist es oft zu klein oder zu gross. Dieses Verhalten ist die einfachste Form eines Uploads und kann durchaus gewollt sein. Es ist im täglichen Gebrauch heutzutage aber unpraktisch.
Bilder passend machen über Bildstile
Man könnte nun den viel zu grossen Papagei, den ich oben hochgeladen haben, irgendwie passend machen. Die „Quick and Dirty“ Methode wäre, die grosse Datei behalten und per HTML/CSS das Bild einpassen. Diese Vorgehensweise wird gern „responsiv“ genannt, das ist sie aber nicht wirklich, denn das Bild wird zwar optisch im Browser kleiner, die Menge der zu übertragenen Daten bleibt jedoch gleich. Der Aufbau einer Site dauert lange und ist CO2 technisch bedenklich (siehe auch Wieviel CO2 erzeugt deine Website).
Eine Lösung des Problems ist die Idee, aus dem hochgeladenen Bild mehrere Grössen zu berechnen und danach, je nach Wunsch, die passende Grösse anzuzeigen.
Auch dieser Ansatz ist in Drupal Core verwirklicht und lässt sich im Inhaltstyp Artikel gut ausprobieren. Der Inhaltstyp Artikel hat ein Bild-Feld. Wenn ich den Papagei dort hochlade, wird er nach vordefinierten Regeln angezeigt. Im Falle des Artikel-Typs ist das Bildfeld eine Art „Featured Image“, das in Listen etwas kleiner angezeigt wird und auf der Einzelseite etwas grösser.
Bild über ein Feld, unabhängig vom Text laden.
Darstellung der Grafik in einer Liste von Artikeln
Darstellung der Detailansicht eines Artikels
Die Grafiken haben tatsächlich eine jeweils andere Bildgrösse und sind von Drupal auf der Basis des hochgeladenen Bildes berechnet worden. Eine Übersicht über die Bildstile gibt es unter [Domain]/admin/config/media/image-styles.
Vordefinierte Bildstile
Die Dateien werden in Ordnern, die nach dem Bildstil benannt werden, abgespeichert und sind, je nach Dateisystem-Zugriffs-Methode, öffentlich zugänglich oder privat.
Da die Erstellung eines Bildstiles automatisiert abläuft, können Regeln mitgegeben werden. Beispielsweise kann das Bild gedreht, skaliert und zugeschnitten werden. Auch Wasserzeichen und Instagram Filter sind mit Zusatzmodulen möglich.
Dem Feld im Artikel wird genau vorgeben, welchen Bildstil es wann zu benutzen hat. Existierende Bildstile können in mehreren Feldern und Ansichten verwendet werden.
Öffentliche und private Dateisysteme
Die Datei wird in diesem einfachen Fall in einem Dateiverzeichnis der Drupalinstallation gespeichert und ist standardmässig öffentlich zugänglich, in diesem Fall hier: https://seafolly.ch/sites/default/files/inline-images/1EA9018E-36E9-4EE9-BADE-EA7AE1068C69.png. Dieses Verhalten ist bei den meisten Content-Management-System Standard und wird oft nicht weiter beachtet. Wenn man beispielsweise eine Website mit einem geschützten Bereich hat, so wären die Dateien in diesem geschützten Bereich auch ohne Anmeldung sichtbar, wenn man den direkten Link kennt. Das kann im Einzelfall o.k. sein, ist aber meistens doch nicht so gewünscht. Also ein Riesenthema, das oft erst im produktiven Betrieb „entdeckt“ wird.
Unter [Domain]/admin/config/media/file-system lässt sich das gesamte Dateisystem von öffentlich auf privat umschalten. Im öffentlichen Zustand werden die Dateien über den Webserver ausgeliefert. Im privaten Zustand dagegen werden die Dateien über Drupal/PHP ausgeliefert und der genaue Speicherort bleibt dem Besucher der Site verborgen. Der Vorteil ist die dadurch mögliche Zugriffskontrolle. Einen Nachteil gibt es natürlich auch: die Auslieferung der Bilder dauert länger. Je nach Einsatzzweck ist auch ein Mischbetrieb möglich.
[Domain]/admin/config/media/file-system
Medienverwaltung/Dateiverwaltung
Was bis jetzt fehlt ist eine Medienverwaltung. Es gibt eine Übersicht der hochgeladenen Dateien im Bereich Inhalte ([Domain]/admin/content/files), aber eine Verwaltung oder Wiederverwendung von Dateien ist mühselig.
Dateiübersicht
An dieser Stelle kommt vielleicht das Media Modul ins Spiel. Es bietet eine Art Schweizer Taschenmesser für alle Wünsche und Bedürfnisse, ist allerdings auch etwas komplexer in der Verwaltung. Der Vorteil ist: wenn es passend konfiguriert wird, ist es für den Anwender hinterher sehr einfach die Medien einzustellen.
Aktivierung der Media Module
Zunächst müssen die beiden Module, Media und Media Library, installiert werden.
Media Module aktivieren
Nach der Installation steht ein neues Feld für Inhaltstypen zur Verfügung (Media). Ausserdem ist es möglich, eine Medien-Bibliothek im WYSIWYG Editor einzubinden und Ansichten mit Medien zu gestalten. Ein neues Tab im Inhaltsmenü macht die Verwaltung von Medien leichter. All diese Funktionen müssen konfiguriert werden und sind hochflexibel.
Medienbibliothek im Editor
Nach der Installation der Module lässt sich ein neues Icon für die Medienbibliothek in den WYSIWYG Editor einfügen. In Drupal kann jede Benutzerrolle unterschiedliche Editoren nutzen. Ich gehe hier von den Standardeinstellungen aus und zeige das Textformat für Vollständiges HTML. Die im Editor verfügbaren Buttons können in die Editorleiste gezogen werden.
Wenn ich nun den Artikel mit dem Papagei wieder öffne, das Textformat Vollständiges HTML auswähle und auf das Medien-Icon klicke, so werden mir alle verfügbaren Medien angezeigt. Beim ersten Aufruf ist die Bibliothek natürlich leer. Je nach Konfiguration können alle, auch von anderen Benutzern hochgeladene, oder eigene Dateien angezeigt werden.
Ausser Bildern können nun auch Audio- und Video-Dateien hochgeladen werden. Auch Youtube Videos und PDF können definiert eingebunden werden.
Medien - Zugrifsrechte
Alle Medien werden über Drupal ausgeliefert und können mit Zugriffsrechten versehen werden.
Zugriffsrechte für Medien
Medien - Verwaltung
Ein neues Tab im Inhalte Media stellt nun Tools zur Medienverwaltung dar.
Medien Tab
Zusätzlich zu den Bildstilen gibt es nun auch responsive Stile, die individuell konfiguriert werden können.
Fazit
Die Medienverwaltung ist nur ein kleiner Teil von Drupal. Sie ist im Drupal Core verfügbar und ermöglicht eine sehr individuelle Anpassung der Website je nach den Bedürfnissen der Anwender. Oft sind Websites gar nicht so „medienlastig“ und kommen problemlos mit der standardmässigen Dateikonfiguration aus. Wenn es jedoch nötig wird, bieten die Medien-Module umfassende Möglichkeiten.
tl;dr: Drupal bietet eine hochflexible Verwaltung von Medien
Posted from my blog with SteemPress : https://blog.novatrend.ch/2020/11/09/medien-in-drupal-9/