Same filename and directory in other branches
- 8.9.x core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNode.php
- 9 core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNode.php
Namespace
Drupal\taxonomy\Plugin\migrate\source\d6
File
core/modules/taxonomy/src/Plugin/migrate/source/d6/TermNode.php
View source
<?php
namespace Drupal\taxonomy\Plugin\migrate\source\d6;
use Drupal\migrate\Row;
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
class TermNode extends DrupalSqlBase {
const JOIN = '[tn].[vid] = [n].[vid]';
public function query() {
$query = $this
->select('term_node', 'tn')
->distinct()
->fields('tn', [
'nid',
'vid',
])
->fields('n', [
'type',
]);
$query
->innerJoin('term_data', 'td', '[td].[tid] = [tn].[tid] AND [td].[vid] = :vid', [
':vid' => $this->configuration['vid'],
]);
$query
->innerJoin('node', 'n', static::JOIN);
return $query;
}
public function fields() {
return [
'nid' => $this
->t('The node revision ID.'),
'vid' => $this
->t('The node revision ID.'),
'tid' => $this
->t('The term ID.'),
];
}
public function prepareRow(Row $row) {
$query = $this
->select('term_node', 'tn')
->fields('tn', [
'tid',
])
->condition('n.nid', $row
->getSourceProperty('nid'));
$query
->join('node', 'n', static::JOIN);
$query
->innerJoin('term_data', 'td', '[td].[tid] = [tn].[tid] AND [td].[vid] = :vid', [
':vid' => $this->configuration['vid'],
]);
$row
->setSourceProperty('tid', $query
->execute()
->fetchCol());
return parent::prepareRow($row);
}
public function getIds() {
$ids['vid']['type'] = 'integer';
$ids['vid']['alias'] = 'tn';
return $ids;
}
}
Classes
Name |
Description |
TermNode |
Drupal 6 term/node relationships (current revision) source from database. |