WebBlocks CMS genera un conjunto fijo de variantes de imagen propias del producto a partir de archivos multimedia públicos JPEG, PNG y WebP. Los editores siguen gestionando únicamente el elemento multimedia original; los archivos generados son artefactos derivados de caché y no aparecen como registros independientes en la biblioteca.
Variantes del sistema
La configuración media_transforms.php, propiedad del paquete, define las variantes de miniatura, tarjeta, contenido adaptable, hero y redes sociales. Estas definiciones forman parte del comportamiento del producto CMS. Esta versión no añade deliberadamente variantes definidas por el proyecto ni una pantalla de administración para cambiar las dimensiones y la calidad.
Las transformaciones se generan en el primer uso y se almacenan en el disco del medio de origen bajo media/transforms/{media_id}. La huella de la caché incluye únicamente la identidad del origen relevante para la transformación, las dimensiones, los datos MIME, el punto focal y la definición de la variante; los cambios en los metadatos editoriales no la invalidan. Sustituir o eliminar un medio y cambiar su punto focal elimina las transformaciones obsoletas. La pantalla de edición de Medios muestra las variantes existentes sin generar los archivos que falten y permite borrar y regenerar explícitamente todas las variantes del sistema.
SVG y los formatos rasterizados no compatibles usan de forma segura su URL pública original. Los archivos originales nunca se sobrescriben. Los archivos de transformación derivados no son contenido editorial independiente y pueden regenerarse después de una transferencia o restauración.
Flujo de trabajo editorial
Los medios de imagen ofrecen un selector de punto focal en la pantalla de edición de Medios. La posición X/Y normalizada seleccionada guía las variantes de recorte, como miniatura, tarjeta, hero y redes sociales. Las variantes de ajuste conservan la relación de aspecto original.
La misma pantalla muestra una vista previa de cada variante del sistema. Los selectores de medios usan la variante de miniatura, mientras que el bloque Imagen público emite candidatos srcset adaptables y de carga diferida a partir de las variantes de ajuste.
Las variantes de ajuste conservan la relación de aspecto y usan directamente el original cuando este no es más ancho que la variante solicitada. Las variantes de recorte calculan un recorte del origen con la relación de aspecto configurada alrededor del punto focal. Los originales pequeños nunca se amplían: la proporción de salida configurada se reduce uniformemente para ajustarse al origen y después se recorta sin distorsión.
El marcado de Imagen adaptable y Galería usa las dimensiones medidas del resultado, ordena los candidatos por su anchura real, elimina las URL duplicadas y omite srcset a menos que queden al menos dos candidatos distintos. sizes de la Galería sigue el número de columnas configurado. Las imágenes sociales de la página o del sitio usan el recorte social para los metadatos de Open Graph y Twitter. card y hero permanecen reservados porque el paquete actual no dispone de un campo de Biblioteca multimedia de primera clase para esas funciones de bloque.
Requisitos de almacenamiento y ejecución
Las transformaciones usan PHP GD y discos del sistema de archivos de Laravel. La generación de JPEG, PNG y WebP depende del códec GD correspondiente. Si el formato de origen o el códec de ejecución no está disponible, la representación pública recurre a la URL del medio original en lugar de fallar.
El canal alfa de PNG se conserva. Los fallos de decodificación, redimensionamiento, codificación y almacenamiento eliminan la salida incompleta y activan una alternativa segura. ext-gd sigue siendo opcional en suggest de Composer.
Los operadores pueden regenerar todas las imágenes aptas en lotes limitados, dirigirse a un único id o depurar de forma segura directorios de huellas obsoletos sin alterar los originales ni las transformaciones actuales:
php artisan webblocks:media-variants:regenerate
php artisan webblocks:media-variants:regenerate --media=123
php artisan webblocks:media-variants:regenerate --prune
La generación es síncrona y no requiere deliberadamente una cola. Las bibliotecas grandes deben regenerarse durante una ventana de mantenimiento.