public function BlockCustomTranslation::query in Drupal 9
Same name and namespace in other branches
- 8 core/modules/block_content/src/Plugin/migrate/source/d7/BlockCustomTranslation.php \Drupal\block_content\Plugin\migrate\source\d7\BlockCustomTranslation::query()
- 10 core/modules/block_content/src/Plugin/migrate/source/d7/BlockCustomTranslation.php \Drupal\block_content\Plugin\migrate\source\d7\BlockCustomTranslation::query()
Return value
\Drupal\Core\Database\Query\SelectInterface
Overrides SqlBase::query
File
- core/
modules/ block_content/ src/ Plugin/ migrate/ source/ d7/ BlockCustomTranslation.php, line 34
Class
- BlockCustomTranslation
- Gets Drupal 7 i18n custom block translations from database.
Namespace
Drupal\block_content\Plugin\migrate\source\d7Code
public function query() {
// Build a query based on blockCustomTable table where each row has the
// translation for only one property, either title or description. The
// method prepareRow() is then used to obtain the translation for the
// other property.
$query = $this
->select(static::CUSTOM_BLOCK_TABLE, 'b')
->fields('b', [
'bid',
'format',
'body',
])
->fields('i18n', [
'property',
])
->fields('lt', [
'lid',
'translation',
'language',
])
->orderBy('b.bid');
// Use 'title' for the info field to match the property name in
// i18nStringTable.
$query
->addField('b', 'info', 'title');
// Add in the property, which is either title or body. Cast the bid to text
// so PostgreSQL can make the join.
$query
->leftJoin(static::I18N_STRING_TABLE, 'i18n', '[i18n].[objectid] = CAST([b].[bid] AS CHAR(255))');
$query
->condition('i18n.type', 'block');
// Add in the translation for the property.
$query
->innerJoin('locales_target', 'lt', '[lt].[lid] = [i18n].[lid]');
return $query;
}