1.20.x menu.module | menu_parent_options($menus, $item, $type = '') |
Return a list of menu items that are valid possible parents for the given menu item.
Parameters
$menus: An array of menu names and titles, such as from menu_get_menus().
$item: The menu item or the node type for which to generate a list of parents. If $item['mlid'] == 0 then the complete tree is returned.
$type: The node type for which to generate a list of parents. If $item itself is a node type then $type is ignored.
Return value
An array of menu link titles keyed on the a string containing the menu name: and mlid. The list excludes the given item and its children.
File
- modules/
menu/ menu.module, line 355 - Allows administrators to customize the site's menus.
Code
function menu_parent_options($menus, $item, $type = '') {
$available_menus = array();
if (!is_array($item)) {
// If $item is not an array then it is a node type.
// Use it as $type and prepare a dummy menu item for _menu_get_options().
$type = $item;
$item = array('mlid' => 0);
}
if (empty($type)) {
// If no node type is set, use all menus given to this function.
$available_menus = $menus;
}
else {
// If a node type is set, use all available menus for this type.
$node_type = node_type_load($type);
foreach ($node_type->settings['menu_options'] as $menu) {
$available_menus[$menu] = $menu;
}
}
return _menu_get_options($menus, $available_menus, $item);
}