diff --git a/phone.info b/phone.info index 4e350d9..dd1546c 100644 --- a/phone.info +++ b/phone.info @@ -2,6 +2,7 @@ name = Phone description = The phone module allows administrators to define a field type for phone numbers. package = Fields dependencies[] = field +files[] = phone.migrate.inc files[] = tests/phone.au.test files[] = tests/phone.be.test files[] = tests/phone.br.test diff --git a/phone.migrate.inc b/phone.migrate.inc index 775da4e..e73eeb6 100644 --- a/phone.migrate.inc +++ b/phone.migrate.inc @@ -20,3 +20,32 @@ function phone_field_alter(&$field_value, $instance_value) { $field_value['settings']['country'] = $code; } } + +/** + * Implements hook_migrate_api(). + */ +function phone_migrate_api() { + return array('api' => 2); +} + +/** + * Support for the Migrate package. + */ +class MigratePhoneFieldHandler extends MigrateFieldHandler { + + public function __construct() { + $this->registerTypes(array('phone')); + } + + public function prepare($entity, array $field_info, array $instance, array $values) { + // Setup the Field API array for saving. + $arguments = (isset($values['arguments'])) ? $values['arguments']: array(); + $language = $this->getFieldLanguage($entity, $field_info, $arguments); + $delta = 0; + foreach ($values as $value) { + $return[$language][$delta]['value'] = $value; + $delta++; + } + return isset($return) ? $return : NULL; + } +} \ No newline at end of file