VocabularyTranslation.php
Same filename in this branch
Same filename in other branches
- 9 core/modules/taxonomy/src/Plugin/migrate/source/d6/VocabularyTranslation.php
- 9 core/modules/taxonomy/src/Plugin/migrate/source/d7/VocabularyTranslation.php
- 8.9.x core/modules/taxonomy/src/Plugin/migrate/source/d6/VocabularyTranslation.php
- 8.9.x core/modules/taxonomy/src/Plugin/migrate/source/d7/VocabularyTranslation.php
- 10 core/modules/taxonomy/src/Plugin/migrate/source/d6/VocabularyTranslation.php
- 10 core/modules/taxonomy/src/Plugin/migrate/source/d7/VocabularyTranslation.php
Namespace
Drupal\taxonomy\Plugin\migrate\source\d6File
-
core/
modules/ taxonomy/ src/ Plugin/ migrate/ source/ d6/ VocabularyTranslation.php
View source
<?php
namespace Drupal\taxonomy\Plugin\migrate\source\d6;
use Drupal\migrate\Row;
use Drupal\migrate_drupal\Plugin\migrate\source\DrupalSqlBase;
// cspell:ignore ltlanguage objectindex
/**
* Drupal 6 i18n vocabulary translations source from database.
*
* For available configuration keys, refer to the parent classes.
*
* @see \Drupal\migrate\Plugin\migrate\source\SqlBase
* @see \Drupal\migrate\Plugin\migrate\source\SourcePluginBase
*
* @MigrateSource(
* id = "d6_taxonomy_vocabulary_translation",
* source_module = "i18ntaxonomy"
* )
*/
class VocabularyTranslation extends DrupalSqlBase {
/**
* {@inheritdoc}
*/
public function query() {
$query = $this->select('vocabulary', 'v')
->fields('v')
->fields('i18n', [
'lid',
'type',
'property',
'objectid',
])
->fields('lt', [
'lid',
'translation',
])
->condition('i18n.type', 'vocabulary');
$query->addField('lt', 'language', 'lt.language');
// The i18n_strings table has two columns containing the object ID, objectid
// and objectindex. The objectid column is a text field. Therefore, for the
// join to work in PostgreSQL, use the objectindex field as this is numeric
// like the vid field.
$query->join('i18n_strings', 'i18n', '[v].[vid] = [i18n].[objectindex]');
$query->innerJoin('locales_target', 'lt', '[lt].[lid] = [i18n].[lid]');
return $query;
}
/**
* {@inheritdoc}
*/
public function fields() {
return [
'vid' => $this->t('The vocabulary ID.'),
'language' => $this->t('Language for this field.'),
'property' => $this->t('Name of property being translated.'),
'translation' => $this->t('Translation of either the title or explanation.'),
];
}
/**
* {@inheritdoc}
*/
public function prepareRow(Row $row) {
// For ease of reading the migration use 'language' as the property name for
// the language.
$language = $row->getSourceProperty('ltlanguage');
$row->setSourceProperty('language', $language);
return parent::prepareRow($row);
}
/**
* {@inheritdoc}
*/
public function getIds() {
$ids['vid']['type'] = 'integer';
$ids['language']['type'] = 'string';
$ids['language']['alias'] = 'lt';
return $ids;
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
VocabularyTranslation | Drupal 6 i18n vocabulary translations source from database. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.