From eff390414ea4942a8b9b96d55cd91eccf84d14c0 Mon Sep 17 00:00:00 2001 From: Andreas De Rijcke <me@andreasderijcke.be> Date: Fri, 21 Mar 2025 16:01:48 +0100 Subject: [PATCH 1/3] Issue #3514678 Select terms to list by their own default language and current interface language. --- term_reference_tree.module | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/term_reference_tree.module b/term_reference_tree.module index ff9fbe2..624181c 100644 --- a/term_reference_tree.module +++ b/term_reference_tree.module @@ -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'); + $result = $query->execute(); + + $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; } } -- GitLab From af07548751f135caadede2223be10311a43b936c Mon Sep 17 00:00:00 2001 From: Andreas De Rijcke <me@andreasderijcke.be> Date: Fri, 21 Mar 2025 16:07:54 +0100 Subject: [PATCH 2/3] PHPCS fixes. --- term_reference_tree.module | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/term_reference_tree.module b/term_reference_tree.module index 624181c..2531dde 100644 --- a/term_reference_tree.module +++ b/term_reference_tree.module @@ -486,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, ]; } @@ -578,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) { @@ -606,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(), -- GitLab From 2ac624aa502fb56e4670ecb7cdac511387787924 Mon Sep 17 00:00:00 2001 From: Andreas De Rijcke <me@andreasderijcke.be> Date: Fri, 21 Mar 2025 16:44:59 +0100 Subject: [PATCH 3/3] Issue #3514678 Fix unintentional moved of query execution line. --- term_reference_tree.module | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/term_reference_tree.module b/term_reference_tree.module index 2531dde..607ca15 100644 --- a/term_reference_tree.module +++ b/term_reference_tree.module @@ -335,8 +335,6 @@ function _term_reference_tree_get_children($tid, $vid) { ->orderBy('t.weight') ->orderBy('t.name'); - $result = $query->execute(); - $interface_langcode = \Drupal::languageManager()->getCurrentLanguage()->getId(); if (\Drupal::moduleHandler()->moduleExists('locale')) { $condition_group = $query->orConditionGroup(); @@ -344,6 +342,8 @@ function _term_reference_tree_get_children($tid, $vid) { $condition_group->condition('t.default_langcode', 1); } + $result = $query->execute(); + $terms = []; while ($term = $result->fetchObject()) { if (!isset($terms[$term->tid]) || $term->langcode === $interface_langcode) { -- GitLab