You are here

function system_menu in Drupal 4

Same name and namespace in other branches
  1. 5 modules/system/system.module \system_menu()
  2. 6 modules/system/system.module \system_menu()
  3. 7 modules/system/system.module \system_menu()

Implementation of hook_menu().

File

modules/system.module, line 93
Configuration system that lets administrators modify the workings of the site.

Code

function system_menu($may_cache) {
  $items = array();
  if ($may_cache) {
    $items[] = array(
      'path' => 'system/files',
      'title' => t('file download'),
      'callback' => 'file_download',
      'access' => TRUE,
      'type' => MENU_CALLBACK,
    );
    $access = user_access('administer site configuration');
    $items[] = array(
      'path' => 'admin',
      'title' => t('administer'),
      'access' => user_access('access administration pages'),
      'callback' => 'watchdog_overview',
      'weight' => 9,
    );

    // Themes:
    $items[] = array(
      'path' => 'admin/themes',
      'title' => t('themes'),
      'callback' => 'system_themes',
      'access' => $access,
    );
    $items[] = array(
      'path' => 'admin/themes/select',
      'title' => t('list'),
      'callback' => 'system_themes',
      'access' => $access,
      'type' => MENU_DEFAULT_LOCAL_TASK,
      'weight' => -1,
    );
    $items[] = array(
      'path' => 'admin/themes/settings',
      'title' => t('configure'),
      'callback' => 'system_theme_settings',
      'access' => $access,
      'type' => MENU_LOCAL_TASK,
    );

    // Theme configuration subtabs
    $items[] = array(
      'path' => 'admin/themes/settings/global',
      'title' => t('global settings'),
      'callback' => 'system_theme_settings',
      'access' => $access,
      'type' => MENU_DEFAULT_LOCAL_TASK,
      'weight' => -1,
    );
    foreach (list_themes() as $theme) {
      if ($theme->status) {
        $items[] = array(
          'path' => 'admin/themes/settings/' . $theme->name,
          'title' => $theme->name,
          'callback' => 'system_theme_settings',
          'callback arguments' => array(
            $theme->name,
          ),
          'access' => $access,
          'type' => MENU_LOCAL_TASK,
        );
      }
    }

    // Modules:
    $items[] = array(
      'path' => 'admin/settings',
      'title' => t('settings'),
      'callback' => 'system_site_settings',
      'access' => $access,
    );
    foreach (module_list() as $name) {
      if (module_hook($name, 'settings')) {
        $items[] = array(
          'path' => 'admin/settings/' . $name,
          'title' => t($name),
        );
      }
    }
    $items[] = array(
      'path' => 'admin/modules',
      'title' => t('modules'),
      'callback' => 'system_modules',
      'access' => $access,
    );
  }
  return $items;
}