You are here

function menu_block_split_block in Menu Block Split 6.2

Same name and namespace in other branches
  1. 5.2 menu_block_split.module \menu_block_split_block()
  2. 5 menu_block_split.module \menu_block_split_block()
  3. 6 menu_block_split.module \menu_block_split_block()

Implementation of hook_block().

File

./menu_block_split.module, line 143
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_block($op = 'list', $delta = 0, $edit = array()) {
  $howmany = variable_get('menu_block_split_howmany', 1);
  switch ($op) {
    case 'list':
      for ($i = 1; $i <= $howmany; $i++) {
        $mid = variable_get('menu_block_split_' . $i, '');
        $item = menu_load($mid);
        $blocks[$i]['info'] = 'Menu block split 1st level (' . $item['title'] . ')';
      }
      $blocks[0]['info'] = 'Menu block split 2nd level';
      return $blocks;
    case 'view':

      // Delta 0 is the 2nd level block
      if ($delta > 0) {
        $tree = menu_tree_page_data(variable_get('menu_block_split_' . $delta, ''));
        $block['subject'] = check_plain(variable_get('menu_block_splittitle_' . $delta, ''));
        $block['content'] = theme('menu_block_split_menu', variable_get('menu_block_split_' . $delta, ''), $tree, $delta);
      }
      else {
        $current_router_item = menu_get_item();
        for ($i = 1; $i <= $howmany; $i++) {
          $name = variable_get('menu_block_split_' . $i, '');
          $active = menu_get_active_menu_name();
          if ($active == $name) {
            $trail = menu_get_active_trail();
            $tree = menu_tree_page_data($name);
            $info = menu_block_split_get_first_level($trail);
            $block['subject'] = $info['title'];
            $block['content'] = theme('menu_block_split_menu', $name, $tree, $delta);
            return $block;
          }
        }
      }
      return $block;
    case 'cache':
      return BLOCK_NO_CACHE;
  }
}