Compare commits
No commits in common. "a8929f9e1cc9ad0705739c234c364307bc5d9092" and "f8fae5fc27c6fbfc0b6dd41735f317c5ceecbd28" have entirely different histories.
a8929f9e1c
...
f8fae5fc27
3 changed files with 25 additions and 38 deletions
|
@ -1,4 +1,5 @@
|
||||||
name: Migration Helpers
|
name: Agaric Migration Helpers
|
||||||
type: module
|
type: module
|
||||||
description: Provides helpers to migrate data into modern Drupal.
|
description: Provides helpers to migrate data into modern Drupal.
|
||||||
|
package: Agaric
|
||||||
core_version_requirement: ^9 || ^10
|
core_version_requirement: ^9 || ^10
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
services:
|
services:
|
||||||
migration_helpers.field_transformations:
|
agaric_migration_helpers.field_transformations:
|
||||||
class: Drupal\migration_helpers\MigrationHelperFieldTransformations
|
class: Drupal\migration_helpers\MigrationHelperFieldTransformations
|
||||||
arguments: ['@entity_type.manager']
|
arguments: ['@entity_type.manager']
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace Drupal\migration_helpers;
|
namespace Drupal\agaric_migration_helpers;
|
||||||
|
|
||||||
use Drupal\Core\Entity\EntityTypeManagerInterface;
|
use Drupal\Core\Entity\EntityTypeManagerInterface;
|
||||||
|
|
||||||
class MigrationHelperFieldTransformations {
|
class AgaricMigrationHelperFieldTransformations {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The entity type manager.
|
* The entity type manager.
|
||||||
|
@ -14,7 +14,7 @@ class MigrationHelperFieldTransformations {
|
||||||
protected $entityTypeManager;
|
protected $entityTypeManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs an MigrationHelperFieldTransformations object.
|
* Constructs an AgaricMigrationHelperFieldTransformations object.
|
||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
EntityTypeManagerInterface $entity_type_manager
|
EntityTypeManagerInterface $entity_type_manager
|
||||||
|
@ -50,30 +50,15 @@ class MigrationHelperFieldTransformations {
|
||||||
|
|
||||||
foreach ($entities as $entity) {
|
foreach ($entities as $entity) {
|
||||||
$media_target_ids = [];
|
$media_target_ids = [];
|
||||||
$langcodes = $entity->getTranslationLanguages();
|
|
||||||
$translations = [];
|
|
||||||
if ($langcodes > 0) {
|
|
||||||
foreach($langcodes as $langcode) {
|
|
||||||
$check_translation = $entity->getTranslation($langcode->getId());
|
|
||||||
if ($check_translation !== NULL) {
|
|
||||||
$translations[] = $entity->getTranslation($langcode->getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($translations as $translation) {
|
|
||||||
|
|
||||||
foreach ($source_field_names as $source_field_name) {
|
foreach ($source_field_names as $source_field_name) {
|
||||||
foreach ($translation->$source_field_name as $fieldItem) {
|
foreach ($entity->$source_field_name as $fieldItem) {
|
||||||
$entity_data = [
|
$entity_data = [
|
||||||
'bundle' => $media_entity_bundle,
|
'bundle' => $media_entity_bundle,
|
||||||
'langcode' => $fieldItem->getLangcode(),
|
'uid' => $entity->getOwnerId(),
|
||||||
|
'langcode' => $entity->language()->getId(),
|
||||||
'status' => 1,
|
'status' => 1,
|
||||||
];
|
];
|
||||||
// Some entities (like taxonomy terms) do not have a an owner id
|
|
||||||
if(method_exists($entity, 'getOwnerId')) {
|
|
||||||
$entity_data['uid'] = $entity->getOwnerId();
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach (\array_keys($fieldItem->getValue()) as $subfield) {
|
foreach (\array_keys($fieldItem->getValue()) as $subfield) {
|
||||||
$entity_data[$media_target_field][$subfield] = $fieldItem->get($subfield)->getValue();
|
$entity_data[$media_target_field][$subfield] = $fieldItem->get($subfield)->getValue();
|
||||||
|
@ -84,9 +69,10 @@ class MigrationHelperFieldTransformations {
|
||||||
$media_target_ids[] = $media_entity->id();
|
$media_target_ids[] = $media_entity->id();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$translation->set($media_field_name, $media_target_ids);
|
|
||||||
}
|
$entity->set($media_field_name, $media_target_ids);
|
||||||
$entity->save();
|
$entity->save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue