diff --git cck_contrib.migrate.inc cck_contrib.migrate.inc new file mode 100644 index 0000000..05ca9f5 --- /dev/null +++ cck_contrib.migrate.inc @@ -0,0 +1,49 @@ +registerTypes($this->fieldTypes); + } + + public function prepare(stdClass $entity, array $instance, array $values) { + // Setup the Field API array for saving, according to derived class's + // parameters. + $delta = 0; + foreach ($values as $value) { + $return[$delta][$this->fieldValueKey] = $value; + $delta++; + } + return isset($return) ? $return : NULL; + } +} + +class MigrateEmailFieldHandler extends MigrateContribFieldHandler { + protected $fieldTypes = array('email'); + protected $fieldValueKey = 'email'; +} + +class MigrateLinkFieldHandler extends MigrateContribFieldHandler { + protected $fieldTypes = array('link'); + protected $fieldValueKey = 'url'; +} + +class MigratePhoneFieldHandler extends MigrateContribFieldHandler { + protected $fieldTypes = array(); + protected $fieldValueKey = 'value'; + + public function __construct() { + // Register every phone field type supported by phone.module + if (function_exists('phone_field_info')) { + $this->fieldTypes = array_keys(phone_field_info()); + } + parent::__construct(); + } +} + diff --git migrate_extras.info migrate_extras.info index 566d027..c1ef085 100644 --- migrate_extras.info +++ migrate_extras.info @@ -5,6 +5,7 @@ core = 6.x package=Development dependencies[] = migrate +files[] = cck_contrib.migrate.inc files[] = content.migrate.inc files[] = filefield.migrate.inc files[] = nodewords.migrate.inc