Merge branch 'MDL-28657-master' of https://github.com/mackensen/moodle
[moodle.git] / admin / settings / courses.php
1 <?php
3 // This file defines settingpages and externalpages under the "courses" category
5 if ($hassiteconfig
6  or has_capability('moodle/backup:backupcourse', $systemcontext)
7  or has_capability('moodle/category:manage', $systemcontext)
8  or has_capability('moodle/course:create', $systemcontext)
9  or has_capability('moodle/site:approvecourse', $systemcontext)) { // speedup for non-admins, add all caps used on this page
11     $ADMIN->add('courses', new admin_externalpage('coursemgmt', new lang_string('coursemgmt', 'admin'), $CFG->wwwroot . '/course/index.php?categoryedit=on',
12             array('moodle/category:manage', 'moodle/course:create')));
14 /// Course Default Settings Page
15 /// NOTE: these settings must be applied after all other settings because they depend on them
16     ///main course settings
17     $temp = new admin_settingpage('coursesettings', new lang_string('coursesettings'));
18     $courseformats = get_plugin_list('format');
19     $formcourseformats = array();
20     foreach ($courseformats as $courseformat => $courseformatdir) {
21         $formcourseformats[$courseformat] = new lang_string('pluginname', "format_$courseformat");
22     }
23     $temp->add(new admin_setting_configselect('moodlecourse/format', new lang_string('format'), new lang_string('coursehelpformat'), 'weeks',$formcourseformats));
25     $temp->add(new admin_setting_configtext('moodlecourse/maxsections', new lang_string('maxnumberweeks'), new lang_string('maxnumberweeks_desc'), 52));
27     $temp->add(new admin_settings_num_course_sections('moodlecourse/numsections', new lang_string('numberweeks'), new lang_string('coursehelpnumberweeks'), 10));
29     $choices = array();
30     $choices['0'] = new lang_string('hiddensectionscollapsed');
31     $choices['1'] = new lang_string('hiddensectionsinvisible');
32     $temp->add(new admin_setting_configselect('moodlecourse/hiddensections', new lang_string('hiddensections'), new lang_string('coursehelphiddensections'), 0,$choices));
33     $options = range(0, 10);
34     $temp->add(new admin_setting_configselect('moodlecourse/newsitems', new lang_string('newsitemsnumber'), new lang_string('coursehelpnewsitemsnumber'), 5,$options));
35     $temp->add(new admin_setting_configselect('moodlecourse/showgrades', new lang_string('showgrades'), new lang_string('coursehelpshowgrades'), 1,array(0 => new lang_string('no'), 1 => new lang_string('yes'))));
36     $temp->add(new admin_setting_configselect('moodlecourse/showreports', new lang_string('showreports'), '', 0,array(0 => new lang_string('no'), 1 => new lang_string('yes'))));
38     if (isset($CFG->maxbytes)) {
39         $choices = get_max_upload_sizes($CFG->maxbytes);
40     } else {
41         $choices = get_max_upload_sizes();
42     }
43     $temp->add(new admin_setting_configselect('moodlecourse/maxbytes', new lang_string('maximumupload'), new lang_string('coursehelpmaximumupload'), key($choices), $choices));
45     if (!empty($CFG->legacyfilesinnewcourses)) {
46         $choices = array('0'=>new lang_string('no'), '2'=>new lang_string('yes'));
47         $temp->add(new admin_setting_configselect('moodlecourse/legacyfiles', new lang_string('courselegacyfiles'), new lang_string('courselegacyfiles_help'), key($choices), $choices));
48     }
50     $temp->add(new admin_setting_heading('groups', new lang_string('groups', 'group'), ''));
51     $choices = array();
52     $choices[NOGROUPS] = new lang_string('groupsnone', 'group');
53     $choices[SEPARATEGROUPS] = new lang_string('groupsseparate', 'group');
54     $choices[VISIBLEGROUPS] = new lang_string('groupsvisible', 'group');
55     $temp->add(new admin_setting_configselect('moodlecourse/groupmode', new lang_string('groupmode'), '', key($choices),$choices));
56     $temp->add(new admin_setting_configselect('moodlecourse/groupmodeforce', new lang_string('force'), new lang_string('coursehelpforce'), 0,array(0 => new lang_string('no'), 1 => new lang_string('yes'))));
59     $temp->add(new admin_setting_heading('availability', new lang_string('availability'), ''));
60     $choices = array();
61     $choices['0'] = new lang_string('courseavailablenot');
62     $choices['1'] = new lang_string('courseavailable');
63     $temp->add(new admin_setting_configselect('moodlecourse/visible', new lang_string('visible'), '', 1,$choices));
66     $temp->add(new admin_setting_heading('language', new lang_string('language'), ''));
67     $languages=array();
68     $languages[''] = new lang_string('forceno');
69     $languages += get_string_manager()->get_list_of_translations();
70     $temp->add(new admin_setting_configselect('moodlecourse/lang', new lang_string('forcelanguage'), '',key($languages),$languages));
72     $temp->add(new admin_setting_heading('progress', new lang_string('progress','completion'), ''));
73     $temp->add(new admin_setting_configselect('moodlecourse/enablecompletion', new lang_string('completion','completion'), '',
74         0, array(0 => new lang_string('completiondisabled','completion'), 1 => new lang_string('completionenabled','completion'))));
76     $temp->add(new admin_setting_configcheckbox('moodlecourse/completionstartonenrol', new lang_string('completionstartonenrol','completion'), new lang_string('completionstartonenrolhelp', 'completion'), 0));
77     $ADMIN->add('courses', $temp);
79 /// "courserequests" settingpage
80     $temp = new admin_settingpage('courserequest', new lang_string('courserequest'));
81     $temp->add(new admin_setting_configcheckbox('enablecourserequests', new lang_string('enablecourserequests', 'admin'), new lang_string('configenablecourserequests', 'admin'), 0));
82     $temp->add(new admin_settings_coursecat_select('defaultrequestcategory', new lang_string('defaultrequestcategory', 'admin'), new lang_string('configdefaultrequestcategory', 'admin'), 1));
83     $temp->add(new admin_setting_users_with_capability('courserequestnotify', new lang_string('courserequestnotify', 'admin'), new lang_string('configcourserequestnotify2', 'admin'), array(), 'moodle/site:approvecourse'));
84     $ADMIN->add('courses', $temp);
86 /// Pending course requests.
87     if (!empty($CFG->enablecourserequests)) {
88         $ADMIN->add('courses', new admin_externalpage('coursespending', new lang_string('pendingrequests'),
89                 $CFG->wwwroot . '/course/pending.php', array('moodle/site:approvecourse')));
90     }
92     // Add a category for backups
93     $ADMIN->add('courses', new admin_category('backups', new lang_string('backups','admin')));
95     // Create a page for general backups configuration and defaults.
96     $temp = new admin_settingpage('backupgeneralsettings', new lang_string('generalbackdefaults', 'backup'), 'moodle/backup:backupcourse');
98     // General configuration section.
99     $temp->add(new admin_setting_configselect('backup/loglifetime', new lang_string('loglifetime', 'backup'), new lang_string('configloglifetime', 'backup'), 30, array(
100         1   => new lang_string('numdays', '', 1),
101         2   => new lang_string('numdays', '', 2),
102         3   => new lang_string('numdays', '', 3),
103         5   => new lang_string('numdays', '', 5),
104         7   => new lang_string('numdays', '', 7),
105         10  => new lang_string('numdays', '', 10),
106         14  => new lang_string('numdays', '', 14),
107         20  => new lang_string('numdays', '', 20),
108         30  => new lang_string('numdays', '', 30),
109         60  => new lang_string('numdays', '', 60),
110         90  => new lang_string('numdays', '', 90),
111         120 => new lang_string('numdays', '', 120),
112         180 => new lang_string('numdays', '', 180),
113         365 => new lang_string('numdays', '', 365)
114     )));
116     // General defaults section.
117     $temp->add(new admin_setting_heading('generalsettings', new lang_string('generalsettings', 'backup'), ''));
118     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_users', new lang_string('generalusers','backup'), new lang_string('configgeneralusers','backup'), array('value'=>1, 'locked'=>0)));
119     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_anonymize', new lang_string('generalanonymize','backup'), new lang_string('configgeneralanonymize','backup'), array('value'=>0, 'locked'=>0)));
120     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_role_assignments', new lang_string('generalroleassignments','backup'), new lang_string('configgeneralroleassignments','backup'), array('value'=>1, 'locked'=>0)));
121     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_activities', new lang_string('generalactivities','backup'), new lang_string('configgeneralactivities','backup'), array('value'=>1, 'locked'=>0)));
122     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_blocks', new lang_string('generalblocks','backup'), new lang_string('configgeneralblocks','backup'), array('value'=>1, 'locked'=>0)));
123     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_filters', new lang_string('generalfilters','backup'), new lang_string('configgeneralfilters','backup'), array('value'=>1, 'locked'=>0)));
124     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_comments', new lang_string('generalcomments','backup'), new lang_string('configgeneralcomments','backup'), array('value'=>1, 'locked'=>0)));
125     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_userscompletion', new lang_string('generaluserscompletion','backup'), new lang_string('configgeneraluserscompletion','backup'), array('value'=>1, 'locked'=>0)));
126     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_logs', new lang_string('generallogs','backup'), new lang_string('configgenerallogs','backup'), array('value'=>0, 'locked'=>0)));
127     $temp->add(new admin_setting_configcheckbox_with_lock('backup/backup_general_histories', new lang_string('generalhistories','backup'), new lang_string('configgeneralhistories','backup'), array('value'=>0, 'locked'=>0)));
128     $ADMIN->add('backups', $temp);
130     // Create a page for automated backups configuration and defaults.
131     $temp = new admin_settingpage('automated', new lang_string('automatedsetup','backup'), 'moodle/backup:backupcourse');
133     // Automated configuration section.
134     $temp->add(new admin_setting_configselect('backup/backup_auto_active', new lang_string('active'),  new lang_string('autoactivedescription', 'backup'), 0, array(
135         0 => new lang_string('autoactivedisabled', 'backup'),
136         1 => new lang_string('autoactiveenabled', 'backup'),
137         2 => new lang_string('autoactivemanual', 'backup')
138     )));
139     $temp->add(new admin_setting_special_backupdays());
140     $temp->add(new admin_setting_configtime('backup/backup_auto_hour', 'backup_auto_minute', new lang_string('executeat'),
141             new lang_string('backupexecuteathelp'), array('h' => 0, 'm' => 0)));
142     $storageoptions = array(
143         0 => new lang_string('storagecourseonly', 'backup'),
144         1 => new lang_string('storageexternalonly', 'backup'),
145         2 => new lang_string('storagecourseandexternal', 'backup')
146     );
147     $temp->add(new admin_setting_configselect('backup/backup_auto_storage', new lang_string('automatedstorage', 'backup'), new lang_string('automatedstoragehelp', 'backup'), 0, $storageoptions));
148     $temp->add(new admin_setting_configdirectory('backup/backup_auto_destination', new lang_string('saveto'), new lang_string('backupsavetohelp'), ''));
149     $keepoptoins = array(
150         0 => new lang_string('all'), 1 => '1',
151         2 => '2',
152         5 => '5',
153         10 => '10',
154         20 => '20',
155         30 => '30',
156         40 => '40',
157         50 => '50',
158         100 => '100',
159         200 => '200',
160         300 => '300',
161         400 => '400',
162         500 => '500');
163     $temp->add(new admin_setting_configselect('backup/backup_auto_keep', new lang_string('keep'), new lang_string('backupkeephelp'), 1, $keepoptoins));
164     $temp->add(new admin_setting_configcheckbox('backup/backup_shortname', new lang_string('backup_shortname', 'admin'), new lang_string('backup_shortnamehelp', 'admin'), 0));
166     // Automated defaults section.
167     $temp->add(new admin_setting_heading('automatedsettings', new lang_string('automatedsettings','backup'), ''));
168     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_users', new lang_string('generalusers', 'backup'), new lang_string('configgeneralusers', 'backup'), 1));
169     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_role_assignments', new lang_string('generalroleassignments','backup'), new lang_string('configgeneralroleassignments','backup'), 1));
170     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_activities', new lang_string('generalactivities','backup'), new lang_string('configgeneralactivities','backup'), 1));
171     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_blocks', new lang_string('generalblocks','backup'), new lang_string('configgeneralblocks','backup'), 1));
172     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_filters', new lang_string('generalfilters','backup'), new lang_string('configgeneralfilters','backup'), 1));
173     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_comments', new lang_string('generalcomments','backup'), new lang_string('configgeneralcomments','backup'), 1));
174     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_userscompletion', new lang_string('generaluserscompletion','backup'), new lang_string('configgeneraluserscompletion','backup'), 1));
175     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_logs', new lang_string('generallogs', 'backup'), new lang_string('configgenerallogs', 'backup'), 0));
176     $temp->add(new admin_setting_configcheckbox('backup/backup_auto_histories', new lang_string('generalhistories','backup'), new lang_string('configgeneralhistories','backup'), 0));
179     //$temp->add(new admin_setting_configcheckbox('backup/backup_auto_messages', new lang_string('messages', 'message'), new lang_string('backupmessageshelp','message'), 0));
180     //$temp->add(new admin_setting_configcheckbox('backup/backup_auto_blogs', new lang_string('blogs', 'blog'), new lang_string('backupblogshelp','blog'), 0));
182     $ADMIN->add('backups', $temp);
184 } // end of speedup