function _term_reference_tree_output_list_level in Taxonomy Term Reference Tree Widget 7
Same name and namespace in other branches
- 8 term_reference_tree.module \_term_reference_tree_output_list_level()
- 7.2 term_reference_tree.widget.inc \_term_reference_tree_output_list_level()
Helper function to output a single level of the term reference tree display.
1 call to _term_reference_tree_output_list_level()
- theme_term_tree_list in ./
term_reference_tree.widget.inc - Themes the term tree display (as opposed to the select widget).
File
- ./
term_reference_tree.widget.inc, line 210
Code
function _term_reference_tree_output_list_level(&$element, &$tree) {
if (isset($tree['children']) && is_array($tree['children']) && count($tree['children']) > 0) {
$output = '<ul class="term">';
$settings = $element['#display']['settings'];
$tokens_selected = $settings['token_display_selected'];
$tokens_unselected = $settings['token_display_unselected'] != '' ? $settings['token_display_unselected'] : $tokens_selected;
$taxonomy_term_info = entity_get_info('taxonomy_term');
foreach ($tree['children'] as $itemno => &$item) {
$term = $taxonomy_term_info['load hook']($item['tid']);
// Do not output terms that do not exist.
if ($term) {
$uri = $taxonomy_term_info['uri callback']($term);
$uri['options']['html'] = TRUE;
$class = $item['selected'] ? 'selected' : 'unselected';
$output_fragment[$term->weight][$itemno] = '<li class="' . $class . '">';
if ($tokens_selected != '' && module_exists('token')) {
$replace = $item['selected'] ? $tokens_selected : $tokens_unselected;
$output_fragment[$term->weight][$itemno] .= token_replace($replace, array(
'term' => $term,
), array(
'clear' => TRUE,
));
}
else {
$output_fragment[$term->weight][$itemno] .= l(filter_xss(entity_label('taxonomy_term', $term)), $uri['path'], $uri['options']);
}
if (isset($item['children'])) {
$output_fragment[$term->weight][$itemno] .= _term_reference_tree_output_list_level($element, $item);
}
$output_fragment[$term->weight][$itemno] .= '</li>';
}
}
// Using output fragments with weights as the array key
// should force this into current sort order once we sort the array.
if (isset($output_fragment)) {
ksort($output_fragment);
foreach ($output_fragment as $this_fragment) {
$output .= implode('', $this_fragment);
}
}
$output .= '</ul>';
return $output;
}
}