782ce434292754a7e7d4863ce313d999607fb65b
[moodle.git] / admin / settings / top.php
1 <?php // $Id$
3 // This is the first file read by the lib/adminlib.php script
4 // We use it to create the categories in correct order,
5 // since they need to exist *before* settingpages and externalpages
6 // are added to them.
8 $systemcontext = get_context_instance(CONTEXT_SYSTEM);
9 if (get_site()) {
10     $hassiteconfig = has_capability('moodle/site:config', $systemcontext);
11 } else {
12     // installation starts - no permission checks
13     $hassiteconfig = true;
14 }
16 $ADMIN->add('root', new admin_externalpage('adminnotifications', get_string('notifications'), "$CFG->wwwroot/$CFG->admin/index.php"));
18  // hidden upgrade script
19 $ADMIN->add('root', new admin_externalpage('upgradesettings', get_string('upgradesettings', 'admin'), "$CFG->wwwroot/$CFG->admin/upgradesettings.php", 'moodle/site:config', true));
21 if ($hassiteconfig) {
22     $optionalsubsystems = new admin_settingpage('optionalsubsystems', get_string('optionalsubsystems', 'admin'));
23     $ADMIN->add('root', $optionalsubsystems);
24 }
26 $ADMIN->add('root', new admin_category('users', get_string('users','admin')));
27 $ADMIN->add('root', new admin_category('courses', get_string('courses','admin')));
28 $ADMIN->add('root', new admin_category('grades', get_string('grades')));
29 $ADMIN->add('root', new admin_category('location', get_string('location','admin')));
30 $ADMIN->add('root', new admin_category('language', get_string('language')));
31 $ADMIN->add('root', new admin_category('modules', get_string('plugins', 'admin')));
32 $ADMIN->add('root', new admin_category('security', get_string('security','admin')));
33 $ADMIN->add('root', new admin_category('appearance', get_string('appearance','admin')));
34 $ADMIN->add('root', new admin_category('frontpage', get_string('frontpage','admin')));
35 $ADMIN->add('root', new admin_category('server', get_string('server','admin')));
37 $ADMIN->add('root', new admin_category('mnet', get_string('net','mnet'), (isset($CFG->mnet_dispatcher_mode) and $CFG->mnet_dispatcher_mode === 'off')));
39 $ADMIN->add('root', new admin_category('reports', get_string('reports')));
40 foreach (get_list_of_plugins($CFG->admin.'/report') as $plugin) {
41     $settingsfile = "$CFG->dirroot/$CFG->admin/report/$plugin/settings.php";
42     if (file_exists($settingsfile)) {
43         include($settingsfile);
44     } else {
45         $reportname = get_string($plugin, 'report_' . $plugin);
46         if ($reportname[1] == '[') {
47             $reportname = get_string($plugin, 'admin');
48         }
49         // ugly hack for special access control in reports
50         switch($plugin) {
51             case 'backups': $cap = 'moodle/site:backup'; break;
52             case 'stats': if (empty($CFG->enablestats)) {continue 2;};
53             default: $cap = 'moodle/site:viewreports';
54         }
55         $ADMIN->add('reports', new admin_externalpage('report'.$plugin, $reportname, "$CFG->wwwroot/$CFG->admin/report/$plugin/index.php",$cap));
56     }
57 }
59 $ADMIN->add('root', new admin_category('misc', get_string('miscellaneous')));
61 // hidden unsupported category
62 $ADMIN->add('root', new admin_category('unsupported', get_string('unsupported', 'admin'), true));
64 // hidden search script
65 $ADMIN->add('root', new admin_externalpage('search', get_string('searchresults'), "$CFG->wwwroot/$CFG->admin/search.php", 'moodle/site:config', true));
67 ?>