_menu_delete_item($item, $force = FALSE)
drupal/includes/menu.inc, line 1966
Helper function for menu_link_delete; deletes a single menu link.
$item Item to be deleted.
$force Forces deletion. Internal use only, setting to TRUE is discouraged.
| Name | Description |
|---|---|
| Menu system | Define the navigation menus, and route page requests to code based on URLs. |
function _menu_delete_item($item, $force = FALSE) {
$item = is_object($item) ? get_object_vars($item) : $item;
if ($item && ($item['module'] != 'system' || $item['updated'] || $force)) {
// Children get re-attached to the item's parent.
if ($item['has_children']) {
$result = db_query("SELECT mlid FROM {menu_links} WHERE plid = :plid", array(':plid' => $item['mlid']));
foreach ($result as $m) {
$child = menu_link_load($m->mlid);
$child['plid'] = $item['plid'];
menu_link_save($child);
}
}
db_delete('menu_links')->condition('mlid', $item['mlid'])->execute();
// Update the has_children status of the parent.
_menu_update_parental_status($item);
menu_cache_clear($item['menu_name']);
_menu_clear_page_cache();
}
}