function page_example_menu
Implements hook_menu().
Because hook_menu() registers URL paths for items defined by the function, it is necessary for modules that create pages. Each item can also specify a callback function for a given URL. The menu items returned here provide this information to the menu system.
We will define some menus, and their paths will be interpreted as follows:
If the user accesses http://example.com/?q=examples/page_example/simple, the menu system will first look for a menu item with that path. In this case it will find a match, and execute page_example_simple().
If the user accesses http://example.com/?q=examples/page_example/arguments, the menu system will find no explicit match, and will fall back to the closest match, 'examples/page_example', executing page_example_description().
If the user accesses http://example.com/?q=examples/page_example/arguments/1/2, the menu system will first look for examples/page_example/arguments/1/2. Not finding a match, it will look for examples/page_example/arguments/1/%. Again not finding a match, it will look for examples/page_example/arguments/%/2. Yet again not finding a match, it will look for examples/page_example/arguments/%/%. This time it finds a match, and so will execute page_example_arguments(1, 2). Since the parameters are passed to the function after the match, the function can do additional checking or make use of them before executing the callback function.
See also
hook_menu()
Related topics
File
-
page_example/
page_example.module, line 102
Code
function page_example_menu() {
// This is the minimum information you can provide for a menu item. This menu
// item will be created in the default menu, usually Navigation.
$items['examples/page_example'] = array(
'title' => 'Page Example',
'page callback' => 'page_example_description',
'access callback' => TRUE,
'expanded' => TRUE,
);
$items['examples/page_example/simple'] = array(
'title' => 'Simple - no arguments',
'page callback' => 'page_example_simple',
'access arguments' => array(
'access simple page',
),
);
// By using the MENU_CALLBACK type, we can register the callback for this
// path without the item appearing in the menu; the admin cannot enable the
// item in the menu, either.
//
// Notice that 'page arguments' is an array of numbers. These will be
// replaced with the corresponding parts of the menu path. In this case a 0
// would be replaced by 'examples', a 1 by 'page_example', and a 2 by
// 'arguments.' 3 and 4 will be replaced by whatever the user provides.
// These will be passed as arguments to the page_example_arguments() function.
$items['examples/page_example/arguments/%/%'] = array(
'page callback' => 'page_example_arguments',
'page arguments' => array(
3,
4,
),
'access arguments' => array(
'access arguments page',
),
'type' => MENU_CALLBACK,
);
return $items;
}