You are here

function _term_reference_tree_output_list_level in Taxonomy Term Reference Tree Widget 7.2

Same name and namespace in other branches
  1. 8 term_reference_tree.module \_term_reference_tree_output_list_level()
  2. 7 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 203

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 &$item) {
      $term = $taxonomy_term_info['load hook']($item['tid']);
      $uri = $taxonomy_term_info['uri callback']($term);
      $uri['options']['html'] = TRUE;
      $class = $item['selected'] ? 'selected' : 'unselected';
      $output .= "<li class='{$class}'>";
      if ($tokens_selected != '' && module_exists('token')) {
        $replace = $item['selected'] ? $tokens_selected : $tokens_unselected;
        $output .= token_replace($replace, array(
          'term' => $term,
        ), array(
          'clear' => TRUE,
        ));
      }
      else {
        $output .= l(entity_label('taxonomy_term', $term), $uri['path'], $uri['options']);
      }
      if (isset($item['children'])) {
        $output .= _term_reference_tree_output_list_level($element, $item);
      }
      $output .= "</li>";
    }
    $output .= '</ul>';
    return $output;
  }
}