You are here

function menu_block_split_render_tree in Menu Block Split 7.2

Same name and namespace in other branches
  1. 6.2 menu_block_split.module \menu_block_split_render_tree()
  2. 6 menu_block_split.module \menu_block_split_render_tree()

Render menu

Parameters

array $tree:

int $level:

Return value

menu tree

1 call to menu_block_split_render_tree()
theme_menu_block_split_menu in ./menu_block_split.module
Theme menu.

File

./menu_block_split.module, line 224
Allow a menu to be split over two blocks Developed by Robert Garrigos <robert@garrigos.cat> Modified for Drupal 6.x by Frank Meyerer <meyerer@digi-info.de> http://www.digi-info.de currently maintained by Bob Hutchinson…

Code

function menu_block_split_render_tree($tree, $level) {
  $output = '';
  $num_items = menu_block_split_count_active_items($tree);
  $n = 1;
  foreach ($tree as $i => $mid) {
    if ($mid['link']['hidden'] == 0) {
      $link = theme('menu_block_split_menu_item_link', array(
        'link' => $mid['link'],
      ));

      // our first block
      if ($level > 0) {
        $extra_class = 'menu-' . $mid['link']['mlid'];
        if ($n == 1) {
          $extra_class .= ' first ';
        }
        if ($n == $num_items) {
          $extra_class .= ' last ';
        }
        $trail = menu_get_active_trail();
        foreach ($trail as $item) {
          if (isset($item['mlid']) && $item['mlid'] == $mid['link']['mlid'] && $item['in_active_trail']) {
            $extra_class .= ' active-trail ';
          }
        }
        $output .= theme('menu_block_split_menu_item', array(
          'link' => $link,
          'has_children' => 0,
          'menu' => '',
          'in_active_trail' => isset($mid['link']['in_active_trail']) && $mid['link']['in_active_trail'],
          'extra_class' => $extra_class,
        ));
      }
      else {
        if ($mid['below']) {
          $output .= menu_block_split_menu_tree_output($mid['below']);
        }
      }
    }
    $n++;
  }
  return $output;
}