';
$lt = (empty($THEME->layouttable)) ? array('left', 'middle', 'right') : $THEME->layouttable;
foreach ($lt as $column) {
switch ($column) {
case 'left':
- echo '| ';
+ echo ' | ';
print_container_start();
blocks_print_group($PAGE, $pageblocks, BLOCK_POS_LEFT);
print_container_end();
@@ -138,22 +122,25 @@ if (!empty($SITE->fullname)) {
print_container_start();
echo '';
- if ($statusmsg != '') {
- notify ($statusmsg);
+ if ($errormsg !== '') {
+ notify ($errormsg);
+
+ } else if ($statusmsg !== '') {
+ notify ($statusmsg, 'notifysuccess');
}
// ---------------------------------------------------------------------------------------------------------------
echo '';
@@ -163,7 +150,7 @@ if (!empty($SITE->fullname)) {
break;
case 'right':
if (blocks_have_content($pageblocks, BLOCK_POS_RIGHT)) {
- echo ' | ';
+ echo ' | ';
print_container_start();
blocks_print_group($PAGE, $pageblocks, BLOCK_POS_RIGHT);
print_container_end();
diff --git a/admin/settings/appearance.php b/admin/settings/appearance.php
index a81b5219f77..f656f8b54f3 100644
--- a/admin/settings/appearance.php
+++ b/admin/settings/appearance.php
@@ -4,125 +4,87 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+ $ADMIN->add('appearance', new admin_category('themes', get_string('themes')));
+ // "themesettings" settingpage
+ $temp = new admin_settingpage('themesettings', get_string('themesettings', 'admin'));
+ $temp->add(new admin_setting_configtext('themelist', get_string('themelist', 'admin'), get_string('configthemelist','admin'), '', PARAM_NOTAGS));
+ $temp->add(new admin_setting_configcheckbox('allowuserthemes', get_string('allowuserthemes', 'admin'), get_string('configallowuserthemes', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('allowcoursethemes', get_string('allowcoursethemes', 'admin'), get_string('configallowcoursethemes', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('allowcategorythemes', get_string('allowcategorythemes', 'admin'), get_string('configallowcategorythemes', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('allowuserblockhiding', get_string('allowuserblockhiding', 'admin'), get_string('configallowuserblockhiding', 'admin'), 1));
+ $temp->add(new admin_setting_configcheckbox('showblocksonmodpages', get_string('showblocksonmodpages', 'admin'), get_string('configshowblocksonmodpages', 'admin'), 0));
+ $temp->add(new admin_setting_configselect('hideactivitytypenavlink', get_string('hideactivitytypenavlink', 'admin'), get_string('confighideactivitytypenavlink', 'admin'), 0,
+ array(
+ 0 => get_string('hidefromnone', 'admin'),
+ 1 => get_string('hidefromstudents', 'admin'),
+ 2 => get_string('hidefromall', 'admin')
+ )));
+ $ADMIN->add('themes', $temp);
+ $ADMIN->add('themes', new admin_externalpage('themeselector', get_string('themeselector','admin'), $CFG->wwwroot . '/theme/index.php'));
-$ADMIN->add('appearance', new admin_category('themes', get_string('themes')));
-// "themesettings" settingpage
-$temp = new admin_settingpage('themesettings', get_string('themesettings', 'admin'));
-$temp->add(new admin_setting_configtext('themelist', get_string('themelist', 'admin'), get_string('configthemelist','admin'), '', PARAM_NOTAGS));
-$temp->add(new admin_setting_configcheckbox('allowuserthemes', get_string('allowuserthemes', 'admin'), get_string('configallowuserthemes', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('allowcoursethemes', get_string('allowcoursethemes', 'admin'), get_string('configallowcoursethemes', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('allowcategorythemes', get_string('allowcategorythemes', 'admin'), get_string('configallowcategorythemes', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('allowuserblockhiding', get_string('allowuserblockhiding', 'admin'), get_string('configallowuserblockhiding', 'admin'), 1));
-$temp->add(new admin_setting_configcheckbox('showblocksonmodpages', get_string('showblocksonmodpages', 'admin'), get_string('configshowblocksonmodpages', 'admin'), 0));
-$temp->add(new admin_setting_configselect('hideactivitytypenavlink', get_string('hideactivitytypenavlink', 'admin'), get_string('confighideactivitytypenavlink', 'admin'), 0,
-array(
- 0 => get_string('hidefromnone', 'admin'),
- 1 => get_string('hidefromstudents', 'admin'),
- 2 => get_string('hidefromall', 'admin')
- )));
-$ADMIN->add('themes', $temp);
-$ADMIN->add('themes', new admin_externalpage('themeselector', get_string('themeselector','admin'), $CFG->wwwroot . '/theme/index.php'));
+ // calendar
+ $temp = new admin_settingpage('calendar', get_string('calendarsettings','admin'));
+ $temp->add(new admin_setting_special_adminseesall());
+ //this is hacky because we do not want to include the stuff from calendar/lib.php
+ $temp->add(new admin_setting_configselect('calendar_site_timeformat', get_string('pref_timeformat', 'calendar'),
+ get_string('explain_site_timeformat', 'calendar'), '0',
+ array('0' => get_string('default', 'calendar'),
+ '%I:%M %p' => get_string('timeformat_12', 'calendar'),
+ '%H:%M' => get_string('timeformat_24', 'calendar'))));
+ $temp->add(new admin_setting_configselect('calendar_startwday', get_string('configstartwday', 'admin'), get_string('helpstartofweek', 'admin'), 0,
+ array(
+ 0 => get_string('sunday', 'calendar'),
+ 1 => get_string('monday', 'calendar'),
+ 2 => get_string('tuesday', 'calendar'),
+ 3 => get_string('wednesday', 'calendar'),
+ 4 => get_string('thursday', 'calendar'),
+ 5 => get_string('friday', 'calendar'),
+ 6 => get_string('saturday', 'calendar')
+ )));
+ $temp->add(new admin_setting_special_calendar_weekend());
+ $temp->add(new admin_setting_configtext('calendar_lookahead',get_string('configlookahead','admin'),get_string('helpupcominglookahead', 'admin'),21,PARAM_INT));
+ $temp->add(new admin_setting_configtext('calendar_maxevents',get_string('configmaxevents','admin'),get_string('helpupcomingmaxevents', 'admin'),10,PARAM_INT));
+ $ADMIN->add('appearance', $temp);
-# for CALENDAR_TF_12 and CALENDAR_TF_24 ...
-require_once($CFG->dirroot . '/calendar/lib.php');
+ // "htmleditor" settingpage
+ $temp = new admin_settingpage('htmleditor', get_string('htmleditor', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('htmleditor', get_string('usehtmleditor', 'admin'), get_string('confightmleditor','admin'), 1));
+ $temp->add(new admin_setting_configtext('editorbackgroundcolor', get_string('editorbackgroundcolor', 'admin'), get_string('edhelpbgcolor'), '#ffffff', PARAM_NOTAGS));
+ $temp->add(new admin_setting_configtext('editorfontfamily', get_string('editorfontfamily', 'admin'), get_string('edhelpfontfamily'), 'Trebuchet MS,Verdana,Arial,Helvetica,sans-serif', PARAM_NOTAGS));
+ $temp->add(new admin_setting_configtext('editorfontsize', get_string('editorfontsize', 'admin'), get_string('edhelpfontsize'), '', PARAM_NOTAGS));
+ $temp->add(new admin_setting_special_editorfontlist());
+ $temp->add(new admin_setting_configcheckbox('editorkillword', get_string('editorkillword', 'admin'), get_string('edhelpcleanword'), 1));
+ if (!empty($CFG->aspellpath)) { // make aspell settings disappear if path isn't set
+ $temp->add(new admin_setting_configcheckbox('editorspelling', get_string('editorspelling', 'admin'), get_string('editorspellinghelp', 'admin'), 0));
+ $temp->add(new admin_setting_special_editordictionary());
+ }
+ $temp->add(new admin_setting_special_editorhidebuttons());
+ $temp->add(new admin_setting_emoticons());
+ $ADMIN->add('appearance', $temp);
-// calendar
-$temp = new admin_settingpage('calendar', get_string('calendarsettings','admin'));
-$temp->add(new admin_setting_special_adminseesall());
-$temp->add(new admin_setting_configselect('calendar_site_timeformat', get_string('pref_timeformat', 'calendar'), get_string('explain_site_timeformat', 'calendar'), '0',
-array( 0 => get_string('default', 'calendar'),
- CALENDAR_TF_12 => get_string('timeformat_12', 'calendar'),
- CALENDAR_TF_24 => get_string('timeformat_24', 'calendar')
- )));
-$temp->add(new admin_setting_configselect('calendar_startwday', get_string('configstartwday', 'admin'), get_string('helpstartofweek', 'admin'), 0,
-array(
- 0 => get_string('sunday', 'calendar'),
- 1 => get_string('monday', 'calendar'),
- 2 => get_string('tuesday', 'calendar'),
- 3 => get_string('wednesday', 'calendar'),
- 4 => get_string('thursday', 'calendar'),
- 5 => get_string('friday', 'calendar'),
- 6 => get_string('saturday', 'calendar')
- )));
-$temp->add(new admin_setting_special_calendar_weekend());
-$temp->add(new admin_setting_configtext('calendar_lookahead',get_string('configlookahead','admin'),get_string('helpupcominglookahead', 'admin'),21,PARAM_INT));
-$temp->add(new admin_setting_configtext('calendar_maxevents',get_string('configmaxevents','admin'),get_string('helpupcomingmaxevents', 'admin'),10,PARAM_INT));
-$ADMIN->add('appearance', $temp);
+ // "documentation" settingpage
+ $temp = new admin_settingpage('documentation', get_string('moodledocs'));
+ $temp->add(new admin_setting_configtext('docroot', get_string('docroot', 'admin'), get_string('configdocroot', 'admin'), 'http://docs.moodle.org', PARAM_URL));
+ $temp->add(new admin_setting_configcheckbox('doctonewwindow', get_string('doctonewwindow', 'admin'), get_string('configdoctonewwindow', 'admin'), 0));
+ $ADMIN->add('appearance', $temp);
-// "filtersettings" settingpage
-$temp = new admin_settingpage('filtersettings', get_string('filtersettings', 'admin'));
-$temp->add(new admin_setting_configselect('cachetext', get_string('cachetext', 'admin'), get_string('configcachetext', 'admin'), 60, array(604800 => get_string('numdays','',7),
- 86400 => get_string('numdays','',1),
- 43200 => get_string('numhours','',12),
- 10800 => get_string('numhours','',3),
- 7200 => get_string('numhours','',2),
- 3600 => get_string('numhours','',1),
- 2700 => get_string('numminutes','',45),
- 1800 => get_string('numminutes','',30),
- 900 => get_string('numminutes','',15),
- 600 => get_string('numminutes','',10),
- 540 => get_string('numminutes','',9),
- 480 => get_string('numminutes','',8),
- 420 => get_string('numminutes','',7),
- 360 => get_string('numminutes','',6),
- 300 => get_string('numminutes','',5),
- 240 => get_string('numminutes','',4),
- 180 => get_string('numminutes','',3),
- 120 => get_string('numminutes','',2),
- 60 => get_string('numminutes','',1),
- 30 => get_string('numseconds','',30),
- 0 => get_string('no'))));
-$temp->add(new admin_setting_configselect('filteruploadedfiles', get_string('filteruploadedfiles', 'admin'), get_string('configfilteruploadedfiles', 'admin'), 0, array('0' => get_string('none'),
- '1' => get_string('allfiles'),
- '2' => get_string('htmlfilesonly'))));
-$temp->add(new admin_setting_configcheckbox('filtermatchoneperpage', get_string('filtermatchoneperpage', 'admin'), get_string('configfiltermatchoneperpage', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('filtermatchonepertext', get_string('filtermatchonepertext', 'admin'), get_string('configfiltermatchonepertext', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('filterall', get_string('filterall', 'admin'), get_string('configfilterall', 'admin'), 0));
-$ADMIN->add('appearance', $temp);
+ $temp = new admin_settingpage('mymoodle', get_string('mymoodle', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('mymoodleredirect', get_string('mymoodleredirect', 'admin'), get_string('configmymoodleredirect', 'admin'), 0));
+ $ADMIN->add('appearance', $temp);
+ // new CFG variable for coursemanager (what roles to display)
+ $temp = new admin_settingpage('coursemanager', get_string('coursemanager', 'admin'));
+ $temp->add(new admin_setting_special_coursemanager());
+ $ADMIN->add('appearance', $temp);
+ $ADMIN->add('appearance', new admin_externalpage('stickyblocks', get_string('stickyblocks', 'admin'), "$CFG->wwwroot/$CFG->admin/stickyblocks.php"));
+ $temp = new admin_settingpage('ajax', get_string('ajaxuse'));
+ $temp->add(new admin_setting_configcheckbox('enableajax', get_string('enableajax', 'admin'), get_string('configenableajax', 'admin'), 0));
+ $ADMIN->add('appearance', $temp);
-
-// "htmleditor" settingpage
-$temp = new admin_settingpage('htmleditor', get_string('htmleditor', 'admin'));
-$temp->add(new admin_setting_configcheckbox('htmleditor', get_string('usehtmleditor', 'admin'), get_string('confightmleditor','admin'), 1));
-$temp->add(new admin_setting_configtext('editorbackgroundcolor', get_string('editorbackgroundcolor', 'admin'), get_string('edhelpbgcolor'), '#ffffff', PARAM_NOTAGS));
-$temp->add(new admin_setting_configtext('editorfontfamily', get_string('editorfontfamily', 'admin'), get_string('edhelpfontfamily'), 'Trebuchet MS,Verdana,Arial,Helvetica,sans-serif', PARAM_NOTAGS));
-$temp->add(new admin_setting_configtext('editorfontsize', get_string('editorfontsize', 'admin'), get_string('edhelpfontsize'), '', PARAM_NOTAGS));
-$temp->add(new admin_setting_special_editorfontlist());
-$temp->add(new admin_setting_configcheckbox('editorkillword', get_string('editorkillword', 'admin'), get_string('edhelpcleanword'), 1));
-if (!empty($CFG->aspellpath)) { // make aspell settings disappear if path isn't set
- $temp->add(new admin_setting_configcheckbox('editorspelling', get_string('editorspelling', 'admin'), get_string('editorspellinghelp', 'admin'), 0));
- $temp->add(new admin_setting_special_editordictionary());
-}
-$temp->add(new admin_setting_special_editorhidebuttons());
-$temp->add(new admin_setting_emoticons());
-$ADMIN->add('appearance', $temp);
-
-// "documentation" settingpage
-$temp = new admin_settingpage('documentation', get_string('moodledocs'));
-$temp->add(new admin_setting_configtext('docroot', get_string('docroot', 'admin'), get_string('configdocroot', 'admin'), 'http://docs.moodle.org', PARAM_URL));
-$temp->add(new admin_setting_configcheckbox('doctonewwindow', get_string('doctonewwindow', 'admin'), get_string('configdoctonewwindow', 'admin'), 0));
-$ADMIN->add('appearance', $temp);
-
-$temp = new admin_settingpage('mymoodle', get_string('mymoodle', 'admin'));
-$temp->add(new admin_setting_configcheckbox('mymoodleredirect', get_string('mymoodleredirect', 'admin'), get_string('configmymoodleredirect', 'admin'), 0));
-$ADMIN->add('appearance', $temp);
-
-// new CFG variable for coursemanager (what roles to display)
-$temp = new admin_settingpage('coursemanager', get_string('coursemanager', 'admin'));
-$temp->add(new admin_setting_special_coursemanager());
-$ADMIN->add('appearance', $temp);
-
-$ADMIN->add('appearance', new admin_externalpage('stickyblocks', get_string('stickyblocks', 'admin'), "$CFG->wwwroot/$CFG->admin/stickyblocks.php"));
-
-$temp = new admin_settingpage('ajax', get_string('ajaxuse'));
-$temp->add(new admin_setting_configcheckbox('enableajax', get_string('enableajax', 'admin'), get_string('configenableajax', 'admin'), 0));
-$ADMIN->add('appearance', $temp);
-
-// link to tag management interface
-$ADMIN->add('appearance', new admin_externalpage('managetags', get_string('managetags', 'tag'), "$CFG->wwwroot/tag/manage.php"));
+ // link to tag management interface
+ $ADMIN->add('appearance', new admin_externalpage('managetags', get_string('managetags', 'tag'), "$CFG->wwwroot/tag/manage.php"));
} // end of speedup
?>
diff --git a/admin/settings/courses.php b/admin/settings/courses.php
index c83e87b3060..e8f33b755f0 100644
--- a/admin/settings/courses.php
+++ b/admin/settings/courses.php
@@ -7,50 +7,56 @@ if ($hassiteconfig
or has_capability('moodle/category:update', $systemcontext)) { // speedup for non-admins, add all caps used on this page
-$ADMIN->add('courses', new admin_externalpage('coursemgmt', get_string('coursemgmt', 'admin'), $CFG->wwwroot . '/course/index.php?categoryedit=on','moodle/category:update'));
+ $ADMIN->add('courses', new admin_externalpage('coursemgmt', get_string('coursemgmt', 'admin'), $CFG->wwwroot . '/course/index.php?categoryedit=on','moodle/category:update'));
-$ADMIN->add('courses', new admin_externalpage('enrolment', get_string('enrolments'), $CFG->wwwroot . '/'.$CFG->admin.'/enrol.php'));
+ $ADMIN->add('courses', new admin_externalpage('enrolment', get_string('enrolments'), $CFG->wwwroot . '/'.$CFG->admin.'/enrol.php'));
-// "courserequests" settingpage
-$temp = new admin_settingpage('courserequest', get_string('courserequest'));
-$temp->add(new admin_setting_configcheckbox('enablecourserequests', get_string('enablecourserequests', 'admin'), get_string('configenablecourserequests', 'admin'), 0));
-require_once($CFG->dirroot.'/course/lib.php');
-$temp->add(new admin_setting_configselect('defaultrequestcategory', get_string('defaultrequestcategory', 'admin'), get_string('configdefaultrequestcategory', 'admin'), 1, make_categories_options()));
-$ADMIN->add('courses', $temp);
+ // "courserequests" settingpage
+ $temp = new admin_settingpage('courserequest', get_string('courserequest'));
+ $temp->add(new admin_setting_configcheckbox('enablecourserequests', get_string('enablecourserequests', 'admin'), get_string('configenablecourserequests', 'admin'), 0));
+ $temp->add(new admin_settings_coursecat_select('defaultrequestcategory', get_string('defaultrequestcategory', 'admin'), get_string('configdefaultrequestcategory', 'admin'), 1));
+ $ADMIN->add('courses', $temp);
+ // "backups" settingpage
+ if (!empty($CFG->backup_version)) {
+ $bi = array();
+ $bi[] = new admin_setting_configcheckbox('backup_sche_modules', get_string('includemodules'), get_string('backupincludemoduleshelp'), 0);
+ $bi[] = new admin_setting_configcheckbox('backup_sche_withuserdata', get_string('includemoduleuserdata'), get_string('backupincludemoduleuserdatahelp'), 0);
+ $bi[] = new admin_setting_configcheckbox('backup_sche_metacourse', get_string('metacourse'), get_string('backupmetacoursehelp'), 0);
+ $bi[] = new admin_setting_configselect('backup_sche_users', get_string('users'), get_string('backupusershelp'),
+ 0, array(0 => get_string('all'), 1 => get_string('course')));
+ $bi[] = new admin_setting_configcheckbox('backup_sche_logs', get_string('logs'), get_string('backuplogshelp'), 0);
+ $bi[] = new admin_setting_configcheckbox('backup_sche_userfiles', get_string('userfiles'), get_string('backupuserfileshelp'), 0);
+ $bi[] = new admin_setting_configcheckbox('backup_sche_coursefiles', get_string('coursefiles'), get_string('backupcoursefileshelp'), 0);
+ $bi[] = new admin_setting_configcheckbox('backup_sche_sitefiles', get_string('sitefiles'), get_string('backupsitefileshelp'), 0);
+ $bi[] = new admin_setting_configcheckbox('backup_sche_messages', get_string('messages', 'message'), get_string('backupmessageshelp','message'), 0);
+ $bi[] = new admin_setting_configselect('backup_sche_keep', get_string('keep'),
+ get_string('backupkeephelp'), 1, array(0 => get_string('all'), 1 => '1',
+ 2 => '2',
+ 5 => '5',
+ 10 => '10',
+ 20 => '20',
+ 30 => '30',
+ 40 => '40',
+ 50 => '50',
+ 100 => '100',
+ 200 => '200',
+ 300 => '300',
+ 400 => '400',
+ 500 => '500'));
+ $bi[] = new admin_setting_configcheckbox('backup_sche_active', get_string('active'), get_string('backupactivehelp'), 0);
+ $bi[] = new admin_setting_special_backupdays();
+ $bi[] = new admin_setting_configtime('backup_sche_hour', 'backup_sche_minute', get_string('executeat'),
+ get_string('backupexecuteathelp'), array('h' => 0, 'm' => 0));
+ $bi[] = new admin_setting_configdirectory('backup_sche_destination', get_string('saveto'), get_string('backupsavetohelp'), '');
-
-// "backups" settingpage
-$temp = new admin_settingpage('backups', get_string('backups','admin'),'moodle/site:backup');
-$temp->add(new admin_setting_backupcheckbox('backup_sche_modules', get_string('includemodules'), get_string('backupincludemoduleshelp'), 0));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_withuserdata', get_string('includemoduleuserdata'), get_string('backupincludemoduleuserdatahelp'), 0));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_metacourse', get_string('metacourse'), get_string('backupmetacoursehelp'), 0));
-$temp->add(new admin_setting_backupselect('backup_sche_users', get_string('users'), get_string('backupusershelp'), 0, array(0 => get_string('all'),
- 1 => get_string('course'))));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_logs', get_string('logs'), get_string('backuplogshelp'), 0));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_userfiles', get_string('userfiles'), get_string('backupuserfileshelp'), 0));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_coursefiles', get_string('coursefiles'), get_string('backupcoursefileshelp'), 0));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_sitefiles', get_string('sitefiles'), get_string('backupsitefileshelp'), 0));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_messages', get_string('messages', 'message'), get_string('backupmessageshelp','message'), 0));
-$temp->add(new admin_setting_backupselect('backup_sche_keep', get_string('keep'), get_string('backupkeephelp'), 1, array(0 => get_string('all'),
- 1 => '1',
- 2 => '2',
- 5 => '5',
- 10 => '10',
- 20 => '20',
- 30 => '30',
- 40 => '40',
- 50 => '50',
- 100 => '100',
- 200 => '200',
- 300 => '300',
- 400 => '400',
- 500 => '500')));
-$temp->add(new admin_setting_backupcheckbox('backup_sche_active', get_string('active'), get_string('backupactivehelp'), 0));
-$temp->add(new admin_setting_special_backupdays());
-$temp->add(new admin_setting_special_backuptime());
-$temp->add(new admin_setting_special_backupsaveto());
-$ADMIN->add('courses', $temp);
+ $temp = new admin_settingpage('backups', get_string('backups','admin'), 'moodle/site:backup');
+ foreach ($bi as $backupitem) {
+ $backupitem->plugin = 'backup';
+ $temp->add($backupitem);
+ }
+ $ADMIN->add('courses', $temp);
+ }
} // end of speedup
diff --git a/admin/settings/grades.php b/admin/settings/grades.php
index 3489bd07083..122d0690aaf 100644
--- a/admin/settings/grades.php
+++ b/admin/settings/grades.php
@@ -5,200 +5,187 @@
if (has_capability('moodle/grade:manage', $systemcontext)
or has_capability('moodle/grade:manageletters', $systemcontext)) { // speedup for non-admins, add all caps used on this page
-// General settings
+ // General settings
-require_once $CFG->libdir.'/grade/constants.php';
+ $temp = new admin_settingpage('gradessettings', get_string('generalsettings', 'grades'), 'moodle/grade:manage');
+ if ($ADMIN->fulltree) {
+ require_once $CFG->libdir.'/grade/constants.php';
-$temp = new admin_settingpage('gradessettings', get_string('generalsettings', 'grades'), 'moodle/grade:manage');
+ // new CFG variable for gradebook (what roles to display)
+ $temp->add(new admin_setting_special_gradebookroles());
-// new CFG variable for gradebook (what roles to display)
-$temp->add(new admin_setting_special_gradebookroles());
+ // enable outcomes checkbox
+ $temp->add(new admin_setting_configcheckbox('enableoutcomes', get_string('enableoutcomes', 'grades'), get_string('configenableoutcomes', 'grades'), 0, PARAM_INT));
-// enable outcomes checkbox
-$temp->add(new admin_setting_configcheckbox('enableoutcomes', get_string('enableoutcomes', 'grades'), get_string('configenableoutcomes', 'grades'), 0, PARAM_INT));
+ $temp->add(new admin_setting_grade_profilereport());
-$temp->add(new admin_setting_grade_profilereport());
+ $temp->add(new admin_setting_configselect('grade_aggregationposition', get_string('aggregationposition', 'grades'),
+ get_string('configaggregationposition', 'grades'), GRADE_REPORT_AGGREGATION_POSITION_LAST,
+ array(GRADE_REPORT_AGGREGATION_POSITION_FIRST => get_string('positionfirst', 'grades'),
+ GRADE_REPORT_AGGREGATION_POSITION_LAST => get_string('positionlast', 'grades'))));
-$temp->add(new admin_setting_configselect('grade_aggregationposition', get_string('aggregationposition', 'grades'),
- get_string('configaggregationposition', 'grades'), GRADE_REPORT_AGGREGATION_POSITION_LAST,
- array(GRADE_REPORT_AGGREGATION_POSITION_FIRST => get_string('positionfirst', 'grades'),
- GRADE_REPORT_AGGREGATION_POSITION_LAST => get_string('positionlast', 'grades'))));
+ $temp->add(new admin_setting_configcheckbox('grade_hiddenasdate', get_string('hiddenasdate', 'grades'), get_string('confighiddenasdate', 'grades'), 0, PARAM_INT));
-$temp->add(new admin_setting_configcheckbox('grade_hiddenasdate', get_string('hiddenasdate', 'grades'), get_string('confighiddenasdate', 'grades'), 0, PARAM_INT));
+ // enable publishing in exports/imports
+ $temp->add(new admin_setting_configcheckbox('gradepublishing', get_string('gradepublishing', 'grades'), get_string('configgradepublishing', 'grades'), 0, PARAM_INT));
-// enable publishing in exports/imports
-$temp->add(new admin_setting_configcheckbox('gradepublishing', get_string('gradepublishing', 'grades'), get_string('configgradepublishing', 'grades'), 0, PARAM_INT));
+ $temp->add(new admin_setting_configselect('grade_export_displaytype', get_string('gradeexportdisplaytype', 'grades'),
+ get_string('configgradeexportdisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL,
+ array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
+ GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
+ GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'))));
-$temp->add(new admin_setting_configselect('grade_export_displaytype', get_string('gradeexportdisplaytype', 'grades'),
- get_string('configgradeexportdisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL,
- array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
- GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'))));
+ $temp->add(new admin_setting_configselect('grade_export_decimalpoints', get_string('gradeexportdecimalpoints', 'grades'),
+ get_string('configexportdecimalpoints', 'grades'), 2,
+ array( '0' => '0',
+ '1' => '1',
+ '2' => '2',
+ '3' => '3',
+ '4' => '4',
+ '5' => '5')));
-$temp->add(new admin_setting_configselect('grade_export_decimalpoints', get_string('gradeexportdecimalpoints', 'grades'),
- get_string('configexportdecimalpoints', 'grades'), 2,
- array( '0' => '0',
- '1' => '1',
- '2' => '2',
- '3' => '3',
- '4' => '4',
- '5' => '5')));
-
-$temp->add(new admin_setting_special_gradeexport());
-$ADMIN->add('grades', $temp);
-
-/// Grade category settings
-$temp = new admin_settingpage('gradecategorysettings', get_string('gradecategorysettings', 'grades'), 'moodle/grade:manage');
-
-$temp->add(new admin_setting_configcheckbox('grade_hideforcedsettings', get_string('hideforcedsettings', 'grades'), get_string('confighideforcedsettings', 'grades'), 1, PARAM_INT));
-
-$strnoforce = get_string('noforce', 'grades');
-
-// Aggregation type
-$options = array(GRADE_AGGREGATE_MEAN =>get_string('aggregatemean', 'grades'),
- GRADE_AGGREGATE_WEIGHTED_MEAN =>get_string('aggregateweightedmean', 'grades'),
- GRADE_AGGREGATE_WEIGHTED_MEAN2 =>get_string('aggregateweightedmean2', 'grades'),
- GRADE_AGGREGATE_EXTRACREDIT_MEAN=>get_string('aggregateextracreditmean', 'grades'),
- GRADE_AGGREGATE_MEDIAN =>get_string('aggregatemedian', 'grades'),
- GRADE_AGGREGATE_MIN =>get_string('aggregatemin', 'grades'),
- GRADE_AGGREGATE_MAX =>get_string('aggregatemax', 'grades'),
- GRADE_AGGREGATE_MODE =>get_string('aggregatemode', 'grades'),
- GRADE_AGGREGATE_SUM =>get_string('aggregatesum', 'grades'));
-$defaults = array('value'=>GRADE_AGGREGATE_WEIGHTED_MEAN2, 'forced'=>false, 'adv'=>false);
-$temp->add(new admin_setting_gradecat_combo('grade_aggregation', get_string('aggregation', 'grades'), get_string('aggregationhelp', 'grades'), $defaults, $options));
-
-$options = array(0 => get_string('no'), 1 => get_string('yes'));
-
-$defaults = array('value'=>1, 'forced'=>false, 'adv'=>true);
-$temp->add(new admin_setting_gradecat_combo('grade_aggregateonlygraded', get_string('aggregateonlygraded', 'grades'),
- get_string('aggregateonlygradedhelp', 'grades'), $defaults, $options));
-$temp->add(new admin_setting_gradecat_combo('grade_aggregateoutcomes', get_string('aggregateoutcomes', 'grades'),
- get_string('aggregateoutcomeshelp', 'grades'), $defaults, $options));
-$temp->add(new admin_setting_gradecat_combo('grade_aggregatesubcats', get_string('aggregatesubcats', 'grades'),
- get_string('aggregatesubcatshelp', 'grades'), $defaults, $options));
-
-$options = array(0 => get_string('none'));
-for ($i=1; $i<=20; $i++) {
- $options[$i] = $i;
-}
-
-$defaults['value'] = 0;
-$defaults['forced'] = true;
-$temp->add(new admin_setting_gradecat_combo('grade_keephigh', get_string('keephigh', 'grades'),
- get_string('keephighhelp', 'grades'), $defaults, $options));
-$defaults['forced'] = false;
-$temp->add(new admin_setting_gradecat_combo('grade_droplow', get_string('droplow', 'grades'),
- get_string('droplowhelp', 'grades'), $defaults, $options));
-
-$ADMIN->add('grades', $temp);
-
-
-/// Grade item settings
-$temp = new admin_settingpage('gradeitemsettings', get_string('gradeitemsettings', 'grades'), 'moodle/grade:manage');
-
-
-$temp->add(new admin_setting_configselect('grade_displaytype', get_string('gradedisplaytype', 'grades'),
- get_string('configgradedisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL,
- array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
- GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
- GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'))));
-
-$temp->add(new admin_setting_configselect('grade_decimalpoints', get_string('decimalpoints', 'grades'),
- get_string('configdecimalpoints', 'grades'), 2,
- array( '0' => '0',
- '1' => '1',
- '2' => '2',
- '3' => '3',
- '4' => '4',
- '5' => '5')));
-
-$temp->add(new admin_setting_configmultiselect('grade_item_advanced', get_string('gradeitemadvanced', 'grades'), get_string('configgradeitemadvanced', 'grades'),
- array('iteminfo', 'idnumber', 'gradepass', 'plusfactor', 'multfactor', 'display', 'decimals', 'hiddenuntil', 'locktime'),
- array('iteminfo' => get_string('iteminfo', 'grades'),
- 'idnumber' => get_string('idnumber'),
- 'gradetype' => get_string('gradetype', 'grades'),
- 'scaleid' => get_string('scale'),
- 'grademin' => get_string('grademin', 'grades'),
- 'grademax' => get_string('grademax', 'grades'),
- 'gradepass' => get_string('gradepass', 'grades'),
- 'plusfactor' => get_string('plusfactor', 'grades'),
- 'multfactor' => get_string('multfactor', 'grades'),
- 'display' => get_string('gradedisplaytype', 'grades'),
- 'decimals' => get_string('decimalpoints', 'grades'),
- 'hidden' => get_string('hidden', 'grades'),
- 'hiddenuntil' => get_string('hiddenuntil', 'grades'),
- 'locked' => get_string('locked', 'grades'),
- 'locktime' => get_string('locktime', 'grades'),
- 'aggregationcoef' => get_string('aggregationcoef', 'grades'),
- 'parentcategory' => get_string('parentcategory', 'grades'))));
-
-$ADMIN->add('grades', $temp);
-
-
-/// Scales and outcomes
-
-$scales = new admin_externalpage('scales', get_string('scales'), $CFG->wwwroot.'/grade/edit/scale/index.php', 'moodle/grade:manage');
-$ADMIN->add('grades', $scales);
-$outcomes = new admin_externalpage('outcomes', get_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage');
-$ADMIN->add('grades', $outcomes);
-$letters = new admin_externalpage('letters', get_string('letters', 'grades'), $CFG->wwwroot.'/grade/edit/letter/edit.php', 'moodle/grade:manageletters');
-$ADMIN->add('grades', $letters);
-
-// The plugins must implement a settings.php file that adds their admin settings to the $settings object
-
-// Reports
-
-$first = true;
-foreach (get_list_of_plugins('grade/report') as $plugin) {
- // Include all the settings commands for this plugin if there are any
- if ($first) {
- $ADMIN->add('grades', new admin_category('gradereports', get_string('reportsettings', 'grades')));
- $first = false;
+ $temp->add(new admin_setting_special_gradeexport());
}
+ $ADMIN->add('grades', $temp);
- if (file_exists($CFG->dirroot.'/grade/report/'.$plugin.'/settings.php')) {
+ /// Grade category settings
+ $temp = new admin_settingpage('gradecategorysettings', get_string('gradecategorysettings', 'grades'), 'moodle/grade:manage');
+ if ($ADMIN->fulltree) {
+ $temp->add(new admin_setting_configcheckbox('grade_hideforcedsettings', get_string('hideforcedsettings', 'grades'), get_string('confighideforcedsettings', 'grades'), '1'));
- $settings = new admin_settingpage('gradereport'.$plugin, get_string('modulename', 'gradereport_'.$plugin), 'moodle/grade:manage');
- include($CFG->dirroot.'/grade/report/'.$plugin.'/settings.php');
- $ADMIN->add('gradereports', $settings);
- }
-}
+ $strnoforce = get_string('noforce', 'grades');
-// Imports
+ // Aggregation type
+ $options = array(GRADE_AGGREGATE_MEAN =>get_string('aggregatemean', 'grades'),
+ GRADE_AGGREGATE_WEIGHTED_MEAN =>get_string('aggregateweightedmean', 'grades'),
+ GRADE_AGGREGATE_WEIGHTED_MEAN2 =>get_string('aggregateweightedmean2', 'grades'),
+ GRADE_AGGREGATE_EXTRACREDIT_MEAN=>get_string('aggregateextracreditmean', 'grades'),
+ GRADE_AGGREGATE_MEDIAN =>get_string('aggregatemedian', 'grades'),
+ GRADE_AGGREGATE_MIN =>get_string('aggregatemin', 'grades'),
+ GRADE_AGGREGATE_MAX =>get_string('aggregatemax', 'grades'),
+ GRADE_AGGREGATE_MODE =>get_string('aggregatemode', 'grades'),
+ GRADE_AGGREGATE_SUM =>get_string('aggregatesum', 'grades'));
+ $defaults = array('value'=>GRADE_AGGREGATE_WEIGHTED_MEAN2, 'forced'=>false, 'adv'=>false);
+ $temp->add(new admin_setting_gradecat_combo('grade_aggregation', get_string('aggregation', 'grades'), get_string('aggregationhelp', 'grades'), $defaults, $options));
-$first = true;
-foreach (get_list_of_plugins('grade/import') as $plugin) {
+ $options = array(0 => get_string('no'), 1 => get_string('yes'));
- // Include all the settings commands for this plugin if there are any
- if (file_exists($CFG->dirroot.'/grade/import/'.$plugin.'/settings.php')) {
- if ($first) {
- $ADMIN->add('grades', new admin_category('gradeimports', get_string('imports')));
- $first = false;
+ $defaults = array('value'=>1, 'forced'=>false, 'adv'=>true);
+ $temp->add(new admin_setting_gradecat_combo('grade_aggregateonlygraded', get_string('aggregateonlygraded', 'grades'),
+ get_string('aggregateonlygradedhelp', 'grades'), $defaults, $options));
+ $temp->add(new admin_setting_gradecat_combo('grade_aggregateoutcomes', get_string('aggregateoutcomes', 'grades'),
+ get_string('aggregateoutcomeshelp', 'grades'), $defaults, $options));
+ $temp->add(new admin_setting_gradecat_combo('grade_aggregatesubcats', get_string('aggregatesubcats', 'grades'),
+ get_string('aggregatesubcatshelp', 'grades'), $defaults, $options));
+
+ $options = array(0 => get_string('none'));
+ for ($i=1; $i<=20; $i++) {
+ $options[$i] = $i;
}
- $settings = new admin_settingpage('gradeimport'.$plugin, get_string('modulename', 'gradeimport_'.$plugin), 'moodle/grade:manage');
- include($CFG->dirroot.'/grade/import/'.$plugin.'/settings.php');
- $ADMIN->add('gradeimports', $settings);
+ $defaults['value'] = 0;
+ $defaults['forced'] = true;
+ $temp->add(new admin_setting_gradecat_combo('grade_keephigh', get_string('keephigh', 'grades'),
+ get_string('keephighhelp', 'grades'), $defaults, $options));
+ $defaults['forced'] = false;
+ $temp->add(new admin_setting_gradecat_combo('grade_droplow', get_string('droplow', 'grades'),
+ get_string('droplowhelp', 'grades'), $defaults, $options));
}
-}
+ $ADMIN->add('grades', $temp);
-// Exports
+ /// Grade item settings
+ $temp = new admin_settingpage('gradeitemsettings', get_string('gradeitemsettings', 'grades'), 'moodle/grade:manage');
+ if ($ADMIN->fulltree) {
+ $temp->add(new admin_setting_configselect('grade_displaytype', get_string('gradedisplaytype', 'grades'),
+ get_string('configgradedisplaytype', 'grades'), GRADE_DISPLAY_TYPE_REAL,
+ array(GRADE_DISPLAY_TYPE_REAL => get_string('real', 'grades'),
+ GRADE_DISPLAY_TYPE_PERCENTAGE => get_string('percentage', 'grades'),
+ GRADE_DISPLAY_TYPE_LETTER => get_string('letter', 'grades'))));
-$first = true;
-foreach (get_list_of_plugins('grade/export') as $plugin) {
- // Include all the settings commands for this plugin if there are any
- if (file_exists($CFG->dirroot.'/grade/export/'.$plugin.'/settings.php')) {
- if ($first) {
- $ADMIN->add('grades', new admin_category('gradeexports', get_string('exports')));
- $first = false;
+ $temp->add(new admin_setting_configselect('grade_decimalpoints', get_string('decimalpoints', 'grades'),
+ get_string('configdecimalpoints', 'grades'), 2,
+ array( '0' => '0',
+ '1' => '1',
+ '2' => '2',
+ '3' => '3',
+ '4' => '4',
+ '5' => '5')));
+
+ $temp->add(new admin_setting_configmultiselect('grade_item_advanced', get_string('gradeitemadvanced', 'grades'), get_string('configgradeitemadvanced', 'grades'),
+ array('iteminfo', 'idnumber', 'gradepass', 'plusfactor', 'multfactor', 'display', 'decimals', 'hiddenuntil', 'locktime'),
+ array('iteminfo' => get_string('iteminfo', 'grades'),
+ 'idnumber' => get_string('idnumber'),
+ 'gradetype' => get_string('gradetype', 'grades'),
+ 'scaleid' => get_string('scale'),
+ 'grademin' => get_string('grademin', 'grades'),
+ 'grademax' => get_string('grademax', 'grades'),
+ 'gradepass' => get_string('gradepass', 'grades'),
+ 'plusfactor' => get_string('plusfactor', 'grades'),
+ 'multfactor' => get_string('multfactor', 'grades'),
+ 'display' => get_string('gradedisplaytype', 'grades'),
+ 'decimals' => get_string('decimalpoints', 'grades'),
+ 'hidden' => get_string('hidden', 'grades'),
+ 'hiddenuntil' => get_string('hiddenuntil', 'grades'),
+ 'locked' => get_string('locked', 'grades'),
+ 'locktime' => get_string('locktime', 'grades'),
+ 'aggregationcoef' => get_string('aggregationcoef', 'grades'),
+ 'parentcategory' => get_string('parentcategory', 'grades'))));
+ }
+ $ADMIN->add('grades', $temp);
+
+
+ /// Scales and outcomes
+
+ $scales = new admin_externalpage('scales', get_string('scales'), $CFG->wwwroot.'/grade/edit/scale/index.php', 'moodle/grade:manage');
+ $ADMIN->add('grades', $scales);
+ $outcomes = new admin_externalpage('outcomes', get_string('outcomes', 'grades'), $CFG->wwwroot.'/grade/edit/outcome/index.php', 'moodle/grade:manage');
+ $ADMIN->add('grades', $outcomes);
+ $letters = new admin_externalpage('letters', get_string('letters', 'grades'), $CFG->wwwroot.'/grade/edit/letter/edit.php', 'moodle/grade:manageletters');
+ $ADMIN->add('grades', $letters);
+
+ // The plugins must implement a settings.php file that adds their admin settings to the $settings object
+
+ // Reports
+ $ADMIN->add('grades', new admin_category('gradereports', get_string('reportsettings', 'grades')));
+ foreach (get_list_of_plugins('grade/report') as $plugin) {
+ // Include all the settings commands for this plugin if there are any
+ if (file_exists($CFG->dirroot.'/grade/report/'.$plugin.'/settings.php')) {
+ $settings = new admin_settingpage('gradereport'.$plugin, get_string('modulename', 'gradereport_'.$plugin), 'moodle/grade:manage');
+ if ($ADMIN->fulltree) {
+ include($CFG->dirroot.'/grade/report/'.$plugin.'/settings.php');
+ }
+ $ADMIN->add('gradereports', $settings);
+ }
+ }
+
+ // Imports
+ $ADMIN->add('grades', new admin_category('gradeimports', get_string('imports')));
+ foreach (get_list_of_plugins('grade/import') as $plugin) {
+
+ // Include all the settings commands for this plugin if there are any
+ if (file_exists($CFG->dirroot.'/grade/import/'.$plugin.'/settings.php')) {
+ $settings = new admin_settingpage('gradeimport'.$plugin, get_string('modulename', 'gradeimport_'.$plugin), 'moodle/grade:manage');
+ if ($ADMIN->fulltree) {
+ include($CFG->dirroot.'/grade/import/'.$plugin.'/settings.php');
+ }
+ $ADMIN->add('gradeimports', $settings);
+ }
+ }
+
+
+ // Exports
+ $ADMIN->add('grades', new admin_category('gradeexports', get_string('exports')));
+ foreach (get_list_of_plugins('grade/export') as $plugin) {
+ // Include all the settings commands for this plugin if there are any
+ if (file_exists($CFG->dirroot.'/grade/export/'.$plugin.'/settings.php')) {
+ $settings = new admin_settingpage('gradeexport'.$plugin, get_string('modulename', 'gradeexport_'.$plugin), 'moodle/grade:manage');
+ if ($ADMIN->fulltree) {
+ include($CFG->dirroot.'/grade/export/'.$plugin.'/settings.php');
+ }
+ $ADMIN->add('gradeexports', $settings);
}
-
- $settings = new admin_settingpage('gradeexport'.$plugin, get_string('modulename', 'gradeexport_'.$plugin), 'moodle/grade:manage');
- include($CFG->dirroot.'/grade/export/'.$plugin.'/settings.php');
- $ADMIN->add('gradeexports', $settings);
}
-}
} // end of speedup
diff --git a/admin/settings/language.php b/admin/settings/language.php
index 0eabf7412de..8c4055a2caa 100644
--- a/admin/settings/language.php
+++ b/admin/settings/language.php
@@ -4,24 +4,23 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+ // "languageandlocation" settingpage
+ $temp = new admin_settingpage('langsettings', get_string('languagesettings', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('autolang', get_string('autolang', 'admin'), get_string('configautolang', 'admin'), 1));
+ $temp->add(new admin_setting_configselect('lang', get_string('lang', 'admin'), get_string('configlang', 'admin'), current_language(), get_list_of_languages())); // $CFG->lang might be set in installer already, default en or en_utf8 is in setup.php
+ $temp->add(new admin_setting_configcheckbox('langmenu', get_string('langmenu', 'admin'), get_string('configlangmenu', 'admin'), 1));
+ $temp->add(new admin_setting_langlist());
+ $temp->add(new admin_setting_configcheckbox('langcache', get_string('langcache', 'admin'), get_string('configlangcache', 'admin'), 1));
+ $temp->add(new admin_setting_configtext('locale', get_string('localetext', 'admin'), get_string('configlocale', 'admin'), '', PARAM_FILE));
-// "languageandlocation" settingpage
-$temp = new admin_settingpage('langsettings', get_string('languagesettings', 'admin'));
-$temp->add(new admin_setting_configcheckbox('autolang', get_string('autolang', 'admin'), get_string('configautolang', 'admin'), 1));
-$temp->add(new admin_setting_configselect('lang', get_string('lang', 'admin'), get_string('configlang', 'admin'), current_language(), get_list_of_languages())); // $CFG->lang might be set in installer already, default en or en_utf8 is in setup.php
-$temp->add(new admin_setting_configcheckbox('langmenu', get_string('langmenu', 'admin'), get_string('configlangmenu', 'admin'), 1));
-$temp->add(new admin_setting_langlist());
-$temp->add(new admin_setting_configcheckbox('langcache', get_string('langcache', 'admin'), get_string('configlangcache', 'admin'), 1));
-$temp->add(new admin_setting_configtext('locale', get_string('localetext', 'admin'), get_string('configlocale', 'admin'), '', PARAM_FILE));
-
-// new CFG variable for excel encoding
-$temp->add(new admin_setting_configselect('latinexcelexport', get_string('latinexcelexport', 'admin'), get_string('configlatinexcelexport', 'admin'), '0', array('0'=>'Unicode','1'=>'Latin')));
+ // new CFG variable for excel encoding
+ $temp->add(new admin_setting_configselect('latinexcelexport', get_string('latinexcelexport', 'admin'), get_string('configlatinexcelexport', 'admin'), '0', array('0'=>'Unicode','1'=>'Latin')));
-$ADMIN->add('language', $temp);
+ $ADMIN->add('language', $temp);
-$ADMIN->add('language', new admin_externalpage('langedit', get_string('langedit', 'admin'), "$CFG->wwwroot/$CFG->admin/lang.php"));
-$ADMIN->add('language', new admin_externalpage('langimport', get_string('langpacks', 'admin'), "$CFG->wwwroot/$CFG->admin/langimport.php"));
+ $ADMIN->add('language', new admin_externalpage('langedit', get_string('langedit', 'admin'), "$CFG->wwwroot/$CFG->admin/lang.php"));
+ $ADMIN->add('language', new admin_externalpage('langimport', get_string('langpacks', 'admin'), "$CFG->wwwroot/$CFG->admin/langimport.php"));
} // end of speedup
diff --git a/admin/settings/location.php b/admin/settings/location.php
index a054ca53422..61fa0712084 100644
--- a/admin/settings/location.php
+++ b/admin/settings/location.php
@@ -2,30 +2,29 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+ // "locations" settingpage
+ $temp = new admin_settingpage('locationsettings', get_string('locationsettings', 'admin'));
+ $options = get_list_of_timezones();
+ $options[99] = get_string('serverlocaltime');
+ $temp->add(new admin_setting_configselect('timezone', get_string('timezone','admin'), get_string('configtimezone', 'admin'), 99, $options));
+ $options[99] = get_string('timezonenotforced', 'admin');
+ $temp->add(new admin_setting_configselect('forcetimezone', get_string('forcetimezone', 'admin'), get_string('helpforcetimezone', 'admin'), 99, $options));
+ $options = get_list_of_countries();
+ $options[0] = get_string('choose') .'...';
+ $temp->add(new admin_setting_configselect('country', get_string('country', 'admin'), get_string('configcountry', 'admin'), 0, $options));
-// "locations" settingpage
-$temp = new admin_settingpage('locationsettings', get_string('locationsettings', 'admin'));
-$options = get_list_of_timezones();
-$options[99] = get_string('serverlocaltime');
-$temp->add(new admin_setting_configselect('timezone', get_string('timezone','admin'), get_string('configtimezone', 'admin'), 99, $options));
-$options[99] = get_string('timezonenotforced', 'admin');
-$temp->add(new admin_setting_configselect('forcetimezone', get_string('forcetimezone', 'admin'), get_string('helpforcetimezone', 'admin'), 99, $options));
-$options = get_list_of_countries();
-$options[0] = get_string('choose') .'...';
-$temp->add(new admin_setting_configselect('country', get_string('country', 'admin'), get_string('configcountry', 'admin'), 0, $options));
-
-$iplookups = array();
-if ($plugins = get_list_of_plugins('iplookup')) {
- foreach ($plugins as $plugin) {
- $iplookups[$plugin] = $plugin;
+ $iplookups = array();
+ if ($plugins = get_list_of_plugins('iplookup')) {
+ foreach ($plugins as $plugin) {
+ $iplookups[$plugin] = $plugin;
+ }
}
-}
-$temp->add(new admin_setting_configselect('iplookup', get_string('iplookup', 'admin'), get_string('configiplookup', 'admin'), 'hostip', $iplookups));
+ $temp->add(new admin_setting_configselect('iplookup', get_string('iplookup', 'admin'), get_string('configiplookup', 'admin'), 'hostip', $iplookups));
-$ADMIN->add('location', $temp);
+ $ADMIN->add('location', $temp);
-$ADMIN->add('location', new admin_externalpage('timezoneimport', get_string('updatetimezones', 'admin'), "$CFG->wwwroot/$CFG->admin/timezoneimport.php"));
+ $ADMIN->add('location', new admin_externalpage('timezoneimport', get_string('updatetimezones', 'admin'), "$CFG->wwwroot/$CFG->admin/timezoneimport.php"));
} // end of speedup
diff --git a/admin/settings/misc.php b/admin/settings/misc.php
index bf2d04a719f..83861b0a8d2 100644
--- a/admin/settings/misc.php
+++ b/admin/settings/misc.php
@@ -4,25 +4,24 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
+ // Experimental settings page
+ $temp = new admin_settingpage('experimental', get_string('experimental', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('enableglobalsearch', get_string('enableglobalsearch', 'admin'), get_string('configenableglobalsearch', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('smartpix', get_string('smartpix', 'admin'), get_string('configsmartpix', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('enablehtmlpurifier', get_string('enablehtmlpurifier', 'admin'), get_string('configenablehtmlpurifier', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('enablegroupings', get_string('enablegroupings', 'admin'), get_string('configenablegroupings', 'admin'), 0));
-// Experimental settings page
-$temp = new admin_settingpage('experimental', get_string('experimental', 'admin'));
-$temp->add(new admin_setting_configcheckbox('enableglobalsearch', get_string('enableglobalsearch', 'admin'), get_string('configenableglobalsearch', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('smartpix', get_string('smartpix', 'admin'), get_string('configsmartpix', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('enablehtmlpurifier', get_string('enablehtmlpurifier', 'admin'), get_string('configenablehtmlpurifier', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('enablegroupings', get_string('enablegroupings', 'admin'), get_string('configenablegroupings', 'admin'), 0));
+ $ADMIN->add('misc', $temp);
-$ADMIN->add('misc', $temp);
-
-// XMLDB editor
-$ADMIN->add('misc', new admin_externalpage('xmldbeditor', get_string('xmldbeditor'), "$CFG->wwwroot/$CFG->admin/xmldb/"));
+ // XMLDB editor
+ $ADMIN->add('misc', new admin_externalpage('xmldbeditor', get_string('xmldbeditor'), "$CFG->wwwroot/$CFG->admin/xmldb/"));
-// hidden scripts linked from elsewhere
-$ADMIN->add('misc', new admin_externalpage('oacleanup', 'Online Assignment Cleanup', $CFG->wwwroot.'/'.$CFG->admin.'/oacleanup.php', 'moodle/site:config', true));
-$ADMIN->add('misc', new admin_externalpage('upgradeforumread', 'Upgrade forum', $CFG->wwwroot.'/'.$CFG->admin.'/upgradeforumread.php', 'moodle/site:config', true));
-$ADMIN->add('misc', new admin_externalpage('upgradelogs', 'Upgrade logs', $CFG->wwwroot.'/'.$CFG->admin.'/upgradelogs.php', 'moodle/site:config', true));
-$ADMIN->add('misc', new admin_externalpage('multilangupgrade', get_string('multilangupgrade', 'admin'), $CFG->wwwroot.'/'.$CFG->admin.'/multilangupgrade.php', 'moodle/site:config', !empty($CFG->filter_multilang_converted)));
+ // hidden scripts linked from elsewhere
+ $ADMIN->add('misc', new admin_externalpage('oacleanup', 'Online Assignment Cleanup', $CFG->wwwroot.'/'.$CFG->admin.'/oacleanup.php', 'moodle/site:config', true));
+ $ADMIN->add('misc', new admin_externalpage('upgradeforumread', 'Upgrade forum', $CFG->wwwroot.'/'.$CFG->admin.'/upgradeforumread.php', 'moodle/site:config', true));
+ $ADMIN->add('misc', new admin_externalpage('upgradelogs', 'Upgrade logs', $CFG->wwwroot.'/'.$CFG->admin.'/upgradelogs.php', 'moodle/site:config', true));
+ $ADMIN->add('misc', new admin_externalpage('multilangupgrade', get_string('multilangupgrade', 'admin'), $CFG->wwwroot.'/'.$CFG->admin.'/multilangupgrade.php', 'moodle/site:config', !empty($CFG->filter_multilang_converted)));
} // end of speedup
diff --git a/admin/settings/mnet.php b/admin/settings/mnet.php
index 66cbc8934b0..8db1cc02493 100644
--- a/admin/settings/mnet.php
+++ b/admin/settings/mnet.php
@@ -5,21 +5,21 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
-$ADMIN->add('mnet', new admin_externalpage('net', get_string('settings', 'mnet'),
- $CFG->wwwroot . '/admin/mnet/index.php',
+$ADMIN->add('mnet', new admin_externalpage('net', get_string('settings', 'mnet'),
+ "$CFG->wwwroot/$CFG->admin/mnet/index.php",
'moodle/site:config'));
-$ADMIN->add('mnet', new admin_externalpage('mnetpeers', get_string('mnetpeers', 'mnet'),
- $CFG->wwwroot . '/admin/mnet/peers.php',
+$ADMIN->add('mnet', new admin_externalpage('mnetpeers', get_string('mnetpeers', 'mnet'),
+ "$CFG->wwwroot/$CFG->admin/mnet/peers.php",
'moodle/site:config'));
$ADMIN->add('mnet', new admin_externalpage('ssoaccesscontrol', get_string('ssoaccesscontrol', 'mnet'),
- $CFG->wwwroot . '/admin/mnet/access_control.php',
+ "$CFG->wwwroot/$CFG->admin/mnet/access_control.php",
'moodle/site:config'));
-$ADMIN->add('mnet', new admin_externalpage('mnetenrol', get_string('mnetenrol', 'mnet'),
- $CFG->wwwroot . '/admin/mnet/enr_hosts.php',
+$ADMIN->add('mnet', new admin_externalpage('mnetenrol', get_string('mnetenrol', 'mnet'),
+ "$CFG->wwwroot/$CFG->admin/mnet/enr_hosts.php",
'moodle/site:config'));
-$ADMIN->add('mnet', new admin_externalpage('trustedhosts', get_string('trustedhosts', 'mnet'),
- $CFG->wwwroot . '/admin/mnet/trustedhosts.php',
+$ADMIN->add('mnet', new admin_externalpage('trustedhosts', get_string('trustedhosts', 'mnet'),
+ "$CFG->wwwroot/$CFG->admin/mnet/trustedhosts.php",
'moodle/site:config'));
} // end of speedup
diff --git a/admin/settings/plugins.php b/admin/settings/plugins.php
new file mode 100644
index 00000000000..061471217b5
--- /dev/null
+++ b/admin/settings/plugins.php
@@ -0,0 +1,140 @@
+add('modules', new admin_category('modsettings', get_string('activities')));
+ $ADMIN->add('modsettings', new admin_page_managemods());
+ if ($modules = get_records('modules')) {
+ $modulebyname = array();
+
+ foreach ($modules as $module) {
+ $strmodulename = get_string('modulename', $module->name);
+ // Deal with modules which are lacking the language string
+ if ($strmodulename == '[[modulename]]') {
+ $textlib = textlib_get_instance();
+ $strmodulename = $textlib->strtotitle($module->name);
+ }
+ $modulebyname[$strmodulename] = $module;
+ }
+ ksort($modulebyname);
+
+ foreach ($modulebyname as $strmodulename=>$module) {
+ $modulename = $module->name;
+ if (file_exists($CFG->dirroot.'/mod/'.$modulename.'/settings.php')) {
+ // do not show disabled modules in tree, keep only settings link on manage page
+ $settings = new admin_settingpage('modsetting'.$modulename, $strmodulename, 'moodle/site:config', !$module->visible);
+ if ($ADMIN->fulltree) {
+ include($CFG->dirroot.'/mod/'.$modulename.'/settings.php');
+ }
+ $ADMIN->add('modsettings', $settings);
+ } else if (file_exists($CFG->dirroot.'/mod/'.$modulename.'/config.html')) {
+ $ADMIN->add('modsettings', new admin_externalpage('modsetting'.$modulename, $strmodulename, "$CFG->wwwroot/$CFG->admin/module.php?module=$modulename", 'moodle/site:config', !$module->visible));
+ }
+ }
+ }
+
+
+ $ADMIN->add('modules', new admin_category('blocksettings', get_string('blocks')));
+ $ADMIN->add('blocksettings', new admin_page_manageblocks());
+ if (!empty($CFG->blocks_version) and $blocks = get_records('block')) {
+ $blockbyname = array();
+
+ foreach ($blocks as $block) {
+ $strblockname = get_string('blockname', 'block_'.$block->name);
+ // Deal with blocks which are lacking the language string
+ if ($strblockname == '[[blockname]]') {
+ $textlib = textlib_get_instance();
+ $strblockname = $textlib->strtotitle($block->name);
+ }
+ $blockbyname[$strblockname] = $block;
+ }
+ ksort($blockbyname);
+
+ foreach ($blockbyname as $strblockname=>$block) {
+ $blockname = $block->name;
+ if (file_exists($CFG->dirroot.'/blocks/'.$blockname.'/settings.php')) {
+ $settings = new admin_settingpage('blocksetting'.$blockname, $strblockname, 'moodle/site:config', !$block->visible);
+ if ($ADMIN->fulltree) {
+ include($CFG->dirroot.'/blocks/'.$blockname.'/settings.php');
+ }
+ $ADMIN->add('blocksettings', $settings);
+
+ } else if (file_exists($CFG->dirroot.'/blocks/'.$blockname.'/config_global.html')) {
+ $ADMIN->add('blocksettings', new admin_externalpage('blocksetting'.$blockname, $strblockname, "$CFG->wwwroot/$CFG->admin/block.php?block=$block->id", 'moodle/site:config', !$block->visible));
+ }
+ }
+ }
+
+ $ADMIN->add('modules', new admin_category('filtersettings', get_string('managefilters')));
+ // "filtersettings" settingpage
+ $temp = new admin_settingpage('managefilters', get_string('filtersettings', 'admin'));
+ if ($ADMIN->fulltree) {
+ $temp->add(new admin_setting_managefilters());
+ $temp->add(new admin_setting_heading('managefilterscommonheading', get_string('commonsettings', 'admin'), ''));
+ $temp->add(new admin_setting_configselect('cachetext', get_string('cachetext', 'admin'), get_string('configcachetext', 'admin'), 60, array(604800 => get_string('numdays','',7),
+ 86400 => get_string('numdays','',1),
+ 43200 => get_string('numhours','',12),
+ 10800 => get_string('numhours','',3),
+ 7200 => get_string('numhours','',2),
+ 3600 => get_string('numhours','',1),
+ 2700 => get_string('numminutes','',45),
+ 1800 => get_string('numminutes','',30),
+ 900 => get_string('numminutes','',15),
+ 600 => get_string('numminutes','',10),
+ 540 => get_string('numminutes','',9),
+ 480 => get_string('numminutes','',8),
+ 420 => get_string('numminutes','',7),
+ 360 => get_string('numminutes','',6),
+ 300 => get_string('numminutes','',5),
+ 240 => get_string('numminutes','',4),
+ 180 => get_string('numminutes','',3),
+ 120 => get_string('numminutes','',2),
+ 60 => get_string('numminutes','',1),
+ 30 => get_string('numseconds','',30),
+ 0 => get_string('no'))));
+ $temp->add(new admin_setting_configselect('filteruploadedfiles', get_string('filteruploadedfiles', 'admin'), get_string('configfilteruploadedfiles', 'admin'), 0, array('0' => get_string('none'),
+ '1' => get_string('allfiles'),
+ '2' => get_string('htmlfilesonly'))));
+ $temp->add(new admin_setting_configcheckbox('filtermatchoneperpage', get_string('filtermatchoneperpage', 'admin'), get_string('configfiltermatchoneperpage', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('filtermatchonepertext', get_string('filtermatchonepertext', 'admin'), get_string('configfiltermatchonepertext', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('filterall', get_string('filterall', 'admin'), get_string('configfilterall', 'admin'), 0));
+ }
+ $ADMIN->add('filtersettings', $temp);
+
+ if (empty($CFG->textfilters)) {
+ $activefilters = array();
+ } else {
+ $activefilters = explode(',', $CFG->textfilters);
+ }
+ $filterlocations = array('mod','filter');
+ foreach ($filterlocations as $filterlocation) {
+ $filters = get_list_of_plugins($filterlocation);
+
+ $filterbyname = array();
+
+ foreach ($filters as $filter) {
+ $strfiltername = get_string('filtername', $filter);
+ // Deal with filters which are lacking the language string
+ if ($strfiltername == '[[filtername]]') {
+ $textlib = textlib_get_instance();
+ $strfiltername = $textlib->strtotitle($filter);
+ }
+ $filterbyname[$strfiltername] = "$filterlocation/$filter";
+ }
+ ksort($filterbyname);
+
+ foreach ($filterbyname as $strfiltername=>$filterfull) {
+ if (file_exists("$CFG->dirroot/$filterfull/filtersettings.php")) {
+ $settings = new admin_settingpage('filtersetting'.str_replace('/', '', $filterfull), $strfiltername, 'moodle/site:config', !in_array($filterfull, $activefilters));
+ if ($ADMIN->fulltree) {
+ include("$CFG->dirroot/$filterfull/filtersettings.php");
+ }
+ $ADMIN->add('filtersettings', $settings);
+
+ } else if (file_exists("$CFG->dirroot/$filterfull/filterconfig.html")) {
+ $ADMIN->add('filtersettings', new admin_externalpage('filtersetting'.str_replace('/', '', $filterfull), $strfiltername, "$CFG->wwwroot/$CFG->admin/filter.php?filter=$filterfull", !in_array($filterfull, $activefilters)));
+ }
+ }
+ }
+}
+?>
diff --git a/admin/settings/security.php b/admin/settings/security.php
index 9c91e16d043..7120396a848 100644
--- a/admin/settings/security.php
+++ b/admin/settings/security.php
@@ -3,111 +3,111 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
-// "sitepolicies" settingpage
-$temp = new admin_settingpage('sitepolicies', get_string('sitepolicies', 'admin'));
-$temp->add(new admin_setting_configcheckbox('protectusernames', get_string('protectusernames', 'admin'), get_string('configprotectusernames', 'admin'), 1));
-$temp->add(new admin_setting_configcheckbox('forcelogin', get_string('forcelogin', 'admin'), get_string('configforcelogin', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('forceloginforprofiles', get_string('forceloginforprofiles', 'admin'), get_string('configforceloginforprofiles', 'admin'), 1));
-$temp->add(new admin_setting_configcheckbox('opentogoogle', get_string('opentogoogle', 'admin'), get_string('configopentogoogle', 'admin'), 0));
+ // "sitepolicies" settingpage
+ $temp = new admin_settingpage('sitepolicies', get_string('sitepolicies', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('protectusernames', get_string('protectusernames', 'admin'), get_string('configprotectusernames', 'admin'), 1));
+ $temp->add(new admin_setting_configcheckbox('forcelogin', get_string('forcelogin', 'admin'), get_string('configforcelogin', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('forceloginforprofiles', get_string('forceloginforprofiles', 'admin'), get_string('configforceloginforprofiles', 'admin'), 1));
+ $temp->add(new admin_setting_configcheckbox('opentogoogle', get_string('opentogoogle', 'admin'), get_string('configopentogoogle', 'admin'), 0));
-$max_upload_choices = get_max_upload_sizes();
-// maxbytes set to 0 will allow the maxium server lmit for uploads
-$max_upload_choices[0] = get_string('serverlimit', 'admin');
-$temp->add(new admin_setting_configselect('maxbytes', get_string('maxbytes', 'admin'), get_string('configmaxbytes', 'admin'), 0, $max_upload_choices));
+ $max_upload_choices = get_max_upload_sizes();
+ // maxbytes set to 0 will allow the maxium server lmit for uploads
+ $max_upload_choices[0] = get_string('serverlimit', 'admin');
+ $temp->add(new admin_setting_configselect('maxbytes', get_string('maxbytes', 'admin'), get_string('configmaxbytes', 'admin'), 0, $max_upload_choices));
-$temp->add(new admin_setting_configcheckbox('messaging', get_string('messaging', 'admin'), get_string('configmessaging','admin'), 1));
-$temp->add(new admin_setting_configcheckbox('allowobjectembed', get_string('allowobjectembed', 'admin'), get_string('configallowobjectembed', 'admin'), 0));
-$temp->add(new admin_setting_configcheckbox('enabletrusttext', get_string('enabletrusttext', 'admin'), get_string('configenabletrusttext', 'admin'), 0));
-$temp->add(new admin_setting_configselect('maxeditingtime', get_string('maxeditingtime','admin'), get_string('configmaxeditingtime','admin'), 1800,
- array(60 => get_string('numminutes', '', 1),
- 300 => get_string('numminutes', '', 5),
- 900 => get_string('numminutes', '', 15),
- 1800 => get_string('numminutes', '', 30),
- 2700 => get_string('numminutes', '', 45),
- 3600 => get_string('numminutes', '', 60))));
-$temp->add(new admin_setting_configselect('fullnamedisplay', get_string('fullnamedisplay', 'admin'), get_string('configfullnamedisplay', 'admin'),
- 'firstname lastname', array('language' => get_string('language'),
- 'firstname lastname' => get_string('firstname') . ' + ' . get_string('lastname'),
- 'lastname firstname' => get_string('lastname') . ' + ' . get_string('firstname'),
- 'firstname' => get_string('firstname'))));
-$temp->add(new admin_setting_configcheckbox('extendedusernamechars', get_string('extendedusernamechars', 'admin'), get_string('configextendedusernamechars', 'admin'), 0));
-$temp->add(new admin_setting_configtext('sitepolicy', get_string('sitepolicy', 'admin'), get_string('configsitepolicy', 'admin'), '', PARAM_RAW));
-$temp->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', 'admin'), get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'),
- 4 => get_string('siteblogs','blog'),
- 3 => get_string('courseblogs','blog'),
- 2 => get_string('groupblogs','blog'),
- 1 => get_string('personalblogs','blog'),
- 0 => get_string('disableblogs','blog'))));
-$temp->add(new admin_setting_configcheckbox('usetags', get_string('usetags','admin'),get_string('configusetags', 'admin'),'1'));
-$temp->add(new admin_setting_configcheckbox('keeptagnamecase', get_string('keeptagnamecase','admin'),get_string('configkeeptagnamecase', 'admin'),'0'));
-$temp->add(new admin_setting_configcheckbox('cronclionly', get_string('cronclionly', 'admin'), get_string('configcronclionly', 'admin'), 0));
-$temp->add(new admin_setting_configpasswordunmask('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), '', PARAM_RAW));
+ $temp->add(new admin_setting_configcheckbox('messaging', get_string('messaging', 'admin'), get_string('configmessaging','admin'), 1));
+ $temp->add(new admin_setting_configcheckbox('allowobjectembed', get_string('allowobjectembed', 'admin'), get_string('configallowobjectembed', 'admin'), 0));
+ $temp->add(new admin_setting_configcheckbox('enabletrusttext', get_string('enabletrusttext', 'admin'), get_string('configenabletrusttext', 'admin'), 0));
+ $temp->add(new admin_setting_configselect('maxeditingtime', get_string('maxeditingtime','admin'), get_string('configmaxeditingtime','admin'), 1800,
+ array(60 => get_string('numminutes', '', 1),
+ 300 => get_string('numminutes', '', 5),
+ 900 => get_string('numminutes', '', 15),
+ 1800 => get_string('numminutes', '', 30),
+ 2700 => get_string('numminutes', '', 45),
+ 3600 => get_string('numminutes', '', 60))));
+ $temp->add(new admin_setting_configselect('fullnamedisplay', get_string('fullnamedisplay', 'admin'), get_string('configfullnamedisplay', 'admin'),
+ 'firstname lastname', array('language' => get_string('language'),
+ 'firstname lastname' => get_string('firstname').' + '.get_string('lastname'),
+ 'lastname firstname' => get_string('lastname').' + '.get_string('firstname'),
+ 'firstname' => get_string('firstname'))));
+ $temp->add(new admin_setting_configcheckbox('extendedusernamechars', get_string('extendedusernamechars', 'admin'), get_string('configextendedusernamechars', 'admin'), 0));
+ $temp->add(new admin_setting_configtext('sitepolicy', get_string('sitepolicy', 'admin'), get_string('configsitepolicy', 'admin'), '', PARAM_RAW));
+ $temp->add(new admin_setting_configselect('bloglevel', get_string('bloglevel', 'admin'), get_string('configbloglevel', 'admin'), 4, array(5 => get_string('worldblogs','blog'),
+ 4 => get_string('siteblogs','blog'),
+ 3 => get_string('courseblogs','blog'),
+ 2 => get_string('groupblogs','blog'),
+ 1 => get_string('personalblogs','blog'),
+ 0 => get_string('disableblogs','blog'))));
+ $temp->add(new admin_setting_configcheckbox('usetags', get_string('usetags','admin'),get_string('configusetags', 'admin'),'1'));
+ $temp->add(new admin_setting_configcheckbox('keeptagnamecase', get_string('keeptagnamecase','admin'),get_string('configkeeptagnamecase', 'admin'),'0'));
+ $temp->add(new admin_setting_configcheckbox('cronclionly', get_string('cronclionly', 'admin'), get_string('configcronclionly', 'admin'), 0));
+ $temp->add(new admin_setting_configpasswordunmask('cronremotepassword', get_string('cronremotepassword', 'admin'), get_string('configcronremotepassword', 'admin'), ''));
-$temp->add(new admin_setting_configcheckbox('passwordpolicy', get_string('passwordpolicy', 'admin'), get_string('configpasswordpolicy', 'admin'), 0));
-$temp->add(new admin_setting_configtext('minpasswordlength', get_string('minpasswordlength', 'admin'), get_string('configminpasswordlength', 'admin'), 8, PARAM_INT));
-$temp->add(new admin_setting_configtext('minpassworddigits', get_string('minpassworddigits', 'admin'), get_string('configminpassworddigits', 'admin'), 1, PARAM_INT));
-$temp->add(new admin_setting_configtext('minpasswordlower', get_string('minpasswordlower', 'admin'), get_string('configminpasswordlower', 'admin'), 1, PARAM_INT));
-$temp->add(new admin_setting_configtext('minpasswordupper', get_string('minpasswordupper', 'admin'), get_string('configminpasswordupper', 'admin'), 1, PARAM_INT));
-$temp->add(new admin_setting_configtext('minpasswordnonalphanum', get_string('minpasswordnonalphanum', 'admin'), get_string('configminpasswordnonalphanum', 'admin'), 1, PARAM_INT));
-$temp->add(new admin_setting_configcheckbox('disableuserimages', get_string('disableuserimages', 'admin'), get_string('configdisableuserimages', 'admin'), 0));
-$ADMIN->add('security', $temp);
+ $temp->add(new admin_setting_configcheckbox('passwordpolicy', get_string('passwordpolicy', 'admin'), get_string('configpasswordpolicy', 'admin'), 0));
+ $temp->add(new admin_setting_configtext('minpasswordlength', get_string('minpasswordlength', 'admin'), get_string('configminpasswordlength', 'admin'), 8, PARAM_INT));
+ $temp->add(new admin_setting_configtext('minpassworddigits', get_string('minpassworddigits', 'admin'), get_string('configminpassworddigits', 'admin'), 1, PARAM_INT));
+ $temp->add(new admin_setting_configtext('minpasswordlower', get_string('minpasswordlower', 'admin'), get_string('configminpasswordlower', 'admin'), 1, PARAM_INT));
+ $temp->add(new admin_setting_configtext('minpasswordupper', get_string('minpasswordupper', 'admin'), get_string('configminpasswordupper', 'admin'), 1, PARAM_INT));
+ $temp->add(new admin_setting_configtext('minpasswordnonalphanum', get_string('minpasswordnonalphanum', 'admin'), get_string('configminpasswordnonalphanum', 'admin'), 1, PARAM_INT));
+ $temp->add(new admin_setting_configcheckbox('disableuserimages', get_string('disableuserimages', 'admin'), get_string('configdisableuserimages', 'admin'), 0));
+ $ADMIN->add('security', $temp);
-// "httpsecurity" settingpage
-$temp = new admin_settingpage('httpsecurity', get_string('httpsecurity', 'admin'));
-$temp->add(new admin_setting_configcheckbox('loginhttps', get_string('loginhttps', 'admin'), get_string('configloginhttps', 'admin'), 0));
-$ADMIN->add('security', $temp);
+ // "httpsecurity" settingpage
+ $temp = new admin_settingpage('httpsecurity', get_string('httpsecurity', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('loginhttps', get_string('loginhttps', 'admin'), get_string('configloginhttps', 'admin'), 0));
+ $ADMIN->add('security', $temp);
-// "modulesecurity" settingpage
-$temp = new admin_settingpage('modulesecurity', get_string('modulesecurity', 'admin'));
-$temp->add(new admin_setting_configselect('restrictmodulesfor', get_string('restrictmodulesfor', 'admin'), get_string('configrestrictmodulesfor', 'admin'), 'none', array('none' => 'No courses',
- 'all' => 'All courses',
- 'requested' => 'Requested courses')));
-$temp->add(new admin_setting_configcheckbox('restrictbydefault', get_string('restrictbydefault', 'admin'), get_string('configrestrictbydefault', 'admin'), 0));
-if (!$options = get_records("modules")) {
+ // "modulesecurity" settingpage
+ $temp = new admin_settingpage('modulesecurity', get_string('modulesecurity', 'admin'));
+ $temp->add(new admin_setting_configselect('restrictmodulesfor', get_string('restrictmodulesfor', 'admin'), get_string('configrestrictmodulesfor', 'admin'), 'none', array('none' => 'No courses',
+ 'all' => 'All courses',
+ 'requested' => 'Requested courses')));
+ $temp->add(new admin_setting_configcheckbox('restrictbydefault', get_string('restrictbydefault', 'admin'), get_string('configrestrictbydefault', 'admin'), 0));
+ if (!$options = get_records("modules")) {
+ $options = array();
+ }
+ $options2 = array();
+ foreach ($options as $option) {
+ $options2[$option->id] = $option->name;
+ }
+ $temp->add(new admin_setting_configmultiselect('defaultallowedmodules', get_string('defaultallowedmodules', 'admin'), get_string('configdefaultallowedmodules', 'admin'), array(), $options2));
+ $ADMIN->add('security', $temp);
+
+
+
+ // "notifications" settingpage
+ $temp = new admin_settingpage('notifications', get_string('notifications', 'admin'));
+ $temp->add(new admin_setting_configselect('displayloginfailures', get_string('displayloginfailures', 'admin'), get_string('configdisplayloginfailures', 'admin'), '', array('' => get_string('nobody'),
+ 'admin' => get_string('administrators'),
+ 'teacher' => get_string('administratorsandteachers'),
+ 'everybody' => get_string('everybody'))));
+ $temp->add(new admin_setting_configselect('notifyloginfailures', get_string('notifyloginfailures', 'admin'), get_string('confignotifyloginfailures', 'admin'), '', array('' => get_string('nobody'),
+ 'mainadmin' => get_string('administrator'),
+ 'alladmins' => get_string('administratorsall'))));
$options = array();
-}
-$options2 = array();
-foreach ($options as $option) {
- $options2[$option->id] = $option->name;
-}
-$temp->add(new admin_setting_configmultiselect('defaultallowedmodules', get_string('defaultallowedmodules', 'admin'), get_string('configdefaultallowedmodules', 'admin'), array(), $options2));
-$ADMIN->add('security', $temp);
-
-
-
-// "notifications" settingpage
-$temp = new admin_settingpage('notifications', get_string('notifications', 'admin'));
-$temp->add(new admin_setting_configselect('displayloginfailures', get_string('displayloginfailures', 'admin'), get_string('configdisplayloginfailures', 'admin'), '', array('' => get_string('nobody'),
- 'admin' => get_string('administrators'),
- 'teacher' => get_string('administratorsandteachers'),
- 'everybody' => get_string('everybody'))));
-$temp->add(new admin_setting_configselect('notifyloginfailures', get_string('notifyloginfailures', 'admin'), get_string('confignotifyloginfailures', 'admin'), '', array('' => get_string('nobody'),
- 'mainadmin' => get_string('administrator'),
- 'alladmins' => get_string('administratorsall'))));
-$options = array();
-for ($i = 1; $i <= 100; $i++) {
- $options[$i] = $i;
-}
-$temp->add(new admin_setting_configselect('notifyloginthreshold', get_string('notifyloginthreshold', 'admin'), get_string('confignotifyloginthreshold', 'admin'), '10', $options));
-$ADMIN->add('security', $temp);
+ for ($i = 1; $i <= 100; $i++) {
+ $options[$i] = $i;
+ }
+ $temp->add(new admin_setting_configselect('notifyloginthreshold', get_string('notifyloginthreshold', 'admin'), get_string('confignotifyloginthreshold', 'admin'), '10', $options));
+ $ADMIN->add('security', $temp);
-// "antivirus" settingpage
-$temp = new admin_settingpage('antivirus', get_string('antivirus', 'admin'));
-$temp->add(new admin_setting_configcheckbox('runclamonupload', get_string('runclamavonupload', 'admin'), get_string('configrunclamavonupload', 'admin'), 0));
-$temp->add(new admin_setting_configtext('pathtoclam', get_string('pathtoclam', 'admin'), get_string('configpathtoclam', 'admin'), '', PARAM_RAW)); // TODO: add path validation
-$temp->add(new admin_setting_configtext('quarantinedir', get_string('quarantinedir', 'admin'), get_string('configquarantinedir', 'admin'), '', PARAM_RAW)); // TODO: add path validation
-$temp->add(new admin_setting_configselect('clamfailureonupload', get_string('clamfailureonupload', 'admin'), get_string('configclamfailureonupload', 'admin'), 'donothing', array('donothing' => get_string('configclamdonothing', 'admin'),
- 'actlikevirus' => get_string('configclamactlikevirus', 'admin'))));
-$ADMIN->add('security', $temp);
+ // "antivirus" settingpage
+ $temp = new admin_settingpage('antivirus', get_string('antivirus', 'admin'));
+ $temp->add(new admin_setting_configcheckbox('runclamonupload', get_string('runclamavonupload', 'admin'), get_string('configrunclamavonupload', 'admin'), 0));
+ $temp->add(new admin_setting_configexecutable('pathtoclam', get_string('pathtoclam', 'admin'), get_string('configpathtoclam', 'admin'), ''));
+ $temp->add(new admin_setting_configdirectory('quarantinedir', get_string('quarantinedir', 'admin'), get_string('configquarantinedir', 'admin'), ''));
+ $temp->add(new admin_setting_configselect('clamfailureonupload', get_string('clamfailureonupload', 'admin'), get_string('configclamfailureonupload', 'admin'), 'donothing', array('donothing' => get_string('configclamdonothing', 'admin'),
+ 'actlikevirus' => get_string('configclamactlikevirus', 'admin'))));
+ $ADMIN->add('security', $temp);
} // end of speedup
diff --git a/admin/settings/server.php b/admin/settings/server.php
index 278596a8018..f0bc9f0402e 100644
--- a/admin/settings/server.php
+++ b/admin/settings/server.php
@@ -10,10 +10,10 @@ $temp = new admin_settingpage('systempaths', get_string('systempaths','admin'));
$temp->add(new admin_setting_configselect('gdversion', get_string('gdversion','admin'), get_string('configgdversion', 'admin'), check_gd_version(), array('0' => get_string('gdnot'),
'1' => get_string('gd1'),
'2' => get_string('gd2'))));
-$temp->add(new admin_setting_configtext('zip', get_string('pathtozip','admin'), get_string('configzip', 'admin'), '', PARAM_RAW)); // TODO: add path validation
-$temp->add(new admin_setting_configtext('unzip', get_string('pathtounzip','admin'), get_string('configunzip', 'admin'), '', PARAM_RAW)); // TODO: add path validation
-$temp->add(new admin_setting_configtext('pathtodu', get_string('pathtodu', 'admin'), get_string('configpathtodu', 'admin'), '', PARAM_RAW)); // TODO: add path validation
-$temp->add(new admin_setting_configtext('aspellpath', get_string('aspellpath', 'admin'), get_string('edhelpaspellpath'), '', PARAM_RAW)); // TODO: add path validation
+$temp->add(new admin_setting_configexecutable('zip', get_string('pathtozip','admin'), get_string('configzip', 'admin'), ''));
+$temp->add(new admin_setting_configexecutable('unzip', get_string('pathtounzip','admin'), get_string('configunzip', 'admin'), ''));
+$temp->add(new admin_setting_configexecutable('pathtodu', get_string('pathtodu', 'admin'), get_string('configpathtodu', 'admin'), ''));
+$temp->add(new admin_setting_configexecutable('aspellpath', get_string('aspellpath', 'admin'), get_string('edhelpaspellpath'), ''));
$ADMIN->add('server', $temp, 0);
@@ -22,10 +22,8 @@ $ADMIN->add('server', $temp, 0);
$temp = new admin_settingpage('mail', get_string('mail','admin'));
$temp->add(new admin_setting_configtext('smtphosts', get_string('smtphosts', 'admin'), get_string('configsmtphosts', 'admin'), '', PARAM_HOST));
$temp->add(new admin_setting_configtext('smtpuser', get_string('smtpuser', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_NOTAGS));
-$temp->add(new admin_setting_configpasswordunmask('smtppass', get_string('smtppass', 'admin'), get_string('configsmtpuser', 'admin'), '', PARAM_RAW));
+$temp->add(new admin_setting_configpasswordunmask('smtppass', get_string('smtppass', 'admin'), get_string('configsmtpuser', 'admin'), ''));
$temp->add(new admin_setting_configtext('noreplyaddress', get_string('noreplyaddress', 'admin'), get_string('confignoreplyaddress', 'admin'), 'noreply@' . $_SERVER['HTTP_HOST'], PARAM_NOTAGS));
-$temp->add(new admin_setting_configtext('allowemailaddresses', get_string('allowemailaddresses', 'admin'), get_string('configallowemailaddresses', 'admin'), '', PARAM_NOTAGS));
-$temp->add(new admin_setting_configtext('denyemailaddresses', get_string('denyemailaddresses', 'admin'), get_string('configdenyemailaddresses', 'admin'), '', PARAM_NOTAGS));
$temp->add(new admin_setting_configselect('digestmailtime', get_string('digestmailtime', 'admin'), get_string('configdigestmailtime', 'admin'), 17, array('00' => '00',
'01' => '01',
'02' => '02',
@@ -55,7 +53,7 @@ unset($charsets['UTF-8']); // not needed here
$options = array();
$options['0'] = get_string('none');
$options = array_merge($options, $charsets);
-$temp->add(new admin_setting_configselect('sitemailcharset', get_string('sitemailcharset', 'admin'), get_string('configsitemailcharset','admin'), '', $options));
+$temp->add(new admin_setting_configselect('sitemailcharset', get_string('sitemailcharset', 'admin'), get_string('configsitemailcharset','admin'), '0', $options));
$temp->add(new admin_setting_configcheckbox('allowusermailcharset', get_string('allowusermailcharset', 'admin'), get_string('configallowusermailcharset', 'admin'), 0));
$options = array('LF'=>'LF', 'CRLF'=>'CRLF');
$temp->add(new admin_setting_configselect('mailnewline', get_string('mailnewline', 'admin'), get_string('configmailnewline','admin'), 'LF', $options));
@@ -63,7 +61,7 @@ if (isloggedin()) {
global $USER;
$primaryadminemail = $USER->email;
$primaryadminname = fullname($USER, true);
-
+
} else {
// no defaults during installation - admin user must be created first
$primaryadminemail = NULL;
@@ -103,10 +101,10 @@ $ADMIN->add('server', $temp);
// "debugging" settingpage
$temp = new admin_settingpage('debugging', get_string('debugging', 'admin'));
$temp->add(new admin_setting_special_debug());
-$temp->add(new admin_setting_special_debugdisplay());
+$temp->add(new admin_setting_configcheckbox('debugdisplay', get_string('debugdisplay', 'admin'), get_string('configdebugdisplay', 'admin'), ini_get('display_errors')));
$temp->add(new admin_setting_configcheckbox('xmlstrictheaders', get_string('xmlstrictheaders', 'admin'), get_string('configxmlstrictheaders', 'admin'), 0));
$temp->add(new admin_setting_configcheckbox('debugsmtp', get_string('debugsmtp', 'admin'), get_string('configdebugsmtp', 'admin'), 0));
-$temp->add(new admin_setting_special_perfdebug());
+$temp->add(new admin_setting_configcheckbox('perfdebug', get_string('perfdebug', 'admin'), get_string('configperfdebug', 'admin'), '7', '15', '7'));
$ADMIN->add('server', $temp);
@@ -209,16 +207,16 @@ $ADMIN->add('server', new admin_externalpage('phpinfo', get_string('phpinfo'), "
// "performance" settingpage
$temp = new admin_settingpage('performance', get_string('performance', 'admin'));
-$temp->add(new admin_setting_configselect('cachetype', get_string('cachetype', 'admin'),
- get_string('configcachetype', 'admin'), '',
- array( '' => get_string('none'),
- 'internal' => 'internal',
- 'memcached' => 'memcached',
+$temp->add(new admin_setting_configselect('cachetype', get_string('cachetype', 'admin'),
+ get_string('configcachetype', 'admin'), '',
+ array( '' => get_string('none'),
+ 'internal' => 'internal',
+ 'memcached' => 'memcached',
'eaccelerator' => 'eaccelerator')));
// NOTE: $CFG->rcache is forced to bool in lib/setup.php
$temp->add(new admin_setting_configselect('rcache', get_string('rcache', 'admin'),
- get_string('configrcache', 'admin'), 0,
- array( '0' => get_string('no'),
+ get_string('configrcache', 'admin'), 0,
+ array( '0' => get_string('no'),
'1' => get_string('yes'))));
$temp->add(new admin_setting_configtext('rcachettl', get_string('rcachettl', 'admin'),
get_string('configrcachettl', 'admin'), 10));
@@ -227,8 +225,8 @@ $temp->add(new admin_setting_configtext('intcachemax', get_string('intcachemax',
$temp->add(new admin_setting_configtext('memcachedhosts', get_string('memcachedhosts', 'admin'),
get_string('configmemcachedhosts', 'admin'), ''));
$temp->add(new admin_setting_configselect('memcachedpconn', get_string('memcachedpconn', 'admin'),
- get_string('configmemcachedpconn', 'admin'), 0,
- array( '0' => get_string('no'),
+ get_string('configmemcachedpconn', 'admin'), 0,
+ array( '0' => get_string('no'),
'1' => get_string('yes'))));
$ADMIN->add('server', $temp);
diff --git a/admin/settings/top.php b/admin/settings/top.php
index 5e72efdc5e6..de1717b4173 100644
--- a/admin/settings/top.php
+++ b/admin/settings/top.php
@@ -18,9 +18,6 @@ $ADMIN->add('root', new admin_externalpage('adminnotifications', get_string('not
// hidden upgrade script
$ADMIN->add('root', new admin_externalpage('upgradesettings', get_string('upgradesettings', 'admin'), "$CFG->wwwroot/$CFG->admin/upgradesettings.php", 'moodle/site:config', true));
-// hidden search script
-$ADMIN->add('root', new admin_externalpage('search', get_string('search', 'admin'), "$CFG->wwwroot/$CFG->admin/search.php", 'moodle/site:config', true));
-
$ADMIN->add('root', new admin_category('users', get_string('users','admin')));
$ADMIN->add('root', new admin_category('courses', get_string('courses','admin')));
$ADMIN->add('root', new admin_category('grades', get_string('grades')));
@@ -28,9 +25,6 @@ $ADMIN->add('root', new admin_category('location', get_string('location','admin'
$ADMIN->add('root', new admin_category('language', get_string('language')));
$ADMIN->add('root', new admin_category('modules', get_string('plugins', 'admin')));
-$ADMIN->add('modules', new admin_externalpage('managemodules', get_string('activities'), "$CFG->wwwroot/$CFG->admin/modules.php"));
-$ADMIN->add('modules', new admin_externalpage('manageblocks', get_string('blocks'), "$CFG->wwwroot/$CFG->admin/blocks.php"));
-$ADMIN->add('modules', new admin_externalpage('managefilters', get_string('managefilters'), "$CFG->wwwroot/$CFG->admin/filters.php"));
$ADMIN->add('root', new admin_category('security', get_string('security','admin')));
$ADMIN->add('root', new admin_category('appearance', get_string('appearance','admin')));
@@ -57,4 +51,7 @@ $ADMIN->add('root', new admin_category('misc', get_string('miscellaneous')));
// hidden unsupported category
$ADMIN->add('root', new admin_category('unsupported', get_string('unsupported', 'admin'), true));
+// hidden search script
+$ADMIN->add('root', new admin_externalpage('search', get_string('searchresults'), "$CFG->wwwroot/$CFG->admin/search.php", 'moodle/site:config', true));
+
?>
diff --git a/admin/settings/unsupported.php b/admin/settings/unsupported.php
index f0170f15bb4..5c037ab66f3 100644
--- a/admin/settings/unsupported.php
+++ b/admin/settings/unsupported.php
@@ -4,10 +4,10 @@
if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
-$ADMIN->add('unsupported', new admin_externalpage('purgemoodledata', 'Purge moodledata', $CFG->wwwroot.'/'.$CFG->admin.'/delete.php'));
-$ADMIN->add('unsupported', new admin_externalpage('healthcenter', get_string('healthcenter'), $CFG->wwwroot.'/'.$CFG->admin.'/health.php'));
-$ADMIN->add('unsupported', new admin_externalpage('toinodb', 'Convert to InnoDB', $CFG->wwwroot.'/'.$CFG->admin.'/innodb.php'));
-$ADMIN->add('unsupported', new admin_externalpage('replace', 'Search and replace', $CFG->wwwroot.'/'.$CFG->admin.'/replace.php'));
+ $ADMIN->add('unsupported', new admin_externalpage('purgemoodledata', 'Purge moodledata', $CFG->wwwroot.'/'.$CFG->admin.'/delete.php'));
+ $ADMIN->add('unsupported', new admin_externalpage('healthcenter', get_string('healthcenter'), $CFG->wwwroot.'/'.$CFG->admin.'/health.php'));
+ $ADMIN->add('unsupported', new admin_externalpage('toinodb', 'Convert to InnoDB', $CFG->wwwroot.'/'.$CFG->admin.'/innodb.php'));
+ $ADMIN->add('unsupported', new admin_externalpage('replace', 'Search and replace', $CFG->wwwroot.'/'.$CFG->admin.'/replace.php'));
} // end of speedup
diff --git a/admin/settings/users.php b/admin/settings/users.php
index 5ad2d7daa5a..cd3060dcf3d 100644
--- a/admin/settings/users.php
+++ b/admin/settings/users.php
@@ -9,108 +9,151 @@ if ($hassiteconfig
or has_capability('moodle/user:delete', $systemcontext)) { // speedup for non-admins, add all caps used on this page
-$ADMIN->add('users', new admin_externalpage('userauthentication', get_string('authentication','admin'), "$CFG->wwwroot/$CFG->admin/auth.php"));
+ $ADMIN->add('users', new admin_category('authsettings', get_string('authentication','admin')));
+
+ $temp = new admin_settingpage('manageauths', get_string('authsettings', 'admin'));
+ $temp->add(new admin_setting_manageauths());
+ $temp->add(new admin_setting_heading('manageauthscommonheading', get_string('commonsettings', 'admin'), ''));
+ $temp->add(new admin_setting_special_registerauth());
+ $temp->add(new admin_setting_configselect('guestloginbutton', get_string('guestloginbutton', 'auth'),
+ get_string('showguestlogin', 'auth'), '1', array('0'=>get_string('hide'), '1'=>get_string('show'))));
+ $temp->add(new admin_setting_configtext('alternateloginurl', get_string('alternateloginurl', 'auth'),
+ get_string('alternatelogin', 'auth', htmlspecialchars($CFG->wwwroot.'/login/index.php')), ''));
+ $temp->add(new admin_setting_configtext('forgottenpasswordurl', get_string('forgottenpasswordurl', 'auth'),
+ get_string('forgottenpassword', 'auth'), ''));
+ $temp->add(new admin_setting_configtextarea('auth_instructions', get_string('instructions', 'auth'),
+ get_string('authinstructions', 'auth'), ''));
+ $temp->add(new admin_setting_configtext('allowemailaddresses', get_string('allowemailaddresses', 'admin'), get_string('configallowemailaddresses', 'admin'), '', PARAM_NOTAGS));
+ $temp->add(new admin_setting_configtext('denyemailaddresses', get_string('denyemailaddresses', 'admin'), get_string('configdenyemailaddresses', 'admin'), '', PARAM_NOTAGS));
+
+ $ADMIN->add('authsettings', $temp);
-if(empty($CFG->loginhttps)) {
- $securewwwroot = $CFG->wwwroot;
-} else {
- $securewwwroot = str_replace('http:','https:',$CFG->wwwroot);
-}
-// stuff under the "accounts" subcategory
-$ADMIN->add('users', new admin_category('accounts', get_string('accounts', 'admin')));
-$ADMIN->add('accounts', new admin_externalpage('editusers', get_string('userlist','admin'), "$CFG->wwwroot/$CFG->admin/user.php", array('moodle/user:update', 'moodle/user:delete')));
-$ADMIN->add('accounts', new admin_externalpage('userbulk', get_string('userbulk','admin'), "$CFG->wwwroot/$CFG->admin/user/user_bulk.php", array('moodle/user:update', 'moodle/user:delete')));
-$ADMIN->add('accounts', new admin_externalpage('addnewuser', get_string('addnewuser'), "$securewwwroot/user/editadvanced.php?id=-1", 'moodle/user:create'));
-$ADMIN->add('accounts', new admin_externalpage('uploadusers', get_string('uploadusers'), "$CFG->wwwroot/$CFG->admin/uploaduser.php", 'moodle/site:uploadusers'));
-$ADMIN->add('accounts', new admin_externalpage('profilefields', get_string('profilefields','admin'), "$CFG->wwwroot/user/profile/index.php", 'moodle/site:config'));
+ if ($auths = get_list_of_plugins('auth')) {
+ $authsenabled = get_enabled_auth_plugins();
+ $authbyname = array();
-
-// stuff under the "roles" subcategory
-$ADMIN->add('users', new admin_category('roles', get_string('permissions', 'role')));
-$ADMIN->add('roles', new admin_externalpage('defineroles', get_string('defineroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/manage.php"));
-$sitecontext = get_context_instance(CONTEXT_SYSTEM);
-$ADMIN->add('roles', new admin_externalpage('assignroles', get_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=" . $sitecontext->id));
-
-
-// "userpolicies" settingpage
-$temp = new admin_settingpage('userpolicies', get_string('userpolicies', 'admin'));
-
-if (!empty($CFG->rolesactive)) {
- $context = get_context_instance(CONTEXT_SYSTEM);
- if (!$guestrole = get_guest_role()) {
- $guestrole->id = 0;
- }
- if ($studentroles = get_roles_with_capability('moodle/legacy:student', CAP_ALLOW)) {
- $studentrole = array_shift($studentroles); /// Take the first one
- } else {
- $studentrole->id = 0;
- }
- if ($userroles = get_roles_with_capability('moodle/legacy:user', CAP_ALLOW)) {
- $userrole = array_shift($userroles); /// Take the first one
- } else {
- $userrole->id = 0;
- }
- if (empty($CFG->creatornewroleid)) {
- if ($teacherroles = get_roles_with_capability('moodle/legacy:editingteacher', CAP_ALLOW, $context)) {
- $teachereditrole = array_shift($teacherroles);
- set_config('creatornewroleid', $teachereditrole->id);
- } else {
- set_config('creatornewroleid', 0);
+ foreach ($auths as $auth) {
+ $strauthname = get_string("auth_{$auth}title", "auth");
+ if ($strauthname == "[[auth_{$auth}title]]") {
+ $strauthname = get_string("auth_{$auth}title", "auth_{$auth}");
+ }
+ $authbyname[$strauthname] = $auth;
}
- }
- // we must not use assignable roles here:
- // 1/ unsetting roles as assignable for admin might bork the settings!
- // 2/ default user role should not be assignable anyway
- $allroles = array();
- if ($roles = get_all_roles()) {
- foreach ($roles as $role) {
- $allroles[$role->id] = strip_tags(format_string($role->name, true));
+ ksort($authbyname);
+
+ foreach ($authbyname as $strauthname=>$authname) {
+ if (file_exists($CFG->dirroot.'/auth/'.$authname.'/settings.php')) {
+ // do not show disabled auths in tree, keep only settings link on manage page
+ $settings = new admin_settingpage('authsetting'.$authname, $strauthname, 'moodle/site:config', !in_array($authname, $authsenabled));
+ if ($ADMIN->fulltree) {
+ include($CFG->dirroot.'/auth/'.$authname.'/settings.php');
+ }
+ // TODO: finish implementation of common settings - locking, etc.
+ $ADMIN->add('authsettings', $settings);
+
+ } else {
+ $ADMIN->add('authsettings', new admin_externalpage('authsetting'.$authname, $strauthname, "$CFG->wwwroot/$CFG->admin/auth_config.php?auth=$authname", 'moodle/site:config', !in_array($authname, $authsenabled)));
+ }
}
}
- $temp->add(new admin_setting_configselect('notloggedinroleid', get_string('notloggedinroleid', 'admin'),
- get_string('confignotloggedinroleid', 'admin'), $guestrole->id, $allroles ));
- $temp->add(new admin_setting_configselect('guestroleid', get_string('guestroleid', 'admin'),
- get_string('configguestroleid', 'admin'), $guestrole->id, $allroles));
- $temp->add(new admin_setting_configselect('defaultuserroleid', get_string('defaultuserroleid', 'admin'),
- get_string('configdefaultuserroleid', 'admin'), $userrole->id, $allroles));
-}
-$temp->add(new admin_setting_configcheckbox('nodefaultuserrolelists', get_string('nodefaultuserrolelists', 'admin'), get_string('confignodefaultuserrolelists', 'admin'), 0));
-
-if (!empty($CFG->rolesactive)) {
- $temp->add(new admin_setting_configselect('defaultcourseroleid', get_string('defaultcourseroleid', 'admin'),
- get_string('configdefaultcourseroleid', 'admin'), $studentrole->id, $allroles));
- $temp->add(new admin_setting_configselect('creatornewroleid', get_string('creatornewroleid', 'admin'),
- get_string('configcreatornewroleid', 'admin'), $CFG->creatornewroleid, $allroles));
-}
-
-$temp->add(new admin_setting_configcheckbox('autologinguests', get_string('autologinguests', 'admin'), get_string('configautologinguests', 'admin'), 0));
-
-if (!empty($CFG->rolesactive)) {
- $temp->add(new admin_setting_configmultiselect('nonmetacoursesyncroleids', get_string('nonmetacoursesyncroleids', 'admin'),
- get_string('confignonmetacoursesyncroleids', 'admin'), array(), $allroles));
-}
-
-//$temp->add(new admin_setting_configcheckbox('allusersaresitestudents', get_string('allusersaresitestudents', 'admin'), get_string('configallusersaresitestudents','admin'), 1));
-$temp->add(new admin_setting_configmultiselect('hiddenuserfields', get_string('hiddenuserfields', 'admin'),
- get_string('confighiddenuserfields', 'admin'), array(),
- array('none' => get_string('none'),
- 'description' => get_string('description'),
- 'city' => get_string('city'),
- 'country' => get_string('country'),
- 'webpage' => get_string('webpage'),
- 'icqnumber' => get_string('icqnumber'),
- 'skypeid' => get_string('skypeid'),
- 'yahooid' => get_string('yahooid'),
- 'aimid' => get_string('aimid'),
- 'msnid' => get_string('msnid'),
- 'lastaccess' => get_string('lastaccess'))));
-//$temp->add(new admin_setting_special_adminseesall());
+ if(empty($CFG->loginhttps)) {
+ $securewwwroot = $CFG->wwwroot;
+ } else {
+ $securewwwroot = str_replace('http:','https:',$CFG->wwwroot);
+ }
+ // stuff under the "accounts" subcategory
+ $ADMIN->add('users', new admin_category('accounts', get_string('accounts', 'admin')));
+ $ADMIN->add('accounts', new admin_externalpage('editusers', get_string('userlist','admin'), "$CFG->wwwroot/$CFG->admin/user.php", array('moodle/user:update', 'moodle/user:delete')));
+ $ADMIN->add('accounts', new admin_externalpage('userbulk', get_string('userbulk','admin'), "$CFG->wwwroot/$CFG->admin/user/user_bulk.php", array('moodle/user:update', 'moodle/user:delete')));
+ $ADMIN->add('accounts', new admin_externalpage('addnewuser', get_string('addnewuser'), "$securewwwroot/user/editadvanced.php?id=-1", 'moodle/user:create'));
+ $ADMIN->add('accounts', new admin_externalpage('uploadusers', get_string('uploadusers'), "$CFG->wwwroot/$CFG->admin/uploaduser.php", 'moodle/site:uploadusers'));
+ $ADMIN->add('accounts', new admin_externalpage('profilefields', get_string('profilefields','admin'), "$CFG->wwwroot/user/profile/index.php", 'moodle/site:config'));
-$ADMIN->add('roles', $temp);
+ // stuff under the "roles" subcategory
+ $ADMIN->add('users', new admin_category('roles', get_string('permissions', 'role')));
+ $ADMIN->add('roles', new admin_externalpage('defineroles', get_string('defineroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/manage.php"));
+ $ADMIN->add('roles', new admin_externalpage('assignroles', get_string('assignglobalroles', 'role'), "$CFG->wwwroot/$CFG->admin/roles/assign.php?contextid=".$systemcontext->id));
+
+
+ // "userpolicies" settingpage
+ $temp = new admin_settingpage('userpolicies', get_string('userpolicies', 'admin'));
+ if ($ADMIN->fulltree) {
+ if (!empty($CFG->rolesactive)) {
+ $context = get_context_instance(CONTEXT_SYSTEM);
+ if (!$guestrole = get_guest_role()) {
+ $guestrole->id = 0;
+ }
+ if ($studentroles = get_roles_with_capability('moodle/legacy:student', CAP_ALLOW)) {
+ $studentrole = array_shift($studentroles); /// Take the first one
+ } else {
+ $studentrole->id = 0;
+ }
+ if ($userroles = get_roles_with_capability('moodle/legacy:user', CAP_ALLOW)) {
+ $userrole = array_shift($userroles); /// Take the first one
+ } else {
+ $userrole->id = 0;
+ }
+ if (empty($CFG->creatornewroleid)) {
+ if ($teacherroles = get_roles_with_capability('moodle/legacy:editingteacher', CAP_ALLOW, $context)) {
+ $teachereditrole = array_shift($teacherroles);
+ set_config('creatornewroleid', $teachereditrole->id);
+ } else {
+ set_config('creatornewroleid', 0);
+ }
+ }
+ // we must not use assignable roles here:
+ // 1/ unsetting roles as assignable for admin might bork the settings!
+ // 2/ default user role should not be assignable anyway
+ $allroles = array();
+ if ($roles = get_all_roles()) {
+ foreach ($roles as $role) {
+ $allroles[$role->id] = strip_tags(format_string($role->name, true));
+ }
+ }
+
+ $temp->add(new admin_setting_configselect('notloggedinroleid', get_string('notloggedinroleid', 'admin'),
+ get_string('confignotloggedinroleid', 'admin'), $guestrole->id, $allroles ));
+ $temp->add(new admin_setting_configselect('guestroleid', get_string('guestroleid', 'admin'),
+ get_string('configguestroleid', 'admin'), $guestrole->id, $allroles));
+ $temp->add(new admin_setting_configselect('defaultuserroleid', get_string('defaultuserroleid', 'admin'),
+ get_string('configdefaultuserroleid', 'admin'), $userrole->id, $allroles));
+ }
+
+ $temp->add(new admin_setting_configcheckbox('nodefaultuserrolelists', get_string('nodefaultuserrolelists', 'admin'), get_string('confignodefaultuserrolelists', 'admin'), 0));
+
+ if (!empty($CFG->rolesactive)) {
+ $temp->add(new admin_setting_configselect('defaultcourseroleid', get_string('defaultcourseroleid', 'admin'),
+ get_string('configdefaultcourseroleid', 'admin'), $studentrole->id, $allroles));
+ $temp->add(new admin_setting_configselect('creatornewroleid', get_string('creatornewroleid', 'admin'),
+ get_string('configcreatornewroleid', 'admin'), $CFG->creatornewroleid, $allroles));
+ }
+
+ $temp->add(new admin_setting_configcheckbox('autologinguests', get_string('autologinguests', 'admin'), get_string('configautologinguests', 'admin'), 0));
+
+ if (!empty($CFG->rolesactive)) {
+ $temp->add(new admin_setting_configmultiselect('nonmetacoursesyncroleids', get_string('nonmetacoursesyncroleids', 'admin'),
+ get_string('confignonmetacoursesyncroleids', 'admin'), array(), $allroles));
+ }
+
+ $temp->add(new admin_setting_configmultiselect('hiddenuserfields', get_string('hiddenuserfields', 'admin'),
+ get_string('confighiddenuserfields', 'admin'), array(),
+ array('description' => get_string('description'),
+ 'city' => get_string('city'),
+ 'country' => get_string('country'),
+ 'webpage' => get_string('webpage'),
+ 'icqnumber' => get_string('icqnumber'),
+ 'skypeid' => get_string('skypeid'),
+ 'yahooid' => get_string('yahooid'),
+ 'aimid' => get_string('aimid'),
+ 'msnid' => get_string('msnid'),
+ 'lastaccess' => get_string('lastaccess'))));
+ }
+
+ $ADMIN->add('roles', $temp);
} // end of speedup
diff --git a/admin/upgradesettings.php b/admin/upgradesettings.php
index c011d20332d..803c890c52e 100644
--- a/admin/upgradesettings.php
+++ b/admin/upgradesettings.php
@@ -8,17 +8,20 @@ require_once($CFG->libdir.'/adminlib.php');
$return = optional_param('return', '', PARAM_ALPHA);
+$adminroot =& admin_get_root(); // need all settings
admin_externalpage_setup('upgradesettings'); // now hidden page
-// a caveat: we're depending on only having one admin access this page at once. why? the following line
-// (the function call to find_new_settings) must have the EXACT SAME RETURN VALUE both times that this
-// page is loaded (i.e. both when we're displaying the form and then when we process the form's input).
-// if the return values don't match, we could potentially lose changes that the admin is making.
+// now we'll deal with the case that the admin has submitted the form with new settings
+if ($data = data_submitted() and confirm_sesskey()) {
+ $count = admin_write_settings($data);
+ $adminroot =& admin_get_root(true); //reload tree
+}
-$newsettingshtml = output_new_settings_by_page(admin_get_root());
+$newsettingshtml = admin_output_new_settings_by_page($adminroot);
+$focus = '';
-// first we deal with the case where there are no new settings to be set
-if ($newsettingshtml == '') {
+if (empty($adminroot->errors) and $newsettingshtml === '') {
+ // there must be either redirect without message or continue button or else upgrade would be sometimes broken
if ($return == 'site') {
redirect("$CFG->wwwroot/");
} else {
@@ -26,128 +29,33 @@ if ($newsettingshtml == '') {
}
}
-// now we'll deal with the case that the admin has submitted the form with new settings
-if ($data = data_submitted()) {
- $unslashed = (array)stripslashes_recursive($data);
- if (confirm_sesskey()) {
- $newsettings = find_new_settings(admin_get_root());
- $errors = '';
-
- foreach($newsettings as $newsetting) {
- if (isset($unslashed['s_' . $newsetting->name])) {
- $errors .= $newsetting->write_setting($unslashed['s_' . $newsetting->name]);
- } else {
- $errors .= $newsetting->write_setting($newsetting->defaultsetting);
- }
- }
-
- if (empty($errors)) {
- // there must be either redirect without message or continue button or else upgrade would be sometimes broken
- if ($return == 'site') {
- redirect("$CFG->wwwroot/");
- } else {
- redirect("$CFG->wwwroot/$CFG->admin/index.php");
- }
- } else {
- $url = "$CFG->wwwroot/$CFG->admin/upgradesettings.php?return=$return";
- error(get_string('errorwithsettings', 'admin') . ' ' . $errors, $url);
- }
- } else {
- error(get_string('confirmsesskeybad', 'error'));
- }
-
+if (!empty($adminroot->errors)) {
+ $firsterror = reset($adminroot->errors);
+ $focus = $firsterror->id;
}
// and finally, if we get here, then there are new settings and we have to print a form
// to modify them
-admin_externalpage_print_header();
+admin_externalpage_print_header($focus);
-print_simple_box(get_string('upgradesettingsintro','admin'),'','100%','',5,'generalbox','');
+print_box(get_string('upgradesettingsintro','admin'), 'generalbox');
echo '';
-admin_externalpage_print_footer();
-
-
-/**
- * Find settings that have not been initialized (e.g. during initial install or an upgrade).
- *
- * Tests each setting's get_setting() method. If the result is NULL, we consider the setting
- * to be uninitialized.
- *
- * @param string &$node The node at which to start searching. Should be $ADMIN for all external calls to this function.
- * @return array An array containing admin_setting objects that haven't yet been initialized
- */
-function find_new_settings(&$node) {
-
- if (is_a($node, 'admin_category')) {
- $return = array();
- $entries = array_keys($node->children);
- foreach ($entries as $entry) {
- $return = array_merge($return, find_new_settings($node->children[$entry]));
- }
- return $return;
- }
-
- if (is_a($node, 'admin_settingpage')) {
- $return = array();
- foreach ($node->settings as $setting) {
- if ($setting->get_setting() === NULL) {
- $return[] =& $setting;
- }
- unset($setting); // needed to prevent odd (imho) reference behaviour
- // see http://www.php.net/manual/en/language.references.whatdo.php#AEN6399
- }
- return $return;
- }
-
- return array();
-
+if (!empty($CFG->adminusehtmleditor)) {
+ use_html_editor();
}
-function output_new_settings_by_page(&$node) {
-
- if (is_a($node, 'admin_category')) {
- $entries = array_keys($node->children);
- $return = '';
- foreach ($entries as $entry) {
- $return .= output_new_settings_by_page($node->children[$entry]);
- }
- return $return;
- }
-
- if (is_a($node, 'admin_settingpage')) {
- $newsettings = array();
- foreach ($node->settings as $setting) {
- if ($setting->get_setting() === NULL) {
- $newsettings[] =& $setting;
- }
- unset($setting); // needed to prevent odd (imho) reference behaviour
- // see http://www.php.net/manual/en/language.references.whatdo.php#AEN6399
- }
- $return = '';
- if (count($newsettings) > 0) {
- $return .= print_heading(get_string('upgradesettings','admin').' - '.$node->visiblename, '', 2, 'main', true);
- $return .= '';
- }
- return $return;
- }
-
- return '';
-
-}
+print_footer();
?>
diff --git a/backup/backup_scheduled.php b/backup/backup_scheduled.php
index be0e6f1a251..37def53d8f6 100644
--- a/backup/backup_scheduled.php
+++ b/backup/backup_scheduled.php
@@ -177,7 +177,7 @@ function schedule_backup_cron() {
//Reference
if ($count_error != 0 || $count_unfinished != 0) {
$message .= " ".get_string('backupfailed')."\n\n";
- $dest_url = $CFG->wwwroot.'/admin/report/backups/index.php';
+ $dest_url = "$CFG->wwwroot/$CFG->admin/report/backups/index.php";
$message .= " ".get_string('backuptakealook','',$dest_url)."\n\n";
//Set message priority
$admin->priority = 1;
diff --git a/backup/lib.php b/backup/lib.php
index 7706690c330..8a5bc505ad6 100644
--- a/backup/lib.php
+++ b/backup/lib.php
@@ -355,9 +355,6 @@
$db->debug = false;
if ($status) {
if (set_config("backup_version", $backup_version) and set_config("backup_release", $backup_release)) {
- //initialize default backup settings now
- $adminroot = admin_get_root();
- apply_default_settings($adminroot->locate('backups'));
notify(get_string("databasesuccess"), "green");
notify(get_string("databaseupgradebackups", "", $backup_version), "green");
print_continue($continueto);
diff --git a/blocks/admin_bookmarks/block_admin_bookmarks.php b/blocks/admin_bookmarks/block_admin_bookmarks.php
index 2b4fd5db531..3293bfd485c 100644
--- a/blocks/admin_bookmarks/block_admin_bookmarks.php
+++ b/blocks/admin_bookmarks/block_admin_bookmarks.php
@@ -28,27 +28,27 @@ class block_admin_bookmarks extends block_base {
}
function get_content() {
-
+
global $CFG, $USER, $PAGE;
-
+
if ($this->content !== NULL) {
return $this->content;
}
-
+
$this->content = new stdClass;
$this->content->text = '';
if (get_user_preferences('admin_bookmarks')) {
// this is expensive! Only require when bookmakrs exist..
require_once($CFG->libdir.'/adminlib.php');
- $adminroot = admin_get_root();
-
- $bookmarks = explode(',',get_user_preferences('admin_bookmarks'));
+ $adminroot =& admin_get_root(false, false); // settings not required - only pages
+
+ $bookmarks = explode(',', get_user_preferences('admin_bookmarks'));
// hmm... just a liiitle (potentially) processor-intensive
// (recall that $adminroot->locate is a huge recursive call... and we're calling it repeatedly here
-
+
/// Accessibility: markup as a list.
$this->content->text .= ''."\n";
-
+
foreach($bookmarks as $bookmark) {
$temp = $adminroot->locate($bookmark);
if (is_a($temp, 'admin_settingpage')) {
@@ -61,7 +61,7 @@ class block_admin_bookmarks extends block_base {
} else {
$bookmarks = array();
}
-
+
if (isset($PAGE->section) and $PAGE->section == 'search'){
// the search page can't be properly bookmarked at present
$this->content->footer = '';
@@ -72,7 +72,7 @@ class block_admin_bookmarks extends block_base {
} else {
$this->content->footer = '';
}
-
+
return $this->content;
}
}
diff --git a/blocks/admin_bookmarks/create.php b/blocks/admin_bookmarks/create.php
index b2ad354581d..d555f7873dc 100644
--- a/blocks/admin_bookmarks/create.php
+++ b/blocks/admin_bookmarks/create.php
@@ -3,13 +3,13 @@
require('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
-$adminroot = admin_get_root();
require_login();
+$adminroot =& admin_get_root(false, false); // settings not required - only pages
-if ($section = optional_param('section', '', PARAM_ALPHAEXT) and confirm_sesskey()) {
+if ($section = optional_param('section', '', PARAM_SAFEDIR) and confirm_sesskey()) {
if (get_user_preferences('admin_bookmarks')) {
- $bookmarks = explode(',',get_user_preferences('admin_bookmarks'));
+ $bookmarks = explode(',', get_user_preferences('admin_bookmarks'));
if (in_array($section, $bookmarks)) {
error(get_string('bookmarkalreadyexists','admin'));
@@ -23,28 +23,20 @@ if ($section = optional_param('section', '', PARAM_ALPHAEXT) and confirm_sesskey
$temp = $adminroot->locate($section);
if (is_a($temp, 'admin_settingpage') || is_a($temp, 'admin_externalpage')) {
-
$bookmarks[] = $section;
-
- $bookmarks = implode(',',$bookmarks);
-
+ $bookmarks = implode(',', $bookmarks);
set_user_preference('admin_bookmarks', $bookmarks);
} else {
-
error(get_string('invalidsection','admin'));
die;
-
}
if (is_a($temp, 'admin_settingpage')) {
-
redirect($CFG->wwwroot . '/' . $CFG->admin . '/settings.php?section=' . $section);
} elseif (is_a($temp, 'admin_externalpage')) {
-
redirect($temp->url);
-
}
} else {
diff --git a/blocks/admin_bookmarks/delete.php b/blocks/admin_bookmarks/delete.php
index a73a39aee1a..1ad4f1519e3 100644
--- a/blocks/admin_bookmarks/delete.php
+++ b/blocks/admin_bookmarks/delete.php
@@ -3,10 +3,11 @@
require('../../config.php');
require_once($CFG->libdir.'/adminlib.php');
-$adminroot = admin_get_root();
-require_login();
-if ($section = optional_param('section', '', PARAM_ALPHAEXT) and confirm_sesskey()) {
+require_login();
+$adminroot =& admin_get_root(false, false); // settings not required - only pages
+
+if ($section = optional_param('section', '', PARAM_SAFEDIR) and confirm_sesskey()) {
if (get_user_preferences('admin_bookmarks')) {
@@ -15,12 +16,12 @@ if ($section = optional_param('section', '', PARAM_ALPHAEXT) and confirm_sesskey
$key = array_search($section, $bookmarks);
if ($key === false) {
- error(get_string('nonexistentbookmark','admin'));
+ error(get_string('nonexistentbookmark','admin'));
die;
}
unset($bookmarks[$key]);
- $bookmarks = implode(',',$bookmarks);
+ $bookmarks = implode(',', $bookmarks);
set_user_preference('admin_bookmarks', $bookmarks);
$temp = $adminroot->locate($section);
@@ -37,7 +38,7 @@ if ($section = optional_param('section', '', PARAM_ALPHAEXT) and confirm_sesskey
}
- error(get_string('nobookmarksforuser','admin'));
+ error(get_string('nobookmarksforuser','admin'));
die;
} else {
diff --git a/blocks/admin_tree/block_admin_tree.php b/blocks/admin_tree/block_admin_tree.php
index 228b75f0edc..6528b0b06cf 100644
--- a/blocks/admin_tree/block_admin_tree.php
+++ b/blocks/admin_tree/block_admin_tree.php
@@ -3,7 +3,7 @@
class block_admin_tree extends block_base {
var $currentdepth;
- var $spancounter;
+ var $divcounter;
var $tempcontent;
var $pathtosection;
var $expandjavascript;
@@ -14,7 +14,7 @@ class block_admin_tree extends block_base {
$this->title = get_string('administrationsite');
$this->version = 2006090300;
$this->currentdepth = 0;
- $this->spancounter = 1;
+ $this->divcounter = 1;
$this->tempcontent = '';
$this->section = (isset($PAGE->section) ? $PAGE->section : '');
$this->pathtosection = array();
@@ -34,49 +34,51 @@ class block_admin_tree extends block_base {
global $CFG;
$strfolderopened = s(get_string('folderopened'));
- for ($i = 0; $i < $this->currentdepth; $i++) {
- $this->tempcontent .= " ";
- }
- $this->tempcontent .= '';
- $this->tempcontent .= ' ';
- $this->tempcontent .= $visiblename . ' ' . "\n";
+ $this->tempcontent .= ''."\n";
$this->currentdepth++;
- $this->spancounter++;
+ $this->divcounter++;
}
function close_folder() {
$this->currentdepth--;
- $this->tempcontent .= "\n";
+ $this->tempcontent .= " \n";
}
function create_item($visiblename,$link,$icon,$class) {
global $CFG;
- for ($i = 0; $i < $this->currentdepth; $i++) {
- $this->tempcontent .= " ";
- }
- $this->tempcontent .= ' '.
- $visiblename.' '."\n";
+ $this->tempcontent .= ''."\n";
}
function build_tree (&$content) {
global $CFG;
if (is_a($content, 'admin_settingpage')) {
- if ($content->check_access() and !$content->is_hidden()) {
+ // show hidden pages in tree if hidden page active
+ if ($content->check_access() and (($content->name == $this->section) or !$content->is_hidden())) {
$class = ($content->name == $this->section) ? 'link current' : 'link';
- $this->create_item($content->visiblename,$CFG->wwwroot.'/'.$CFG->admin.'/settings.php?section=' . $content->name,$CFG->wwwroot .'/blocks/admin_tree/item.gif', $class);
+ if ($content->is_hidden()) {
+ $class .= ' hidden';
+ }
+ $this->create_item($content->visiblename, $CFG->wwwroot.'/'.$CFG->admin.'/settings.php?section='.$content->name, $CFG->wwwroot.'/blocks/admin_tree/item.gif', $class);
}
} else if (is_a($content, 'admin_externalpage')) {
- if ($content->check_access() and !$content->is_hidden()) {
+ // show hidden pages in tree if hidden page active
+ if ($content->check_access() and (($content->name == $this->section) or !$content->is_hidden())) {
$class = ($content->name == $this->section) ? 'link current' : 'link';
- $this->create_item($content->visiblename, $content->url, $CFG->wwwroot . '/blocks/admin_tree/item.gif', $class);
+ if ($content->is_hidden()) {
+ $class .= ' hidden';
+ }
+ $this->create_item($content->visiblename, $content->url, $CFG->wwwroot.'/blocks/admin_tree/item.gif', $class);
}
} else if (is_a($content, 'admin_category')) {
if ($content->check_access() and !$content->is_hidden()) {
// check if the category we're currently printing is a parent category for the current page; if it is, we
// make a note (in the javascript) that it has to be expanded after the page has loaded
- if ($this->pathtosection[count($this->pathtosection) - 1] == $content->name) {
- $this->expandjavascript .= 'expand("vh_span' . ($this->spancounter) . '");' . "\n";
+ if ($this->section != '' and $this->pathtosection[count($this->pathtosection) - 1] == $content->name) {
+ $this->expandjavascript .= 'expand("vh_div'.($this->divcounter).'");'."\n";
array_pop($this->pathtosection);
}
@@ -108,10 +110,10 @@ class block_admin_tree extends block_base {
}
require_once($CFG->libdir.'/adminlib.php');
- $adminroot = admin_get_root();
+ $adminroot =& admin_get_root(false, false); // settings not required - only pages
- if ($this->pathtosection = $adminroot->path($this->section)) {
- $this->pathtosection = array_reverse($this->pathtosection);
+ if ($current = $adminroot->locate($this->section, true)) {
+ $this->pathtosection = $current->path;
array_pop($this->pathtosection);
}
@@ -130,53 +132,53 @@ class block_admin_tree extends block_base {
$strfolderopened = s(get_string('folderopened'));
$strfolderclosed = s(get_string('folderclosed'));
- $this->content = new stdClass;
+ $this->content = new object();
$this->content->text = '' . "\n";
- $searchcontent = isset($CFG->adminsearchquery) ? $CFG->adminsearchquery : '';
+ $searchcontent = $adminroot->search;
$this->content->footer = ' |