Skip to content
Snippets Groups Projects

Issue #3514678 Select terms to list by their own default language and current interface language.

Open Issue #3514678 Select terms to list by their own default language and current interface language.
+ 9
11
@@ -321,8 +321,6 @@ function _term_reference_tree_get_children($tid, $vid) {
$table = 'taxonomy_term_field_data';
$alias = 't';
$default_langcode = \Drupal::languageManager()->getDefaultLanguage()->getId();
$query = \Drupal::database()
->select($table, $alias);
$query->join('taxonomy_term__parent', 'p', 't.tid = p.entity_id');
@@ -337,18 +335,18 @@ function _term_reference_tree_get_children($tid, $vid) {
->orderBy('t.weight')
->orderBy('t.name');
$interface_langcode = \Drupal::languageManager()->getCurrentLanguage()->getId();
if (\Drupal::moduleHandler()->moduleExists('locale')) {
$query->condition('t.langcode', [
\Drupal::languageManager()->getCurrentLanguage()->getId(),
$default_langcode,
], 'IN');
$condition_group = $query->orConditionGroup();
$condition_group->condition('t.langcode', $interface_langcode);
$condition_group->condition('t.default_langcode', 1);
}
$result = $query->execute();
$terms = [];
while ($term = $result->fetchObject()) {
if (!isset($terms[$term->tid]) || $terms[$term->tid]->langcode === $default_langcode) {
if (!isset($terms[$term->tid]) || $term->langcode === $interface_langcode) {
$terms[$term->tid] = $term;
}
}
@@ -488,7 +486,7 @@ function _term_reference_tree_build_item($element, $term, $form_state, $value, $
else {
$e = [
'#type' => 'checkbox_tree_label',
'#value' => $term->name,
'#value' => $term->name,
];
}
@@ -580,7 +578,7 @@ function _term_reference_tree_get_parent($tid) {
/**
* Helper function to output a single level of the term reference tree display.
*
*
* @throws \Drupal\Core\Entity\EntityMalformedException
*/
function _term_reference_tree_output_list_level(&$element, &$tree) {
@@ -608,7 +606,7 @@ function _term_reference_tree_output_list_level(&$element, &$tree) {
}
$class = $item['selected'] ? 'selected' : 'unselected';
$tree_element['#items'][] = [
'#type' => 'link',
'#title' => $term->label(),
Loading