| 7 system.api.php | hook_menu_alter(&$items) |
| 6 core.php | hook_menu_alter(&$items) |
| 8 system.api.php | hook_menu_alter(&$items) |
Alter the data being saved to the {menu_router} table after hook_menu is invoked.
This hook is invoked by menu_router_build(). The menu definitions are passed in by reference. Each element of the $items array is one item returned by a module from hook_menu. Additional items may be added, or existing items altered.
Parameters
$items: Associative array of menu router definitions returned from hook_menu().
Return value
None.
Related topics
1 function implements hook_menu_alter()
Note: this list is generated by pattern matching, so it may include some functions that are not actually implementations of this hook.
- upload_menu_alter in modules/
upload/ upload.module
1 invocation of hook_menu_alter()
- menu_router_build in includes/
menu.inc - Collect, alter and store the menu definitions.
File
- developer/
hooks/ core.php, line 362 - These are the hooks that are invoked by the Drupal core.
Code
function hook_menu_alter(&$items) {
// Example - disable the page at node/add
$items['node/add']['access callback'] = FALSE;
}
Comments
Remove the user register and password tabs on registration page
Permalink1. Find or add a custom module, and add this to the [MODULENAME].module
<?phpfunction [MODULENAME]_menu_alter(&$items) {
$items['user']['type'] = MENU_CALLBACK;
$items['user/register']['type'] = MENU_CALLBACK;
$items['user/password']['type'] = MENU_CALLBACK;
}
?>
2. Go to Site Configuration > Site Performance, Click Clear Cache
3. Open a second browser and navigate to /user and it should be gone! Yay!
Remove Registration form
PermalinkHello,
I am using user selectable roles modules for my roles to be displayed and we can select those roles by checking the text boxes.but these roles are displaying by default either on registration page or on user account forms,I have no other option left with.I want to remove the registration/user account page and get the roles display on a separate page.Can you tell me how to get this done?
Clearing menu cache (rebuilding the menu)
PermalinkInstead of manually clearing the cache, try:
menu_rebuild();drupal_set_message('The menu has been rebuilt.');
Works for me :)
Change the core contact form title "Contact" to whatever
Permalinkfunction modulename_menu_alter(&$items){
$items['contact']['title'] = 'Whatever';
}//end modulename_menu_alter
Removing the RSS feed (/rss.xml)
PermalinkIf you want to remove the rss feed (/rss.xml), use the following snippet:
<?phpfunction MYMODULE_menu_alter(&$items) {
unset($items['rss.xml']);
}
?>