WebBlocks CMS erzeugt einen festen Satz produkteigener Bildvarianten aus öffentlichen JPEG-, PNG- und WebP-Medien. Editoren verwalten weiterhin nur das ursprüngliche Medienelement; erzeugte Dateien sind abgeleitete Cache-Artefakte und erscheinen nicht als separate Bibliothekseinträge.
Systemvarianten
Die paketeigene Konfiguration media_transforms.php definiert Varianten für Vorschaubilder, Karten, responsive Inhalte, Hero-Bereiche und soziale Medien. Diese Definitionen gehören zum Produktverhalten des CMS. Dieses Release fügt bewusst weder projektdefinierte Varianten noch eine Administrationsoberfläche zum Ändern von Abmessungen und Qualität hinzu.
Transformationen werden bei der ersten Verwendung erzeugt und auf dem Datenträger des Quellmediums unter media/transforms/{media_id} gespeichert. Der Cache-Fingerabdruck umfasst nur die für die Transformation relevante Quellidentität, Abmessungen, MIME-Daten, den Fokuspunkt und die Variantendefinition; Änderungen an redaktionellen Metadaten machen ihn nicht ungültig. Das Ersetzen oder Löschen von Medien sowie Änderungen am Fokuspunkt entfernen veraltete Transformationen. Die Medienbearbeitungsseite zeigt vorhandene Varianten an, ohne fehlende Dateien zu erzeugen, und kann alle Systemvarianten ausdrücklich löschen und neu erzeugen.
SVG und nicht unterstützte Rasterformate verwenden sicher ihre ursprüngliche öffentliche URL. Originaldateien werden niemals überschrieben. Abgeleitete Transformationsdateien sind keine eigenständigen redaktionellen Inhalte und können nach einer Übertragung oder Wiederherstellung neu erzeugt werden.
Redaktioneller Arbeitsablauf
Bildmedien bieten auf der Medienbearbeitungsseite eine Fokuspunkt-Auswahl. Die ausgewählte normalisierte X/Y-Position steuert Zuschneidevarianten wie Vorschaubild, Karte, Hero und soziale Medien. Einpassvarianten bewahren das ursprüngliche Seitenverhältnis.
Dieselbe Seite zeigt eine Vorschau jeder Systemvariante. Medienauswahlen verwenden die Vorschaubildvariante, während der öffentliche Bild-Block responsive, verzögert geladene srcset-Kandidaten aus den Einpassvarianten ausgibt.
Einpassvarianten bewahren das Seitenverhältnis und verwenden das Original direkt, wenn es bereits nicht breiter als die angeforderte Variante ist. Zuschneidevarianten berechnen um den Fokuspunkt herum einen Quellausschnitt mit dem konfigurierten Seitenverhältnis. Kleine Originale werden niemals vergrößert: Das konfigurierte Ausgabeformat wird gleichmäßig verkleinert, sodass es in die Quelle passt, und anschließend ohne Verzerrung zugeschnitten.
Das Markup für responsive Bilder und Galerien verwendet die gemessenen Ergebnisabmessungen, sortiert Kandidaten nach ihrer tatsächlichen Breite, entfernt doppelte URLs und lässt srcset weg, sofern nicht mindestens zwei unterschiedliche Kandidaten verbleiben. sizes der Galerie folgt der konfigurierten Spaltenanzahl. Seiten- oder Site-Bilder für soziale Medien verwenden den social-Zuschnitt für Open-Graph- und Twitter-Metadaten. card und hero bleiben reserviert, da das aktuelle Paket kein vollwertiges Medienbibliotheksfeld für diese Blockrollen besitzt.
Speicher- und Laufzeitanforderungen
Transformationen verwenden PHP GD und Laravel-Dateisystem-Datenträger. Die Erzeugung von JPEG, PNG und WebP hängt vom jeweiligen GD-Codec ab. Wenn das Quellformat oder der Laufzeit-Codec nicht verfügbar ist, greift die öffentliche Darstellung auf die ursprüngliche Medien-URL zurück, statt fehlzuschlagen.
Der PNG-Alphakanal bleibt erhalten. Fehler beim Dekodieren, Skalieren, Kodieren oder Speichern entfernen unvollständige Ausgaben und lösen einen sicheren Rückgriff aus. ext-gd bleibt unter Composer suggest optional.
Betreiber können alle geeigneten Bilder in begrenzten Stapeln neu erzeugen, eine einzelne ID als Ziel angeben oder veraltete Fingerabdruckverzeichnisse sicher bereinigen, ohne Originale oder aktuelle Transformationen zu verändern:
php artisan webblocks:media-variants:regenerate
php artisan webblocks:media-variants:regenerate --media=123
php artisan webblocks:media-variants:regenerate --prune
Die Erzeugung erfolgt synchron und benötigt bewusst keine Warteschlange. Große Bibliotheken sollten während eines Wartungsfensters neu erzeugt werden.