Comment sont enregistrées les données de crop de "Focal point" dans Drupal 8/9/10 ?
Le module "Focal point" se base sur la Crop API pour enregistrer les données de crops. La Crop API définit un type d'entité crop avec des champs.
Ce type d'entité crop enregistre des données dans la table "crop_field_data".
Les propriétés de crop sont : x, y, width et height.
Nous avons également les propriétés liées à l'entité :
- cid,
- vid,
- type,
- langcode,
- entity_id,
- entity_type,
- uri.
Le "cid" est l'ID d'entité crop, "vid" est l'ID de revision, "type" est le type de crop (pour Focal point c'est crop). Le champ "entity_id" est l'ID de l'objet recadré et la plupart du temps ce sera le fid de l'image ayant comme "entity_type" la valeur "file". L'URI est l'uri du fichier tel que trouvé dans la table des fichiers "file_managed" pour le fichier correspondant.
La façon dont le module "focal point" fonctionne est qu'il utilise les coordonnées x,y comme des coordonnées absolues pour représentés le point de focus sur l'image d'origine. Ensuite, pour les styles d'image (image style) utilisant l'effet focal point, l'API du module "Focal Point" va convertir les coordonnés absolues en coordonnées relatives afin de générer les crop styles d'image.
Sachant ce fonctionnement, afin de migrer les données de crop pour "Focal point", une bonne approche est d'écrire un plugin de migration pour des entités de type crop.