You are here

public function DrupalCommentMigration::__construct in Drupal-to-Drupal data migration 7.2

Parameters

array $arguments:

Overrides DrupalMigration::__construct

3 calls to DrupalCommentMigration::__construct()
DrupalComment5Migration::__construct in d5/comment.inc
DrupalComment6Migration::__construct in d6/comment.inc
DrupalComment7Migration::__construct in d7/comment.inc
3 methods override DrupalCommentMigration::__construct()
DrupalComment5Migration::__construct in d5/comment.inc
DrupalComment6Migration::__construct in d6/comment.inc
DrupalComment7Migration::__construct in d7/comment.inc

File

./comment.inc, line 35
Base class for migrating comments into Drupal.

Class

DrupalCommentMigration
Base class for all comment migrations - handles commonalities across all supported source Drupal versions.

Code

public function __construct(array $arguments) {
  $this->sourceType = $arguments['source_type'];
  $this->destinationType = $arguments['destination_type'];
  if (!empty($arguments['node_migration'])) {
    $this->nodeMigration = $arguments['node_migration'];
    $this->dependencies[] = $this->nodeMigration;
  }
  if (!empty($arguments['user_migration'])) {
    $user_migration = $arguments['user_migration'];
    $this->dependencies[] = $user_migration;
  }
  parent::__construct($arguments);
  $this->sourceFields += $this->version
    ->getSourceFields('comment', 'comment_node_' . $this->sourceType);

  // Create our three main objects - source, destination, and map
  $this->source = new MigrateSourceSQL($this
    ->query($this->sourceType), $this->sourceFields, NULL, $this->sourceOptions);
  $this->destination = new MigrateDestinationComment('comment_node_' . $this->destinationType);
  $this->map = new MigrateSQLMap($this->machineName, array(
    'cid' => array(
      'type' => 'int',
      'unsigned' => TRUE,
      'not null' => TRUE,
      'description' => 'Source comment ID',
      'alias' => 'c',
    ),
  ), MigrateDestinationComment::getKeySchema(), $this->mapConnection);

  /**
   * Setup common mappings.
   */
  $this
    ->addSimpleMappings(array(
    'subject',
    'hostname',
    'thread',
    'name',
    'mail',
    'homepage',
  ));
  if (isset($arguments['machine_name'])) {
    $this
      ->addFieldMapping('pid', 'pid')
      ->sourceMigration($arguments['machine_name']);
  }
  else {
    $this
      ->addFieldMapping('pid', 'pid');
  }
  if (!empty($this->nodeMigration)) {
    $this
      ->addFieldMapping('nid', 'nid')
      ->sourceMigration($this->nodeMigration);
  }
  else {
    $this
      ->addFieldMapping('nid', 'nid');
  }
  if (isset($arguments['default_uid'])) {
    $default_uid = $arguments['default_uid'];
  }
  else {
    $default_uid = 0;
  }
  if (isset($user_migration)) {
    $this
      ->addFieldMapping('uid', 'uid')
      ->sourceMigration($user_migration)
      ->defaultValue($default_uid);
  }
  else {
    $this
      ->addFieldMapping('uid')
      ->defaultValue($default_uid);
  }
}