function menu_enable in Drupal 7
Same name and namespace in other branches
- 6 modules/menu/menu.module \menu_enable()
Implements hook_enable().
Add a link for each custom menu.
File
- modules/
menu/ menu.module, line 180 - Allows administrators to customize the site's navigation menus.
Code
function menu_enable() {
menu_rebuild();
$base_link = db_query("SELECT mlid AS plid, menu_name FROM {menu_links} WHERE link_path = 'admin/structure/menu' AND module = 'system'")
->fetchAssoc();
$base_link['router_path'] = 'admin/structure/menu/manage/%';
$base_link['module'] = 'menu';
$result = db_query("SELECT * FROM {menu_custom}", array(), array(
'fetch' => PDO::FETCH_ASSOC,
));
foreach ($result as $menu) {
// $link is passed by reference to menu_link_save(), so we make a copy of $base_link.
$link = $base_link;
$link['mlid'] = 0;
$link['link_title'] = $menu['title'];
$link['link_path'] = 'admin/structure/menu/manage/' . $menu['menu_name'];
$menu_link = db_query("SELECT mlid FROM {menu_links} WHERE link_path = :path AND plid = :plid", array(
':path' => $link['link_path'],
':plid' => $link['plid'],
))
->fetchField();
if (!$menu_link) {
menu_link_save($link);
}
}
menu_cache_clear_all();
}