function privatemsg_migrate_import_privatemsg in Migrate Extras 6
Implementation of hook_migrate_import().
File
- ./
privatemsg.migrate.inc, line 64 - Integrates privatemsg module with the migrate module
Code
function privatemsg_migrate_import_privatemsg($tblinfo, $row) {
$msg = (object) array();
foreach ($tblinfo->fields as $destfield => $values) {
if ($values['srcfield'] && $row->{$values}['srcfield']) {
$msg->{$destfield} = $row->{$values}['srcfield'];
}
else {
$msg->{$destfield} = $values['default_value'];
}
}
timer_start('relationship_prepare hooks');
$errors = migrate_invoke_all('prepare_privatemsg', $msg, $tblinfo, $row);
timer_stop('relationship_prepare hooks');
$success = TRUE;
foreach ($errors as $error) {
if ($error['level'] != MIGRATE_MESSAGE_INFORMATIONAL) {
$success = FALSE;
break;
}
}
$new_thread = $msg->new_thread;
if ($success) {
timer_start('privatemsg_save');
$msg = (object) array_merge((array) $msg, privatemsg_new_thread($new_thread->recipients, $new_thread->subject, $new_thread->message, $new_thread->options));
timer_stop('privatemsg_save');
if (!$msg->success) {
$errors[] = migrate_message("Message didn't save");
}
// Call completion hooks, for any processing which needs to be done after node_save
timer_start('privatemsg_completion hooks');
$errors = array_merge($errors, migrate_invoke_all('complete_privatemsg', $msg, $tblinfo, $row));
timer_stop('privatemsg_completion hooks');
}
return $errors;
}