Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
CRAP | |
0.00% |
0 / 24 |
| CckMigration | |
0.00% |
0 / 1 |
|
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 24 |
| buildMigrations | |
0.00% |
0 / 1 |
42 | |
0.00% |
0 / 24 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\migrate_drupal\Plugin\migrate\builder\d6\CckMigration. | |
| */ | |
| namespace Drupal\migrate_drupal\Plugin\migrate\builder\d6; | |
| use Drupal\migrate\Entity\Migration; | |
| use Drupal\migrate\Exception\RequirementsException; | |
| use Drupal\migrate\Plugin\RequirementsInterface; | |
| use Drupal\migrate_drupal\Plugin\migrate\builder\CckBuilder; | |
| /** | |
| * @PluginID("d6_cck_migration") | |
| */ | |
| class CckMigration extends CckBuilder { | |
| /** | |
| * List of cckfield plugin IDs which have already run. | |
| * | |
| * @var string[] | |
| */ | |
| protected $processedFieldTypes = []; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function buildMigrations(array $template) { | |
| $migration = Migration::create($template); | |
| $source_plugin = $migration->getSourcePlugin(); | |
| // The source plugin will throw RequirementsException if CCK is not enabled, | |
| // in which case there is nothing else for us to do. | |
| if ($source_plugin instanceof RequirementsInterface) { | |
| try { | |
| $source_plugin->checkRequirements(); | |
| } | |
| catch (RequirementsException $e) { | |
| return [$migration]; | |
| } | |
| } | |
| // Loop through every field that will be migrated. | |
| foreach ($source_plugin as $field) { | |
| $field_type = $field->getSourceProperty('type'); | |
| // Each field type should only be processed once. | |
| if (in_array($field_type, $this->processedFieldTypes)) { | |
| continue; | |
| } | |
| // Only process the current field type if a relevant cckfield plugin | |
| // exists. | |
| elseif ($this->cckPluginManager->hasDefinition($field_type)) { | |
| $this->processedFieldTypes[] = $field_type; | |
| // Allow the cckfield plugin to alter the migration as necessary so that | |
| // it knows how to handle fields of this type. | |
| $this->cckPluginManager | |
| ->createInstance($field_type, [], $migration) | |
| ->{$this->configuration['cck_plugin_method']}($migration); | |
| } | |
| } | |
| return [$migration]; | |
| } | |
| } |