1 system.admin.inc system_admin_config_page()

Menu callback; Provide the administration overview page.

File

core/modules/system/system.admin.inc, line 10
Admin page callbacks for the System module.

Code

function system_admin_config_page() {
  $blocks = array();
  if ($admin = db_query("SELECT menu_name, mlid FROM {menu_links} WHERE link_path = 'admin/config' AND module = 'system'")->fetchAssoc()) {
    $admin[':type'] = MENU_NORMAL_ITEM;
    $result = db_query("
      SELECT m.*, ml.*
      FROM {menu_links} ml
      INNER JOIN {menu_router} m ON ml.router_path = m.path
      WHERE menu_name = :menu_name
        AND ml.plid = :mlid
        AND m.type = :type
        AND hidden = 0
      ORDER BY ml.link_title ASC", $admin, array('fetch' => PDO::FETCH_ASSOC));
    foreach ($result as $item) {
      _menu_link_translate($item);
      if (!$item['access']) {
        continue;
      }
      // The link description, either derived from 'description' in hook_menu()
      // or customized via menu module is used as title attribute.
      if (!empty($item['localized_options']['attributes']['title'])) {
        $item['description'] = $item['localized_options']['attributes']['title'];
        unset($item['localized_options']['attributes']['title']);
      }
      if (!empty($item['localized_options']['icon'])) {
        $item['icon'] = $item['localized_options']['icon'];
        unset($item['localized_options']['icon']);
      }
      else {
        // @todo: Handle RTL.
        $item['icon'] = 'arrow-caret-right';
      }
      $block = $item;
      $block['content'] = '';
      $block['content'] .= theme('admin_block_content', array('content' => system_admin_menu_block($item)));
      if (!empty($block['content'])) {
        $block['show'] = TRUE;
      }

      // Prepare for sorting as in function _menu_tree_check_access().
      // The weight is offset so it is always positive, with a uniform 5-digits.
      $blocks[(50000 + $item['weight']) . ' ' . $item['title'] . ' ' . $item['mlid']] = $block;
    }
  }

  return theme('admin_page', array('blocks' => $blocks));
}