TYPO3 6.2 File Abstraction Layer - Verwendung als Redakteur und Extension-Entwickler

Mit dem LTS Release TYPO3 6.2 wurde auch im Bereich der Datei-Verwaltung ein wichtiger Schritt gesetzt. Von einer rein ordnerbasierten Struktur wurde nun auch ein Konzept verwirklicht, das sowohl die Verwaltung der Dateien als auch der zugehörigen Meta-Informationen innerhalb der Datenbank erlaubt (angelehnt an die von 4.x bekannte DAM Extension).

Verbesserte Datei-Verwaltung in TYPO3

Mit der neuen TYPO3 LTS Version wurde der File Abstraction Layer eingeführt.

Dieser abstrahiert, wie der Name bereits sagt, die Verwaltung der Dateien im System dahingehend, dass Verknüpfungen nun auf Datenbank-Einträge und nicht mehr auf Dateipfaden basieren. Dementsprechend können diesen Datenbank-Einträgen auch zusätzliche Meta-Informationen zugeordnet werden.

Als Container für Dateien dient dabei ein sogenanntes "Storage". Standardmäßig wird hier das bekannte "fileadmin"-Verzeichnis als Storage angelegt. Es ist jedoch auch denkbar, hier mehrere Storages - beispielsweise zur Verwaltung von Dateien unterschiedlicher Domains im selben TYPO3-System - zu bewerkstelligen.

Die zweite Schicht innerhalb eines Storage bilden die Mountpoints. Diese sind vor allem für die Erweiterung "Media Management" von Vorteil, welche weiter unten angeführt wird.

Den Abschluss bilden die Dateien, die in der Tabelle "sys_file" hinterlegt werden. Zugehörige Meta-Informationen befinden sich in einer getrennten Tabelle mit entsprechender Fremdschlüsselbeziehung.
Diese Dateien können bereits mit Systemmitteln Kategorien zugeordnet werden.

Wird nun eine Datei verknüpft, so wird dies nicht, wie früher üblich direkt per Datei erledigt, sondern über eine Referenztabelle (sys_file_reference). Dieser Referenz-Eintrag ist über die Ziel-Tabelle, das Feld innerhalb dieser und die uid des Eintrags verbunden. Zum Beispiel für ein Bild innerhalb eines Content Elements wäre die Tabelle "tt_content", das Feld "images" und die uid jene des Elements. Der Pfad zur Datei bleibt dabei allein im sys_file Eintrag hinterlegt.

Zentrale Verwaltung von Meta-Informationen

Durch die vorgegebene Struktur werden zusätzliche Meta-Informationen zu Dateien idealerweise direkt beim Hochladen eingepflegt. Diese hinterlegten Informationen stehen dann beim Referenzieren der Dateien in anderen Datensätzen sofort zur Verfügung, um Alternativ- oder Title-Texte von Bildern zu befüllen.

Diese Daten können jedoch auch individuell pro Referenz überschrieben werden, sollten diesen für eine bestimmte Verwendung einer Datei vom globalen Wert abweichen.

Sind die vorhandenen Daten erst einmal in einer zentralen Datenbank verwaltet, sind auch zusätzliche Funktionalitäten auf Basis dieses Datenstamms möglich.
Auf Basis der in TYPO3 eingepflegten Inhalte und Dateien ist beispielsweise der direkte Weg zu einem druckfähigen Dokument möglich. Für diesen Zweck haben wir die Erweiterung "Web2Print" entwickelt, die über das TER verfügbar ist (Extension conn_w2p).

Upgrade | Migration

Führt man ein Upgrade von TYPO3 4.x auf 6.2 durch, so ist bereits eine Migration der in den Content-Elementen enthaltenen Bilder, sowie Downloads über das Install-Tool vorgesehen.
Bei dieser Migration werden die hinterlegten Bilder in einen speziellen Unterordner "_migrated" innerhalb des fileadmin kopiert und entsprechende Datenbank-Einträge erstellt. An die Stelle des früheren Felds vom Typ "upload" rückt nun eine Datei-Referenz. Zur Konfiguration selbiger folgen im TCA später weitere Inforationen.
Die Migration der in Content-Elementen hinterlegten Bilder und Dateien betrifft bei den meisten Webseiten jedoch nur einen kleinen Teil.
Viele der von uns betreuten Webseiten setzen Extensions wie "commerce" ein, welche auch nach der Migration noch die alte Datei-Verwaltung benutzen.

