function _term_reference_tree_get_term_hierarchy_recursive in Taxonomy Term Reference Tree Widget 7
Recursive helper function for _term_reference_tree_get_term_hierarchy().
1 call to _term_reference_tree_get_term_hierarchy_recursive()
- _term_reference_tree_get_term_hierarchy in ./
term_reference_tree.module - This function returns a taxonomy term hierarchy in a nested array.
File
- ./
term_reference_tree.module, line 99
Code
function _term_reference_tree_get_term_hierarchy_recursive($parent_tid, $tree, $expanded, $use_ajax, $max_depth, $depth = 1) {
$terms = array();
if (isset($tree['children'][$parent_tid])) {
foreach ($tree['children'][$parent_tid] as $child_tid) {
$term = $tree['terms'][$child_tid];
$term->has_children = isset($tree['children'][$term->tid]);
if ($term->has_children) {
// Process children if:
// Max depth is not reached
// And we don't use ajax OR if this term must be expanded.
$max_depth_reached = isset($max_depth) && $depth >= $max_depth;
if (!$max_depth_reached && (!$use_ajax || in_array($term->tid, $expanded))) {
$term->children = _term_reference_tree_get_term_hierarchy_recursive($term->tid, $tree, $expanded, $use_ajax, $max_depth, $depth + 1);
}
}
$terms[$term->tid] = $term;
}
}
return $terms;
}