You are here

function _term_reference_tree_get_term_hierarchy in Taxonomy Term Reference Tree Widget 8

Same name and namespace in other branches
  1. 7.2 term_reference_tree.module \_term_reference_tree_get_term_hierarchy()
  2. 7 term_reference_tree.module \_term_reference_tree_get_term_hierarchy()

This function returns a taxonomy term hierarchy in a nested array.

Parameters

$tid: The ID of the root term.

$vid: The vocabulary ID to restrict the child search.

Return value

A nested array of the term's child objects.

1 call to _term_reference_tree_get_term_hierarchy()
CheckboxTree::processCheckboxTree in src/Element/CheckboxTree.php
Processes a checkboxes form element.

File

./term_reference_tree.module, line 165

Code

function _term_reference_tree_get_term_hierarchy($tid, $vid, &$allowed, $filter, $label, $default = []) {
  $terms = _term_reference_tree_get_children($tid, $vid);
  $result = [];
  if ($filter != '') {
    foreach ($allowed as $k => $v) {
      if (array_key_exists($k, $terms)) {
        $term =& $terms[$k];
        $children = _term_reference_tree_get_term_hierarchy($term->tid, $vid, $allowed, $filter, $label, $default);
        if (is_array($children)) {
          $term->children = $children;
          $term->children_selected = _term_reference_tree_children_selected($term, $default);
        }
        else {
          $term->children_selected = FALSE;
        }
        $term->TEST = $label;
        array_push($result, $term);
      }
    }
  }
  else {
    foreach ($terms as &$term) {
      if ($filter == '' || array_key_exists($term->tid, $allowed)) {
        $children = _term_reference_tree_get_term_hierarchy($term->tid, $vid, $allowed, $filter, $label, $default);
        if (is_array($children)) {
          $term->children = $children;
          $term->children_selected = _term_reference_tree_children_selected($term, $default);
        }
        else {
          $term->children_selected = FALSE;
        }
        $term->TEST = $label;
        array_push($result, $term);
      }
    }
  }
  return $result;
}