2024-03-05 17:50:23 -08:00
< ? php
/**
* @ file
* Implements migration helpers in deploy hook to help migrate images to media .
*
* Config updates in drutopia utilize media entities for storing images .
*/
use Psr\Log\LogLevel ;
/**
* Move data from image fields to media entity reference fields .
*
* Implements hook_deploy_NAME () .
*/
function geo_upgrade_deploy_move_images_to_media () {
$transformations = [
[ 'paragraph' , [ 'field_image' ], 'field_media_image' , [ 'image' , 'slide' ]],
2024-03-06 15:22:10 -08:00
[ 'node' , [ 'field_image' ], 'field_media_image' , [ 'people' , 'article' , 'blog' , 'collection' , 'gleaning' ]],
2024-03-05 17:50:23 -08:00
// Leaving out the following for now, unless requested later
// ['paragraph', ['field_file'], 'field_media_document', ['file']],
// field_media_document would need to be created on file paragraph
// ['node', ['field_upload'], 'field_media_document', ['article', 'blog', 'gleaning']],
// new field would need to be added for generic file media (field_upload contains variety of file types)
];
\Drupal :: logger ( 'geo_upgrade' ) -> log ( LogLevel :: INFO , " Transformation started. " );
foreach ( $transformations as $transformation ) {
[ $entity_type , $image_field_names , $media_field_name , $bundles ] = $transformation ;
/** @var \Drupal\migration_helpers\MigrationHelperFieldTransformations $field_transformations_service */
$field_transformations_service = \Drupal :: service ( 'migration_helpers.field_transformations' );
$field_transformations_service -> fieldToMediaEntity ( $entity_type , $image_field_names , $media_field_name , $bundles );
$source_fields = implode ( ', ' , $image_field_names );
\Drupal :: logger ( 'geo_upgrade' ) -> log ( LogLevel :: INFO , " Data in image field(s) $source_fields of $entity_type entity moved to $media_field_name media reference field. " );
}
}