Contesto
App\Services\ExifService oggi legge i metadati. Mancano scrittura e gestione completa di IPTC/XMP (copyright, autore, didascalia, keyword) e il supporto a formati come RAW.
Obiettivo
Lettura/scrittura completa di EXIF/IPTC/XMP via ExifTool (Phil Harvey) + un editor metadati nell'admin.
Scope
File / aree coinvolte
app/Services/ExifService.php, app/Controllers/Admin/MediaController.php, app/Views/admin/media/index.twig, composer.json.
Criteri di accettazione
- Da admin posso impostare copyright/autore/didascalia/keyword su una foto e i valori vengono scritti nel file (verificabili con
exiftool esterno).
- Lettura coerente dopo la scrittura; nessuna corruzione del file (test su jpg/webp; RAW read-only se la scrittura non è sicura).
- Dual-DB safe; scritture pesanti via CLI/background quando in bulk.
Dipendenze
Abilita al meglio #5 (Smart Albums) e #3 (colore) avendo i metadati strutturati. Prerequisito di #3 (bulk editing) se serve.
Contesto
App\Services\ExifServiceoggi legge i metadati. Mancano scrittura e gestione completa di IPTC/XMP (copyright, autore, didascalia, keyword) e il supporto a formati come RAW.Obiettivo
Lettura/scrittura completa di EXIF/IPTC/XMP via ExifTool (Phil Harvey) + un editor metadati nell'admin.
Scope
php-exiftoolo wrapper interno conexecvalidato come inSettingsController).ExifServicecon metodi di scrittura (copyright, creator, headline, caption, keyword, rating) su original + varianti rilevanti.app/Views/admin/media/(campi IPTC/XMP) sul pannello laterale esistente.tags).File / aree coinvolte
app/Services/ExifService.php,app/Controllers/Admin/MediaController.php,app/Views/admin/media/index.twig,composer.json.Criteri di accettazione
exiftoolesterno).Dipendenze
Abilita al meglio #5 (Smart Albums) e #3 (colore) avendo i metadati strutturati. Prerequisito di #3 (bulk editing) se serve.