You are here

function menu_block_split_block in Menu Block Split 6

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.2 menu_block_split.module \menu_block_split_block()

Implementation of hook_block().

File

./menu_block_split.module, line 126
Allow to have an splitted menu within 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

Code

function menu_block_split_block($op = 'list', $delta = 0, $edit = array()) {
  switch ($op) {
    case 'list':
      for ($i = 1; $i <= variable_get('menu_block_split_howmany', 1); $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'] = 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 <= variable_get('menu_block_split_howmany', 1); $i++) {
          $name = variable_get('menu_block_split_' . $i, '');
          $active = menu_get_active_menu_name();
          if ($active != $name) {
            menu_set_active_menu_name($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;
      break;
    case 'cache':
      return BLOCK_NO_CACHE;
  }
}