conn_falmigration

Um diese Migration so einfach wie möglich zu gestalten, wurde von connetation:// eine Extension entwickelt, die das aktuelle TCA Array, sowie die zugehörigen Datenbank-Tabellen nach Dateiverweisen ohne Verwendung des FAL durchsucht.
Werden Felder gefunden, die migriert werden können, kann dies auf Datenbankseite automatisiert erfolgen. Hierzu wird durch die Extension im "ext_tables.php"-Script da betreffende Feldes überschrieben und die existierenden Datensätze auf die Verwendung mit FAL aktualisiert.

Link zum TER

Konfigurationsdatei FAL Migration

 <?php
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['conn_falmigration']=array (
  'tableFields' =>
  array (
    'tx_commerce_articles' =>
    array (
      0 => 'images',
    ),
    'tx_commerce_order_types' =>
    array (
      0 => 'icon',
    ),
    'tx_commerce_categories' =>
    array (
      0 => 'images',
      1 => 'teaserimages',
    ),
    'tx_commerce_products' =>
    array (
      0 => 'images',
      1 => 'teaserimages',
    ),
  ),
);
?> 

Commerce Migration

Nach diesem Schema wurde auch die Migration der Datensätze der "commerce"-Extension durchgeführt. Zusätzlich ist es jedoch nötig, die Rendering-Funktionen für Bilder anzupassen, damit diese auch mit den neuen Datei-Referenzen zusammenspielen. Im Fall der "commerce"-Extension ist dies insofern einfach, da es nur einen Punkt gibt, wo man per Hook eingreifen muss, um die verwendeten Marker für Bilder zu überschreiben.

Der entsprechende Hook ist bereits in conn_falmigration enthalten und muss bei Bedarf nur über die ext_localconf.php aktiviert werden.

Advanced File Metadata

Zusätzlich zu den üblichen Meta-Informationen wie Titel und Beschreibung stellt die System-Erweiterung "Advanced file metadata" Felder für Ortsangaben, Herausgeber, Angaben zur Dateisprache, Erstellungsdatum oder verwendete Software zur Verfügung. Eine Installation ist auch empfehlenswert, wenn diese Informationen nicht bei jeder eingepflegten Datei befüllt werden.

Media Management

Eine sinnvolle Ergänzung zum im TYPO3 System integrierten File Abstraction Layer stellt die Erweiterung "Media Management" dar (Extension Key: media). Diese bietet eine neue Oberfläche zur Pflege der Medien mit der Möglichkeit, die zusätzlich vergebenen Meta-Informationen anzuzeigen und die Dateititel direkt in der Listenansicht zu editieren.

Zur Benutzung müssen im Storage Eintrag einige zusätzliche Parameter gesetzt werden. Dateien können auf Basis der Erweiterung in Typen kategorisiert werden (Text, Bild, Audio, Video, Dokument). Auf Basis dieser Zuordnung wird danach der im entsprechenden Reiter gewählte Mount als Upload-Pfad verwendet. Damit wird eine automatische Sortierung der Dateien erreicht, ohne dass der Redakteur dabei eine Struktur im Storage Verzeichnis anlegen muss.

Duplikate

Ein großer Vorteil des FAL Konzeptes sei hier noch erwähnt:
Durch die Verwaltung der Dateien und Verknüpfungen über die Datenbank wird das Problem von Duplikaten automatisch behandelt, da jeder korrekt konfigurierte Datenbankeintrag immer nur auf die Datei verweist. Das vor allem bei Extensions häufig vorkommende Verhalten, eine Datei im fileadmin auszuwählen, wobei diese dann in den Uploads Unterordner der Extension kopiert wird, entfällt somit.