You are here

function rb_misc_action_set_active_menu_item_list in Rules Bonus Pack 7

Helper function to show all menus and their menu items

1 string reference to 'rb_misc_action_set_active_menu_item_list'
rb_misc_rules_action_info in ./rb_misc.rules.inc
Implements hook_rules_action_info().

File

./rb_misc.rules.inc, line 674
Miscellaneous conditions and actions for Rules.

Code

function rb_misc_action_set_active_menu_item_list() {
  $menus = menu_parent_options(menu_get_menus(), array(
    'mlid' => 0,
  ));
  $root_menus = array();
  foreach ($menus as $key => $name) {
    $id = explode(':', $key);
    if ($id[1] == '0') {
      $root_menus[$id[0]] = check_plain($name);
    }
    else {
      $link = menu_link_load($id[1]);
      $identifier = $link['mlid'];
      $root_menu = $root_menus[$id[0]];
      while (isset($menus[$root_menu][$identifier])) {
        $identifier .= "'";
      }
      $menus[$root_menu][$identifier] = $name;
    }
    unset($menus[$key]);
  }
  return $menus;
}