#72674 by kkaefer. Make adding menu items for local tasks not interfere with the local task.

5.x
Neil Drumm 2006-11-16 07:28:18 +00:00
parent 72fc8dbc98
commit 968a51a442
1 changed files with 12 additions and 2 deletions

View File

@ -1101,8 +1101,13 @@ function _menu_build() {
if ($old_mid < 0) {
// It had a temporary ID, so use a permanent one.
$_menu['items'][$item->mid] = $_menu['items'][$old_mid];
unset($_menu['items'][$old_mid]);
$_menu['path index'][$item->path] = $item->mid;
if ($_menu['items'][$item->mid]['type'] & $item->type) {
// If the item is of the same type, delete the old item.
unset($_menu['items'][$old_mid]);
$_menu['path index'][$item->path] = $item->mid;
}
// The new menu item gets all the custom type flags from the database
$_menu['items'][$item->mid]['type'] &= $item->type;
}
else {
// It has a permanent ID. Only replace with non-custom menu items.
@ -1258,6 +1263,11 @@ function _menu_append_contextual_items() {
$_menu['items'][$mid]['callback arguments'] = $item['callback arguments'];
}
}
if ($item['type'] & MENU_LOCAL_TASK && !($_menu['items'][$mid]['type'] & MENU_LOCAL_TASK)) {
// A local task is in the menu table and the path is already present
$_menu['items'][$mid]['type'] = MENU_LOCAL_TASK;
$new_items[$mid] = $item;
}
}
}