I've been developing a drupal based site and I noticed that if I change a path (that I've manually added to the menu system) that is external to the menu system the menu item disappears from the admin menu interface. However, the menu link remains in the database, it is merely lost. This appears to be related to testing for the existence of the menu item's path. However, this is poor functionality for the site administrator, the menu module should flag menus items that don't validate as inactive in the admin interface and allow them to fixed rather than hiding them.

Here's an example:

I make a view to display cars by manufacturer that accepts manufacturer as an argument using the path "cars/%".
I add a link in the menu system manually (because it can't be done automatically with an argument in Views2) to display Ford cars like: cars/Ford.
I then decide to list cars by color as well and change the view path to "cars/manufacturer/%".
The menu module will hide all of the links that pointed to the old view path.

These lost menu items can still be accessed by their menu item ids, but It requires the admin to guess or find them in the database.

Comments

vm’s picture

Version: 6.10 » 7.x-dev

Moving to drupal 7.x as past practice dictates it gets fixed in HEAD and backported.

klaasvw’s picture

I also stumbled on this issue and can confirm it can still be reproduced.

I'm wondering if this shouldn't be marked "by design" though. The menu items cannot be accessed anymore which is ok because they aren't linked to a functioning callback anymore. If you ever decide to activate the callback again (e.g. by renaming your view's path to the original name) your links will be back and working.

Status: Active » Closed (outdated)

Automatically closed because Drupal 7 security and bugfix support has ended as of 5 January 2025. If the issue verifiably applies to later versions, please reopen with details and update the version.