function menu_enable

Implements hook_enable().

Add a link for each custom menu.

File

modules/menu/menu.module, line 180

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();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.