Vorschaubilder in Brandbox werden anhand der zugrunde liegenden Quelldateien über die Delegates erstellt und an den Client ausgeliefert. Um diese Vorschaubilder nicht bei jeder Anfrage erneut generieren zu müssen, können diese Bilder gespeichert werden. Eine Datei kann somit mehrere Thumbnails besitzen. Die Thumbnail-Datensätze enthalten Informationen, welche die Vorschau auszeichnen, wie z.B. Breite und Höhe. Die tatsächlichen Binärdaten der Vorschaubilder werden in eigenen Datensätzen gespeichert; Den ThumbnailBinary-Datensätzen. Diese Art der Persistierung ist in der Theorie flexibel. Es wäre ebenfalls möglich die Binärdaten auf dem Dateisystem des Servers abzulegen.
Durch den Einsatz von SQL Foreign Keys werden Thumbnails bzw. ThumbnailBinaries automatisch gelöscht, sofern die Quelldatei bzw. das Thumbnail gelöscht werden.
Generierung
Thumbnails werden in der Regel über eine zentrale Methode generiert: \Brandbox\Framework\Base\File\Manager::getThumbnailByFile Diese Methode erwartet einen mamFile-Datensatz, ein Array an Optionen, welches von den Delegates berücksichtigt wird und (optional) ein Konfigurationsobjekt für die Steuerung der Thumbnail Generierung. Die Thumbnail Generierung wird maßgeblich über zwei Events beeinflusst:
Dieses Event erlaubt es dem Nutzer die zu generierende Datei auszutauschen.
Diese Funktion wir beispielsweise dafür genutzt, um RAW-Dateien gegen ihre extrahierten und kleineren JPG-Stellvertreter auszutauschen, um die Performance beim Erstellen von Thumbnails zu verbessern.
Dieses Event erlaubt es dem Nutzer ein Thumbnail-Objekt bereitzustellen, welches von getThumbnailByFile an die aufrufende Stelle zurückgegeben wird.
Diese Funktion wird beispielsweise genutzt, um tatsächlich eine Vorschau einer Datei zu genrieren, oder um ein Platzhalter Thumbnail bereitzustellen, falls sich die Konfiguration des zu generierenden Thumbnails in der Warteschlange befindet.
Generierung als Hintergrundprozess
Dateien, die über den herkömmlichen Upload in die Brandbox eingebunden werden, erhalten Einträge in der Tabelle ThumbnailQueue. In dieser Tabelle Einträge abgelegt, die stets eine Datei referenzieren. Darüber hinaus enthält jeder Datensatz diverse Optionen, mit denen ein Thumbnail generiert werden soll. Diese Tabelle wird von einem CronJob auf zu generierende Thumbnails geprüft. Durch diesen CronJob werden die Thumbnails passiv im Laufe der Zeit generiert. Diese Vorgehensweise sorgt dafür, dass der Upload sich tatsächlich hauptsächlich mit dem Upload der Datei kümmert. Teilaufgaben wie das Ermitteln von Metadaten, das Generieren von Vorschaubildern etc. soll in separaten Prozessen abgearbeitet werden, damit die Vorgänge performant bleiben.
Konfiguration
Die Thumbnails selbst verfügen über keine Konfiguration. Es ist jedoch möglich Dateien (Bilder) festzulegen, welche in folgenden Fällen dargestellt werden:
Eine Vorschau kann nicht generiert werden.
Eine Vorschau wird nicht generiert, da sich zu dieser Konfiguration bereits ein Eintrag in der Warteschlange befindet.
Diese Einstellungen können in der Tabelle "ConfigBaseFile" vorgenommen werden. Sie befindet sich im abgesichterten Adminsitrations-Bereich.
Klicken Sie im Kopfbereich der Brandbox auf
Authentifizieren Sie sich ggf.
Klicken Sie auf den Eintrag "Allgemeine Konfiguration" in der Kachel "Dateien"
Hier können Sie die Dateien im Konfigurationsdatensatz festlegen
Besonderheiten
Kann eine Vorschau nicht generiert werden, so wird ein Datensatz über einen booleschen Wert markiert, sodass bei der nächsten Anfrage ohne erneuten Versuch das Fallback Thumnbail bereitgestellt wird. Dieser Wert kann in der Bearbeiten-Ansicht des Datensatzes gesetzt werden.