public function Location::defineValueProcessPipeline in Geolocation Field 8.3
Same name in this branch
- 8.3 src/Plugin/migrate/field/Location.php \Drupal\geolocation\Plugin\migrate\field\Location::defineValueProcessPipeline()
- 8.3 modules/geolocation_address/src/Plugin/migrate/field/Location.php \Drupal\geolocation_address\Plugin\migrate\field\Location::defineValueProcessPipeline()
Apply any custom processing to the field bundle migrations.
Parameters
\Drupal\migrate\Plugin\MigrationInterface $migration: The migration entity.
string $field_name: The field name we're processing the value for.
array $data: The array of field data from FieldValues::fieldData().
Overrides AddressField::defineValueProcessPipeline
File
- modules/
geolocation_address/ src/ Plugin/ migrate/ field/ Location.php, line 43
Class
- Location
- A migrate field plugin for Drupal 7 Location CCK field values.
Namespace
Drupal\geolocation_address\Plugin\migrate\fieldCode
public function defineValueProcessPipeline(MigrationInterface $migration, $field_name, $data) {
parent::defineValueProcessPipeline($migration, $field_name, $data);
// Address cannot store geographical locations, so we need a separate
// geolocation field.
$geolocation_field_name = self::getGeolocationFieldName($field_name);
$migration
->mergeProcessOfProperty($geolocation_field_name, [
'plugin' => 'location_to_geolocation',
'source' => $field_name,
]);
// Add the new geolocation field's migration as a required dependency.
$migration_dependencies = $migration
->getMigrationDependencies() + [
'required' => [],
];
$geolocation_field_instance_migration_plugin_id = implode(PluginBase::DERIVATIVE_SEPARATOR, [
'd7_field_instance_location',
$data['entity_type'],
$data['bundle'],
]);
$geolocation_field_widget_migration_plugin_id = implode(PluginBase::DERIVATIVE_SEPARATOR, [
'd7_field_instance_widget_settings_location',
$data['entity_type'],
$data['bundle'],
]);
$migration_dependencies['required'] = array_unique(array_merge(array_values($migration_dependencies['required']), [
$geolocation_field_instance_migration_plugin_id,
$geolocation_field_widget_migration_plugin_id,
]));
$migration
->set('migration_dependencies', $migration_dependencies);
}