cvs diff: Diffing . Index: uc_addresses.migrate.inc =================================================================== RCS file: uc_addresses.migrate.inc diff -N uc_addresses.migrate.inc --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ uc_addresses.migrate.inc 7 Nov 2009 01:28:17 -0000 @@ -0,0 +1,105 @@ + t('UberCart address')); + return $types; +} + +/** + * Implement hook_migrate_fields_[type](). + * + * This defines what target fields the uc_addresses migrate type supports. + */ +function uc_addresses_migrate_fields_uc_addresses($type) { + $fields = array( + 'uid' => t('UC Address: User ID'), + 'first_name' => t('UC Address: First name'), + 'last_name' => t('UC Address: Last name'), + 'phone' => t('UC Address: Phone'), + 'company' => t('UC Address: Company'), + 'street1' => t('UC Address: Street 1'), + 'street2' => t('UC Address: Street 2'), + 'city' => t('UC Address: City'), + 'zone' => t('UC Address: Zone code'), + 'postal_code' => t('UC Address: Postal Code'), + 'country' => t('UC Address: Country'), + 'address_name' => t('UC Address: Address nickname'), + 'created' => t('UC Address: Created timestamp'), + 'modified' => t('UC Address: Last modified timestamp'), + 'is_default' => t('UC Address: Is default'), + ); + return $fields; +} + +/** + * Implement hook_migrate_delete_[type](). + * + * Force the clearing out of imported uc_addresses records. We don't want to + * use _uc_addresses_db_delete_address() here, since unlike in the normal UI, + * we need to be able to delete default addresses this way, too, + */ +function uc_addresses_migrate_delete_uc_addresses($aid) { + db_query("DELETE FROM {uc_addresses} WHERE aid = %d", $aid); + db_query("DELETE FROM {uc_addresses_defaults} WHERE aid = %d", $aid); +} + +/** + * Implement hook_migrate_import_[type](). + * + * Import the given data into a new uc_address object and save it to the DB. + * This function invokes hook_migrate_prepare_uc_addresses() to give modules + * a chance to alter the $address object before it is written to the DB. + */ +function uc_addresses_migrate_import_uc_addresses($tblinfo, $row) { + $sourcekey = $tblinfo->sourcekey; + $address = new stdClass; + foreach ($tblinfo->fields as $destfield => $values) { + if ($values['srcfield'] && isset($row->$values['srcfield'])) { + $newvalue = $row->$values['srcfield']; + } + else { + $newvalue = $values['default_value']; + } + // Make sense of timestamp fields + if ($destfield == 'created' || $destfield == 'modified') { + $newvalue = _migrate_valid_date($newvalue); + } + $address->$destfield = $newvalue; + } + + $errors = migrate_destination_invoke_all('prepare_uc_addresses', $address, $tblinfo, $row); + + $success = TRUE; + foreach ($errors as $error) { + if ($error['level'] != MIGRATE_MESSAGE_INFORMATIONAL) { + $success = FALSE; + break; + } + } + + if ($success) { + $address_id = _uc_addresses_db_add_address($address, TRUE); + if (!empty($address_id)) { + migrate_add_mapping($tblinfo->mcsid, $row->$sourcekey, $address_id); + } + elseif (empty($errors)) { + $errors[] = migrate_message(t('_uc_addresses_db_add_address() failed: Unknown reason')); + } + } + + return $errors; +} + Index: uc_addresses.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/uc_addresses/uc_addresses.module,v retrieving revision 1.28 diff -u -p -r1.28 uc_addresses.module --- uc_addresses.module 20 Apr 2009 20:54:10 -0000 1.28 +++ uc_addresses.module 7 Nov 2009 01:28:18 -0000 @@ -57,6 +57,9 @@ define('UC_ADDRESSES_ACCESS_ADD_EDIT', ' */ function uc_addresses_init() { drupal_add_css(drupal_get_path('module', 'uc_order') .'/uc_order.css'); + if (module_exists('migrate')) { + module_load_include('inc', 'uc_addresses', 'uc_addresses.migrate'); + } } /**