- admin_menu_links_menu in contributions/admin_menu/admin_menu.inc
- Build the administration menu as renderable menu links.
- admin_menu_output in contributions/admin_menu/admin_menu.module
- Build the administration menu output.
admin_menu_links_menu($tree)Build the administration menu as renderable menu links.
@see admin_menu_menu_alter()
$tree A data structure representing the administration menu tree as returned from menu_tree_all_data().
The complete administration menu, suitable for theme_admin_menu_links().
contributions/admin_menu/admin_menu.inc, line 378
<?php
function admin_menu_links_menu($tree) {
$links = array();
foreach ($tree as $data) {
// Skip invisible items.
if (!$data['link']['access'] || $data['link']['type'] == MENU_CALLBACK) {
continue;
}
// Hide 'Administer' and make child links appear on this level.
// @todo Make this configurable.
if ($data['link']['router_path'] == 'admin') {
if ($data['below']) {
$links = array_merge($links, admin_menu_links_menu($data['below']));
}
continue;
}
// Remove local tasks on 'admin'.
if (in_array($data['link']['router_path'], array('admin/by-task', 'admin/by-module'))) {
continue;
}
// Omit alias lookups.
$data['link']['localized_options']['alias'] = TRUE;
// Remove description to prevent mouseover tooltip clashes.
unset($data['link']['localized_options']['attributes']['title']);
$links[$data['link']['mlid']] = array(
'#title' => $data['link']['title'],
'#href' => $data['link']['href'],
'#options' => $data['link']['localized_options'],
'#weight' => $data['link']['weight'],
);
if ($data['below']) {
$links[$data['link']['mlid']] += admin_menu_links_menu($data['below']);
}
}
return $links;
}
?>