You are here

class NodeComplete in Drupal 10

Same name in this branch
  1. 10 core/modules/node/src/Plugin/migrate/source/d6/NodeComplete.php \Drupal\node\Plugin\migrate\source\d6\NodeComplete
  2. 10 core/modules/node/src/Plugin/migrate/source/d7/NodeComplete.php \Drupal\node\Plugin\migrate\source\d7\NodeComplete
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
  2. 9 core/modules/node/src/Plugin/migrate/source/d7/NodeComplete.php \Drupal\node\Plugin\migrate\source\d7\NodeComplete

Drupal 7 all node revisions source, including translation revisions.

For available configuration keys, refer to the parent classes.

Plugin annotation


@MigrateSource(
  id = "d7_node_complete",
  source_module = "node"
)

Hierarchy

Expanded class hierarchy of NodeComplete

See also

\Drupal\migrate\Plugin\migrate\source\SqlBase

\Drupal\migrate\Plugin\migrate\source\SourcePluginBase

File

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

Namespace

Drupal\node\Plugin\migrate\source\d7
View source
class NodeComplete extends NodeRevision {

  /**
   * The join options between the node and the node_revisions_table.
   */
  const JOIN = 'n.nid = nr.nid';

  /**
   * {@inheritdoc}
   */
  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;
  }

  /**
   * {@inheritdoc}
   */
  public function prepareRow(Row $row) {

    // Override properties when this is an entity translation revision. The tnid
    // will be set in d7_node source plugin to the value of 'nid'.
    if ($row
      ->getSourceProperty('etr_created')) {
      $row
        ->setSourceProperty('vid', $row
        ->getSourceProperty('revision_id'));
      $row
        ->setSourceProperty('created', $row
        ->getSourceProperty('etr_created'));
      $row
        ->setSourceProperty('timestamp', $row
        ->getSourceProperty('etr_changed'));
      $row
        ->setSourceProperty('revision_uid', $row
        ->getSourceProperty('etr_uid'));
      $row
        ->setSourceProperty('source_langcode', $row
        ->getSourceProperty('source'));
    }
    return parent::prepareRow($row);
  }

  /**
   * {@inheritdoc}
   */
  public function getIds() {
    return [
      'nid' => [
        'type' => 'integer',
        'alias' => 'n',
      ],
      'vid' => [
        'type' => 'integer',
        'alias' => 'nr',
      ],
      'language' => [
        'type' => 'string',
        'alias' => 'n',
      ],
    ];
  }

  /**
   * {@inheritdoc}
   */
  protected function handleTranslations(SelectInterface $query) {
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Node::$moduleHandler protected property The module handler. Overrides SourcePluginBase::$moduleHandler
Node::create public static function Creates an instance of the plugin. Overrides DrupalSqlBase::create
Node::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides DrupalSqlBase::__construct
NodeComplete::getIds public function Overrides NodeRevision::getIds
NodeComplete::handleTranslations protected function Adapt our query for translations. Overrides Node::handleTranslations
NodeComplete::JOIN constant The join options between the node and the node_revisions_table. Overrides NodeRevision::JOIN
NodeComplete::prepareRow public function Overrides Node::prepareRow
NodeComplete::query public function Overrides Node::query
NodeRevision::fields public function Returns available fields on the source. Overrides Node::fields