diff --git a/entityreference.migrate.inc b/entityreference.migrate.inc index 037fba1..4c3f32b 100644 --- a/entityreference.migrate.inc +++ b/entityreference.migrate.inc @@ -5,31 +5,26 @@ * Support for processing entity reference fields in Migrate. */ -/** - * Implement hook_migrate_api(). - */ -function entityreference_migrate_api() { - return array('api' => 2); -} - class MigrateEntityReferenceFieldHandler extends MigrateFieldHandler { public function __construct() { $this->registerTypes(array('entityreference')); } - public function prepare($entity, array $field_info, array $instance, array $values) { - $migration = Migration::currentMigration(); - $arguments = (isset($values['arguments']))? $values['arguments']: array(); + public function prepare(stdClass $entity, array $field_info, array $instance, array $values) { + $arguments = (isset($values['arguments'])) ? $values['arguments'] : array(); + unset($values['arguments']); $language = $this->getFieldLanguage($entity, $field_info, $arguments); + // Setup the standard Field API array for saving. $delta = 0; foreach ($values as $value) { $return[$language][$delta]['target_id'] = $value; + if (isset($arguments['type'])) { + $return[$language][$delta]['target_type'] = $arguments['type']; + } $delta++; } - if (!isset($return)) { - $return = NULL; - } - return $return; + + return isset($return) ? $return : NULL; } } diff --git a/entityreference.module b/entityreference.module index 2327e9b..d803ed0 100644 --- a/entityreference.module +++ b/entityreference.module @@ -688,3 +688,10 @@ function entityreference_views_api() { 'path' => drupal_get_path('module', 'entityreference') . '/views', ); } + +/** + * Implements hook_migrate_api(). + */ +function entityreference_migrate_api() { + return array('api' => 2); +} \ No newline at end of file