Hello!
Sometimes menu items in admin menu disappears, and I have nailed it down to the admin_landing_page_access function. The problem is that on line 56 you are fetching a menu item based on router_path but I believe link_path would be the right condition. The reason is the next query search for children and when using router_path the item found could be a children in itself.

After changing line 56 from:

    $item = db_fetch_array(db_query("SELECT mlid, menu_name FROM {menu_links} ml WHERE ml.router_path = '%s' AND module = 'system'", $path));

to:

    $item = db_fetch_array(db_query("SELECT mlid, menu_name FROM {menu_links} ml WHERE ml.link_path = '%s' AND module = 'system'", $path));

everything starts to function normal again.

Comments

mnlund’s picture

Version: 6.x-1.0-beta3 » 6.x-2.x-dev

This applies to the 2.x version as well. Don't know if it is the right fix but I'm getting all the parent items. Any comments on this?

yhahn’s picture

Assigned: Unassigned » yhahn

Thanks for tracking this down, will look at this after the holiday break : )

askibinski’s picture

I can confirm that this fixed my missing menu items/access denied in 1.0-beta3.

yhahn’s picture

Status: Active » Fixed

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

micahw156’s picture

This fix got committed to admin-6.x-2.x but was never back-ported to 6.x-1.x. Please see #722146: Structure menu item or entire admin menu system sometimes disappear. for a discussion of the same change to the 1.x branch.

achton’s picture

Status: Closed (fixed) » Reviewed & tested by the community

Actually, the commit referenced by yhahn in #4 only fixed half of the issue - the OP noted the first half, yhahn only committed the second half to 6.x-2.x. Se the commit diff for further info.

I can confirm that altering that line as noted in #0 fixes this issue.