drupal/modules/system/system.admin.inc

53 lines
1.9 KiB
PHP
Raw Normal View History

<?php
/**
* Provide the administration overview page.
*/
function system_main_admin_page($arg = NULL) {
// If we received an argument, they probably meant some other page.
// Let's 404 them since the menu system cannot be told we do not
// accept arguments.
if (isset($arg) && substr($arg, 0, 3) != 'by-') {
return drupal_not_found();
}
// Check for status report errors.
if (system_status(TRUE)) {
drupal_set_message(t('One or more problems were detected with your Drupal installation. Check the <a href="@status">status report</a> for more information.', array('@status' => url('admin/logs/status'))), 'error');
}
$result = db_query("SELECT * FROM {menu_links} ml INNER JOIN {menu_router} m ON ml.router_path = m.path
WHERE ml.href like 'admin/%' AND ml.href != 'admin/help' AND ml.depth = 2 AND ml.menu_name = 'navigation'
ORDER BY p1 ASC, p2 ASC, p3 ASC");
while ($item = db_fetch_object($result)) {
_menu_link_translate($item);
if (!$item->access) {
continue;
}
$block = (array)$item;
$block['content'] = '';
if ($item->block_callback && function_exists($item->block_callback)) {
$function = $item->block_callback;
$block['content'] .= $function();
}
$block['content'] .= theme('admin_block_content', system_admin_menu_block($item));
$blocks[] = $block;
}
return theme('admin_page', $blocks);
}
/**
* Provide a single block from the administration menu as a page.
* This function is often a destination for these blocks.
* For example, 'admin/content/types' needs to have a destination to be valid
* in the Drupal menu system, but too much information there might be
* hidden, so we supply the contents of the block.
*/
function system_admin_menu_block_page() {
$item = menu_get_item();
$content = system_admin_menu_block($item);
$output = theme('admin_block_content', $content);
return $output;
}