Skip to content
Snippets Groups Projects
Unverified Commit 7ee36015 authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3035259 by quietone: Unknown column 'lt.i18n_status' in 'field list'

parent d97cfe6e
No related branches found
No related tags found
No related merge requests found
......@@ -45,11 +45,21 @@ public function query() {
'language',
'plid',
'plural',
'i18n_status',
])
->condition('i18n_mode', 1);
$query->leftjoin($this->blockTable, 'b', ('b.delta = i18n.objectid'));
$query->leftjoin('locales_target', 'lt', 'lt.lid = i18n.lid');
// The i18n_string module adds a status column to locale_target. It was
// originally 'status' in a later revision it was named 'i18n_status'.
/** @var \Drupal\Core\Database\Schema $db */
if ($this->getDatabase()->schema()->fieldExists('locales_target', 'status')) {
$query->addField('lt', 'status', 'i18n_status');
}
if ($this->getDatabase()->schema()->fieldExists('locales_target', 'i18n_status')) {
$query->addField('lt', 'i18n_status', 'i18n_status');
}
return $query;
}
......
......@@ -141,6 +141,13 @@ public function providerSource() {
],
];
// Change the name of the locale_target i18n status field.
$tests[1] = $tests[0];
foreach ($tests[1]['source_data']['locales_target'] as &$lt) {
$lt['status'] = $lt['i18n_status'];
unset($lt['i18n_status']);
}
return $tests;
}
......
......@@ -24,7 +24,6 @@ public function query() {
'language',
'plid',
'plural',
'i18n_status',
])
->condition('i18n.type', 'field')
->condition('property', 'option\_%', 'LIKE')
......@@ -39,6 +38,15 @@ public function query() {
$query->addField('cnf', 'type');
$query->addField('i18n', 'type', 'i18n_type');
// The i18n_string module adds a status column to locale_target. It was
// originally 'status' in a later revision it was named 'i18n_status'.
/** @var \Drupal\Core\Database\Schema $db */
if ($this->getDatabase()->schema()->fieldExists('locales_target', 'status')) {
$query->addField('lt', 'status', 'i18n_status');
}
if ($this->getDatabase()->schema()->fieldExists('locales_target', 'i18n_status')) {
$query->addField('lt', 'i18n_status');
}
return $query;
}
......
......@@ -236,6 +236,14 @@ public function providerSource() {
'i18n_status' => 0,
],
];
// Change the name of the locale_target i18n status field.
$test[1] = $test[0];
foreach ($test[1]['source_data']['locales_target'] as &$lt) {
$lt['status'] = $lt['i18n_status'];
unset($lt['i18n_status']);
}
return $test;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment