1 block.menus.inc | DashboardMenuBlock::getContent() |
Return the content of a block.
Return value
mixed:
Overrides Block::getContent
File
- core/
modules/ dashboard/ includes/ block.menus.inc, line 53 - Dashboard block displaying menus on the site.
Class
- DashboardMenuBlock
- @file Dashboard block displaying menus on the site.
Code
function getContent() {
if (!module_exists('menu')) {
return;
}
$menus = menu_get_menus();
$current_path = current_path();
$options = array('destination' => $current_path);
$header = array(
array('data' => t('Menu')),
array('data' => t('Operations')),
);
$rows = array();
if (user_access('administer menu')) {
foreach ($menus as $machine => $menu_label) {
if (in_array($machine, $this->settings['menus'])) {
$links['manage'] = array(
'title' => t('Edit links'),
'href' => 'admin/structure/menu/manage/' . $machine,
'query' => $options,
);
$links['add'] = array(
'title' => t('Add new link'),
'href' => 'admin/structure/menu/manage/' . $machine . '/add',
'query' => $options,
);
$links['configure'] = array(
'title' => t('Configure'),
'href' => 'admin/structure/menu/manage/' . $machine . '/edit',
'query' => $options,
);
$operations = array(
'#type' => 'dropbutton',
'#links' => $links,
);
$rows[] = array(
'data' => array(
check_plain(t($menu_label)),
backdrop_render($operations),
),
);
}
}
}
if (empty($rows) && !empty($menus)) {
// If there are existing menus, but user has no access to manage any of
// them, hide the block completely.
return;
}
$panel = array(
'#theme' => 'dashboard_panel__menus',
);
$panel['table'] = array(
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#empty' => t('There are no menus to display.'),
);
if (user_access('administer menu')) {
$panel['link'] = array(
'#theme' => 'link',
'#path' => 'admin/structure/menu',
'#text' => t('Manage menus'),
);
}
return $panel;
}