You are here

public function NodeComplete::query in Drupal 9

Same name in this branch
  1. 9 core/modules/node/src/Plugin/migrate/source/d6/NodeComplete.php \Drupal\node\Plugin\migrate\source\d6\NodeComplete::query()
  2. 9 core/modules/node/src/Plugin/migrate/source/d7/NodeComplete.php \Drupal\node\Plugin\migrate\source\d7\NodeComplete::query()
Same name and namespace in other branches
  1. 8 core/modules/node/src/Plugin/migrate/source/d7/NodeComplete.php \Drupal\node\Plugin\migrate\source\d7\NodeComplete::query()

Return value

\Drupal\Core\Database\Query\SelectInterface

Overrides Node::query

File

core/modules/node/src/Plugin/migrate/source/d7/NodeComplete.php, line 31

Class

NodeComplete
Drupal 7 all node revisions source, including translation revisions.

Namespace

Drupal\node\Plugin\migrate\source\d7

Code

public function query() {
  $query = parent::query();
  $query
    ->orderBy('nr.vid');

  // Get any entity translation revision data.
  if ($this
    ->getDatabase()
    ->schema()
    ->tableExists('entity_translation_revision')) {
    $query
      ->leftJoin('entity_translation_revision', 'etr', '[nr].[nid] = [etr].[entity_id] AND [nr].[vid] = [etr].[revision_id]');
    $query
      ->fields('etr', [
      'entity_type',
      'entity_id',
      'revision_id',
      'source',
      'translate',
    ]);
    $conditions = $query
      ->orConditionGroup();
    $conditions
      ->condition('etr.entity_type', 'node');
    $conditions
      ->isNull('etr.entity_type');
    $query
      ->condition($conditions);
    $query
      ->addExpression("COALESCE([etr].[language], [n].[language])", 'language');
    $query
      ->addField('etr', 'uid', 'etr_uid');
    $query
      ->addField('etr', 'status', 'etr_status');
    $query
      ->addField('etr', 'created', 'etr_created');
    $query
      ->addField('etr', 'changed', 'etr_changed');
    $query
      ->orderBy('etr.revision_id');
    $query
      ->orderBy('etr.language');
  }
  return $query;
}