convert image to media
function gn_core_update_8001(&$sandbox) {
$entity_types = ['node', 'paragraph'];
$image_fields = ['field_image', 'field_social_share_image'];
foreach ($entity_types as $entity_type) {
$entities = \Drupal::entityTypeManager()
->getStorage($entity_type)
->loadMultiple();
foreach ($image_fields as $image_field) {
gn_core_migrate_to_media($entities, $image_field);
}
}
}
function gn_core_migrate_to_media($entities, $image_field) {
$image_media_field_name = $image_field . '_media';
foreach ($entities as $entity) {
if (
$entity->hasField($image_field) &&
$entity->get($image_field)->isEmpty() === FALSE &&
$entity->hasField($image_media_field_name)
) {
$images = $entity->get($image_field)->getValue();
$entity->set($image_media_field_name, NULL);
foreach ($images as $image) {
$media = \Drupal::entityTypeManager()
->getStorage('media')
->create([
'bundle' => 'image',
'uid' => 1,
]);
$media->set('field_media_image', $image);
$media->save();
$entity->get($image_media_field_name)->appendItem($media);
}
$entity->save();
}
}
}