You are here

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;
}