function admin_menu_alter in Admin 6
Same name and namespace in other branches
- 6.2 admin.module \admin_menu_alter()
- 7.2 admin.module \admin_menu_alter()
Implementation of hook_menu_alter().
File
- ./
admin.module, line 103
Code
function admin_menu_alter(&$items) {
foreach ($items as $path => $item) {
$args = explode('/', $path);
// Move all admin/* items to admin menu links.
if ($args && $args[0] === 'admin') {
$items[$path]['menu_name'] = 'admin';
}
// Smarter access callback for poorly checked landing pages
if (!empty($item['access arguments']) && !empty($item['page callback']) && $item['access arguments'] === array(
'access administration pages',
) && in_array($item['page callback'], array(
'system_admin_menu_block_page',
'system_settings_overview',
))) {
$items[$path]['access callback'] = 'admin_landing_page_access';
$items[$path]['access arguments'] = array(
$path,
);
}
}
// Move admin theme settings to theme local task.
$items['admin/build/themes/admin'] = $items['admin/settings/admin'];
$items['admin/build/themes/admin']['type'] = MENU_LOCAL_TASK;
$items['admin/build/themes/admin']['weight'] = 10;
unset($items['admin/settings/admin']);
// Add in a routing item for admin/content/add
$items['admin/content/add'] = $items['node/add'];
$items['admin/content/add']['page callback'] = 'drupal_goto';
$items['admin/content/add']['page arguments'] = array(
'node/add',
);
$items['admin/content/add']['description'] = 'Create new content on your site.';
$items['admin/content/add']['weight'] = -20;
$items['admin/content/node']['weight'] = -19;
$items = array_merge($items, admin_menu_clone_items('admin/build/themes', 'admin/themes', $items));
$items = array_merge($items, admin_menu_clone_items('admin/build/modules', 'admin/modules', $items));
// Expose a small subset of the most usable core admin pages.
// Other pages can be exposed simply by adding ['options']['admin'] = TRUE
// to items in hook_menu().
$include = array(
'admin/content' => 'Content',
'admin/content/add' => 'Add',
'admin/content/node' => 'Edit',
'admin/build' => 'Structure',
'admin/build/views' => '',
'admin/build/block' => '',
'admin/build/menu' => '',
'admin/user' => 'People',
'admin/user/permissions' => '',
'admin/user/user' => '',
'admin/settings' => 'Configuration',
'admin/settings/date-time' => '',
'admin/settings/filters' => '',
'admin/settings/language' => '',
'admin/settings/performance' => '',
'admin/settings/site-information' => '',
'admin/themes' => 'Appearance',
'admin/modules' => '',
);
foreach ($include as $path => $title) {
if (!empty($items[$path])) {
$items[$path]['title'] = !empty($title) ? $title : $items[$path]['title'];
$items[$path]['options']['admin'] = TRUE;
}
}
cache_clear_all('admin_paths', 'cache');
}