Ein Kunde hatte neulich das Problem, dass nach einem Update von TYPO3 Version 4.5 auf 6.2 alle Bilder im Content-Bereich verschwunden waren. Grund dafür war, dass diese über die Updatefunktion offenbar nicht mitumgezogen wurden. Hier ein Skript, das Abhilfe verspricht.

Nach einer kurzen Analyse war klar: Die Bilde stehen in den älteren Versionen in einem anderen Datenbankfeld als unter 6.2. Genauer gesagt: Die Umstellung auf das sog. „File Abstraction Layer“ (FAL) in den neuen Versionen ist eine gewisse Hürde. Bilder von Extensions waren nicht betroffen, lediglich solche, die vom Kunden einstmals direkt beim Content-Erstellen hochgeladen wurden und ins Verzeichnis /uploads/pics/ wanderten. Dies gilt für die Content-Typen „Bild und Text“ bzw. „Bilder“.

Warum das Update nicht klappte, kann ich nicht genau sagen, weil ich das Ergebnis so vorfand als der Kunde mich anrief. Möglicherweise war der Versionssprung zu hoch, er hatte etwas beim Update übersehen oder es gibt schlicht einen Fehler in der Update-Routine (Ein Update auf 6.1 und dann auf 6.2 könnte das Problem möglicherweise beheben, v.a. in Verbindung mit den Reindexierungs-Jobs des Schedulers. Müsste man aber wohl mal probieren…).

Lösung für mich war, ein kleines PHP-Skript zu schreiben, dieses auf den Server zu schieben und es dort auszuführen. Es wurden zwar einige Referenzen übersehen, aber im Großen und Ganzen konnten alle ca. 800 Datensätze wieder mit Bildern, Beschreibungen und Titeln versehen werden. Ich stelle das Skript hie zur Verfügung in der Hoffnung es möge nützlich sein (Prosit!).

Was macht das Skript?

  • Es holt sich aus der Tabelle tt_content alle Einträge mit Bildern.
  • Es prüft, ob das Bild in /uploads/pics/ vorhanden ist.
  • Es prüft, ob die Datenbank das Bild bereits kennt und legt gegebenenfalls einen Eintrag in sys_file an.
  • Es prüft, ob bereits eine Verknüpfung in sys_file_reference vorhanden ist.
  • Falls alles ok ist (d.h. Bild existiert, Datenbank-Eintrag vorhanden, keine Verknüpfung), wird eine neue Verknüpfung angelegt.

Das Skript kann eigentlich ohne Gefahr mehrfach ausgeführt werden, denn bereits bestehende Verknüpfungen werden nicht angetastet. Dennoch ist das Skript auf eigene Gefahr zu benutzen – ich stelle es ohne Gewährleistung zur Verfügung. Findige Entwickler können es gerne an ihre Bedürftnisse anpassen (z.B. UTF-8 statt ISO-8859-15-Ausgabe, Alt-Attribute statt Captions o.ä.).

Installation und Ausführen

  • Bevor man das Skript nutzen kann, dieses bitte mit einem Texteditor (z.B. Notepad++ oder gedit) öffnen und die Datenbankeinträge am Anfang anpassen.
  • Dannach kann man das Skript auf den Server laden. Es sollte in das Wurzelverzeichnis der TYPO3-Instanz, die man updaten möchte.
  • Im Browser kann man nun das Skript direkt aufrufen: http://meineurl/imageupdate.php
  • Die Ausgabe auf dem Browser sollte Aufschluss darüber geben, was passiert und ob es Probleme gibt.

Viel Erfolg! Über Feedback freue ich mich immer!

Download Skript