39 lines
1.7 KiB
PHP
39 lines
1.7 KiB
PHP
<?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']],
|
|
['node', ['field_image'], 'field_media_image', ['people', 'article', 'blog', 'collection', 'gleaning']],
|
|
// 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.");
|
|
}
|
|
}
|