Mercurial > hg > isophonics-drupal-site
comparison core/modules/migrate_drupal/src/Plugin/MigrateFieldPluginManager.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 1fec387a4317 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\migrate_drupal\Plugin; | |
4 | |
5 use Drupal\Component\Plugin\Exception\PluginNotFoundException; | |
6 use Drupal\migrate\Plugin\MigratePluginManager; | |
7 use Drupal\migrate\Plugin\MigrationInterface; | |
8 | |
9 /** | |
10 * Plugin manager for migrate field plugins. | |
11 * | |
12 * @see \Drupal\migrate_drupal\Plugin\MigrateFieldInterface | |
13 * @see \Drupal\migrate\Annotation\MigrateField | |
14 * @see plugin_api | |
15 * | |
16 * @ingroup migration | |
17 */ | |
18 class MigrateFieldPluginManager extends MigratePluginManager implements MigrateFieldPluginManagerInterface { | |
19 | |
20 /** | |
21 * The default version of core to use for field plugins. | |
22 * | |
23 * These plugins were initially only built and used for Drupal 6 fields. | |
24 * Having been extended for Drupal 7 with a "core" annotation, we fall back to | |
25 * Drupal 6 where none exists. | |
26 */ | |
27 const DEFAULT_CORE_VERSION = 6; | |
28 | |
29 /** | |
30 * {@inheritdoc} | |
31 */ | |
32 public function getPluginIdFromFieldType($field_type, array $configuration = [], MigrationInterface $migration = NULL) { | |
33 $core = static::DEFAULT_CORE_VERSION; | |
34 if (!empty($configuration['core'])) { | |
35 $core = $configuration['core']; | |
36 } | |
37 elseif (!empty($migration->getPluginDefinition()['migration_tags'])) { | |
38 foreach ($migration->getPluginDefinition()['migration_tags'] as $tag) { | |
39 if ($tag == 'Drupal 7') { | |
40 $core = 7; | |
41 } | |
42 } | |
43 } | |
44 | |
45 $definitions = $this->getDefinitions(); | |
46 foreach ($definitions as $plugin_id => $definition) { | |
47 if (in_array($core, $definition['core'])) { | |
48 if (array_key_exists($field_type, $definition['type_map']) || $field_type === $plugin_id) { | |
49 return $plugin_id; | |
50 } | |
51 } | |
52 } | |
53 throw new PluginNotFoundException($field_type); | |
54 } | |
55 | |
56 } |