5 * Provides tools for implementing and managing migrations.
9 * Implements hook_entity_type_build().
11 function migrate_tools_entity_type_build(array &$entity_types) {
12 // Inject our UI into the general migration and migration group config
14 /** @var \Drupal\Core\Config\Entity\ConfigEntityType[] $entity_types */
15 $entity_types['migration']
16 ->set('admin_permission', 'administer migrations')
17 ->setHandlerClass('list_builder', 'Drupal\migrate_tools\Controller\MigrationListBuilder')
18 ->setFormClass('edit', 'Drupal\migrate_tools\Form\MigrationEditForm')
19 ->setFormClass('delete', 'Drupal\migrate_tools\Form\MigrationDeleteForm')
20 ->setLinkTemplate('list-form', '/admin/structure/migrate/manage/{migration_group}/migrations');
22 $entity_types['migration_group']
23 ->set('admin_permission', 'administer migrations')
24 ->setHandlerClass('list_builder', 'Drupal\migrate_tools\Controller\MigrationGroupListBuilder')
25 ->setFormClass('add', 'Drupal\migrate_tools\Form\MigrationGroupAddForm')
26 ->setFormClass('edit', 'Drupal\migrate_tools\Form\MigrationGroupEditForm')
27 ->setFormClass('delete', 'Drupal\migrate_tools\Form\MigrationGroupDeleteForm')
28 ->setLinkTemplate('edit-form', '/admin/structure/migrate/manage/{migration_group}')
29 ->setLinkTemplate('delete-form', '/admin/structure/migrate/manage/{migration_group}/delete');
33 * Implements hook_migration_plugins_alter().
35 function migrate_tools_migration_plugins_alter(array &$migrations) {
36 /** @var \Drupal\Core\TempStore\PrivateTempStoreFactory $store */
37 $tempStoreFactory = \Drupal::service('tempstore.private');
38 $store = $tempStoreFactory->get('migrate_tools');
39 // TODO: remove work-around after
40 // https://www.drupal.org/project/drupal/issues/2860341 is fixed.
41 if (!\Drupal::request()->hasSession()) {
42 $session = \Drupal::service('session');
43 \Drupal::request()->setSession($session);
46 // Get the list of changed migrations.
47 $migrationsChanged = $store->get('migrations_changed');
48 if (isset($store) && (is_array($migrationsChanged))) {
49 // Alter the source column names for each changed migration.
50 foreach ($migrationsChanged as $id) {
51 $data = $store->get($id);
52 if (isset($data['changed'])) {
53 $migrations[$id]['source']['column_names'] = $data['changed'];