Index: includes/menu.inc =================================================================== RCS file: /cvs/drupal/drupal/includes/menu.inc,v retrieving revision 1.120.2.5 diff -u -p -r1.120.2.5 menu.inc --- includes/menu.inc 7 Jul 2006 08:35:21 -0000 1.120.2.5 +++ includes/menu.inc 12 Aug 2006 00:15:37 -0000 @@ -297,7 +297,8 @@ function menu_get_root_menus() { $menu = menu_get_menu(); $root_menus = array(); - foreach ($menu['items'][0]['children'] as $mid) { + reset($menu['items'][0]['children']); + while (list(, $mid) = each($menu['items'][0]['children'])) { $root_menus[$mid] = $menu['items'][$mid]['title']; } @@ -332,7 +333,8 @@ function menu_set_location($location) { // position in the menu tree. $location[count($location) - 1]['path'] = $_GET['q']; - foreach (array_reverse($location) as $item) { + $array = array_reverse($location); + while (list(, $item) = each($array)) { if (isset($_menu['path index'][$item['path']])) { $mid = $_menu['path index'][$item['path']]; if (isset($_menu['visible'][$mid])) { @@ -389,7 +391,7 @@ function menu_execute_active_handler() { } $menu = menu_get_menu(); - + // Determine the menu item containing the callback. $path = $_GET['q']; while ($path && !isset($menu['callbacks'][$path])) { @@ -450,7 +452,8 @@ function menu_set_active_item($path = NU while ($continue) { $continue = FALSE; if (isset($menu['items'][$stored_mid]['children'])) { - foreach ($menu['items'][$stored_mid]['children'] as $cid) { + reset($menu['items'][$stored_mid]['children']); + while (list(, $cid) = each($menu['items'][$stored_mid]['children'])) { if ($menu['items'][$cid]['type'] & MENU_LINKS_TO_PARENT) { $stored_mid = $cid; $continue = TRUE; @@ -507,7 +510,8 @@ function menu_get_active_help() { return; } - foreach (module_list() as $name) { + $modules = module_list(); + while (list(, $name) = each($modules)) { if (module_hook($name, 'help')) { if ($temp = module_invoke($name, 'help', $path)) { $output .= $temp . "\n"; @@ -537,7 +541,8 @@ function menu_get_active_breadcrumb() { $links[] = l(t('Home'), variable_get('site_frontpage', 'node')); $trail = _menu_get_active_trail(); - foreach ($trail as $mid) { + reset($trail); + while (list(, $mid) = each($trail)) { $item = menu_get_item($mid); if ($item['type'] & MENU_VISIBLE_IN_BREADCRUMB) { $links[] = menu_item_link($mid); @@ -596,7 +601,8 @@ function menu_rebuild() { // Fill a queue of new menu items which are modifiable. $new_items = array(); - foreach ($menu['items'] as $mid => $item) { + reset($menu['items']); + while (list($mid, $item) = each($menu['items'])) { if ($mid < 0 && ($item['type'] & MENU_MODIFIABLE_BY_ADMIN)) { $new_items[$mid] = $item; } @@ -613,7 +619,8 @@ function menu_rebuild() { menu_save_item($item); // Fix parent IDs for the children of the menu item just saved if ($item['children']) { - foreach ($item['children'] as $child) { + reset($item['children']); + while (list(, $child) = each($item['children'])) { if (isset($new_items[$child])) { $new_items[$child]['pid'] = $item['mid']; } @@ -658,7 +665,8 @@ function menu_tree($pid = 1) { $output = ''; if (isset($menu['visible'][$pid]) && $menu['visible'][$pid]['children']) { - foreach ($menu['visible'][$pid]['children'] as $mid) { + reset($menu['visible'][$pid]['children']); + while (list(, $mid) = each($menu['visible'][$pid]['children'])) { $type = isset($menu['visible'][$mid]['type']) ? $menu['visible'][$mid]['type'] : NULL; $children = isset($menu['visible'][$mid]['children']) ? $menu['visible'][$mid]['children'] : NULL; $output .= theme('menu_item', $mid, menu_in_active_trail($mid) || ($type & MENU_EXPANDED) ? theme('menu_tree', $mid) : '', count($children) == 0); @@ -743,7 +751,8 @@ function menu_primary_local_tasks() { $output = ''; if (count($local_tasks[$pid]['children'])) { - foreach ($local_tasks[$pid]['children'] as $mid) { + reset($local_tasks[$pid]['children']); + while (list(, $mid) = each($local_tasks[$pid]['children'])) { $output .= theme('menu_local_task', $mid, menu_in_active_trail($mid), TRUE); } } @@ -760,9 +769,11 @@ function menu_secondary_local_tasks() { $output = ''; if (count($local_tasks[$pid]['children'])) { - foreach ($local_tasks[$pid]['children'] as $mid) { + reset($local_tasks[$pid]['children']); + while (list(, $mid) = each($local_tasks[$pid]['children'])) { if (menu_in_active_trail($mid) && count($local_tasks[$mid]['children']) > 1) { - foreach ($local_tasks[$mid]['children'] as $cid) { + reset($local_tasks[$mid]['children']); + while (list(, $cid) = each($local_tasks[$mid]['children'])) { $output .= theme('menu_local_task', $cid, menu_in_active_trail($cid), FALSE); } } @@ -842,7 +853,8 @@ function menu_primary_links($start_level $links = array(); if ($pid && is_array($menu['visible'][$pid]) && isset($menu['visible'][$pid]['children'])) { $count = 1; - foreach ($menu['visible'][$pid]['children'] as $cid) { + reset($menu['visible'][$pid]['children']); + while (list(, $cid) = each($menu['visible'][$pid]['children'])) { $index = "menu-$start_level-$count"; if (menu_in_active_trail_in_submenu($cid, $pid)) { $index .= "-active"; @@ -901,7 +913,8 @@ function theme_menu_links($links) { $level_tmp = explode('-', key($links)); $level = $level_tmp[0]; $output = "