mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 00:12:56 +02:00
MDL-16564 Make admin settings work better with the cnfig_plugins table.
Also, take the opportunity to take the quiz-specific stuff out of adminlib.php, to make Petr happy.
This commit is contained in:
parent
0186b1d06c
commit
7fb0303d89
@ -19,43 +19,41 @@ if ($hassiteconfig
|
||||
|
||||
// "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_configcheckbox('backup_sche_blogs', get_string('blogs', 'blog'), get_string('backupblogshelp','blog'), 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'), '');
|
||||
|
||||
$temp = new admin_settingpage('backups', get_string('backups','admin'), 'moodle/site:backup');
|
||||
foreach ($bi as $backupitem) {
|
||||
$backupitem->plugin = 'backup';
|
||||
$temp->add($backupitem);
|
||||
}
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_modules', get_string('includemodules'), get_string('backupincludemoduleshelp'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_withuserdata', get_string('includemoduleuserdata'), get_string('backupincludemoduleuserdatahelp'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_metacourse', get_string('metacourse'), get_string('backupmetacoursehelp'), 0));
|
||||
$temp->add(new admin_setting_configselect('backup/backup_sche_users', get_string('users'), get_string('backupusershelp'),
|
||||
0, array(0 => get_string('all'), 1 => get_string('course'))));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_logs', get_string('logs'), get_string('backuplogshelp'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_userfiles', get_string('userfiles'), get_string('backupuserfileshelp'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_coursefiles', get_string('coursefiles'), get_string('backupcoursefileshelp'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_sitefiles', get_string('sitefiles'), get_string('backupsitefileshelp'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_messages', get_string('messages', 'message'), get_string('backupmessageshelp','message'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_blogs', get_string('blogs', 'blog'), get_string('backupblogshelp','blog'), 0));
|
||||
|
||||
$keepoptoins = 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_configselect('backup/backup_sche_keep', get_string('keep'),
|
||||
get_string('backupkeephelp'), 1, $keepoptoins));
|
||||
$temp->add(new admin_setting_configcheckbox('backup/backup_sche_active', get_string('active'), get_string('backupactivehelp'), 0));
|
||||
$temp->add(new admin_setting_special_backupdays());
|
||||
$temp->add(new admin_setting_configtime('backup/backup_sche_hour', 'backup_sche_minute', get_string('executeat'),
|
||||
get_string('backupexecuteathelp'), array('h' => 0, 'm' => 0)));
|
||||
$temp->add(new admin_setting_configdirectory('backup/backup_sche_destination', get_string('saveto'), get_string('backupsavetohelp'), ''));
|
||||
|
||||
$ADMIN->add('courses', $temp);
|
||||
}
|
||||
|
||||
|
136
lib/adminlib.php
136
lib/adminlib.php
@ -2377,12 +2377,37 @@ class admin_setting {
|
||||
* @param mixed $defaultsetting string or array depending on implementation
|
||||
*/
|
||||
function admin_setting($name, $visiblename, $description, $defaultsetting) {
|
||||
$this->name = $name;
|
||||
$this->parse_setting_name($name);
|
||||
$this->visiblename = $visiblename;
|
||||
$this->description = $description;
|
||||
$this->defaultsetting = $defaultsetting;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set up $this->name and possibly $this->plugin based on whether $name looks
|
||||
* like 'settingname' or 'plugin/settingname'. Also, do some sanity checking
|
||||
* on the names, that is, output a developer debug warning if the name
|
||||
* contains anything other than [a-zA-Z0-9_]+.
|
||||
*
|
||||
* @param string $name the setting name passed in to the constructor.
|
||||
*/
|
||||
private function parse_setting_name($name) {
|
||||
$bits = explode('/', $name);
|
||||
if (count($bits) > 2) {
|
||||
throw new moodle_exception('invalidadminsettingname', '', '', $name);
|
||||
}
|
||||
$this->name = array_pop($bits);
|
||||
if (!preg_match('/^[a-zA-Z0-9_]+$/', $this->name)) {
|
||||
throw new moodle_exception('invalidadminsettingname', '', '', $name);
|
||||
}
|
||||
if (!empty($bits)) {
|
||||
$this->plugin = array_pop($bits);
|
||||
if (!preg_match('/^[a-zA-Z0-9_]+$/', $this->plugin)) {
|
||||
throw new moodle_exception('invalidadminsettingname', '', '', $name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function get_full_name() {
|
||||
return 's_'.$this->plugin.'_'.$this->name;
|
||||
}
|
||||
@ -4188,11 +4213,10 @@ class admin_setting_pickroles extends admin_setting_configmulticheckbox {
|
||||
}
|
||||
|
||||
/**
|
||||
* Text field linked to config_plugins for the quiz, with an advanced checkbox.
|
||||
* Text field with an advanced checkbox, that controls a additional "fix_$name" setting.
|
||||
*/
|
||||
class admin_setting_quiz_text extends admin_setting_configtext {
|
||||
class admin_setting_text_with_advanced extends admin_setting_configtext {
|
||||
function __construct($name, $visiblename, $description, $defaultsetting, $paramtype) {
|
||||
$this->plugin = 'quiz';
|
||||
parent::admin_setting_configtext($name, $visiblename, $description,
|
||||
$defaultsetting, $paramtype);
|
||||
}
|
||||
@ -4248,11 +4272,10 @@ class admin_setting_quiz_text extends admin_setting_configtext {
|
||||
}
|
||||
|
||||
/**
|
||||
* Dropdown menu linked to config_plugins for the quiz, with an advanced checkbox.
|
||||
* Dropdown menu with an advanced checkbox, that controls a additional "fix_$name" setting.
|
||||
*/
|
||||
class admin_setting_quiz_combo extends admin_setting_configselect {
|
||||
class admin_setting_combo_with_advanced extends admin_setting_configselect {
|
||||
function __construct($name, $visiblename, $description, $defaultsetting, $choices) {
|
||||
$this->plugin = 'quiz';
|
||||
parent::admin_setting_configselect($name, $visiblename, $description,
|
||||
$defaultsetting, $choices);
|
||||
}
|
||||
@ -4316,106 +4339,11 @@ class admin_setting_quiz_combo extends admin_setting_configselect {
|
||||
}
|
||||
}
|
||||
|
||||
class admin_setting_quiz_reviewoptions extends admin_setting {
|
||||
private static $times = array(
|
||||
QUIZ_REVIEW_IMMEDIATELY => 'reviewimmediately',
|
||||
QUIZ_REVIEW_OPEN => 'reviewopen',
|
||||
QUIZ_REVIEW_CLOSED => 'reviewclosed');
|
||||
private static $things = array(
|
||||
QUIZ_REVIEW_RESPONSES => 'responses',
|
||||
QUIZ_REVIEW_ANSWERS => 'answers',
|
||||
QUIZ_REVIEW_FEEDBACK => 'feedback',
|
||||
QUIZ_REVIEW_GENERALFEEDBACK => 'generalfeedback',
|
||||
QUIZ_REVIEW_SCORES => 'scores',
|
||||
QUIZ_REVIEW_OVERALLFEEDBACK => 'overallfeedback');
|
||||
|
||||
function __construct($name, $visiblename, $description, $defaultsetting) {
|
||||
$this->plugin = 'quiz';
|
||||
parent::admin_setting($name, $visiblename, $description, $defaultsetting);
|
||||
}
|
||||
|
||||
private function normalise_data($data) {
|
||||
$value = 0;
|
||||
foreach (admin_setting_quiz_reviewoptions::$times as $timemask => $timestring) {
|
||||
foreach (admin_setting_quiz_reviewoptions::$things as $thingmask => $thingstring) {
|
||||
if (!empty($data[$timemask][$thingmask])) {
|
||||
$value += $timemask & $thingmask;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
function get_setting() {
|
||||
$value = $this->config_read($this->name);
|
||||
$fix = $this->config_read('fix_' . $this->name);
|
||||
if (is_null($value) or is_null($fix)) {
|
||||
return NULL;
|
||||
}
|
||||
return array('value' => $value, 'fix' => $fix);
|
||||
}
|
||||
|
||||
function write_setting($data) {
|
||||
if (!isset($data['value'])) {
|
||||
$data['value'] = $this->normalise_data($data);
|
||||
}
|
||||
$ok = $this->config_write($this->name, $data['value']);
|
||||
if ($ok) {
|
||||
if (empty($data['fix'])) {
|
||||
$ok = $this->config_write('fix_' . $this->name, 0);
|
||||
} else {
|
||||
$ok = $this->config_write('fix_' . $this->name, 1);
|
||||
}
|
||||
}
|
||||
if (!$ok) {
|
||||
return get_string('errorsetting', 'admin');
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function output_html($data, $query='') {
|
||||
if (!isset($data['value'])) {
|
||||
$data['value'] = $this->normalise_data($data);
|
||||
}
|
||||
|
||||
$return = '<div id="adminquizreviewoptions" class="clearfix">' . "\n";
|
||||
foreach (admin_setting_quiz_reviewoptions::$times as $timemask => $timestring) {
|
||||
$return .= '<div class="group"><div class="fitemtitle">' . get_string($timestring, 'quiz') . "</div>\n";
|
||||
$nameprefix = $this->get_full_name() . '[' . $timemask . ']';
|
||||
$idprefix = $this->get_id(). '_' . $timemask . '_';
|
||||
foreach (admin_setting_quiz_reviewoptions::$things as $thingmask => $thingstring) {
|
||||
$id = $idprefix . $thingmask;
|
||||
$state = '';
|
||||
if ($data['value'] & $timemask & $thingmask) {
|
||||
$state = 'checked="checked" ';
|
||||
}
|
||||
$return .= '<span><input type="checkbox" name="' .
|
||||
$nameprefix . '[' . $thingmask . ']" value="1" id="' . $id .
|
||||
'" ' . $state . '/> <label for="' . $id . '">' .
|
||||
get_string($thingstring, 'quiz') . "</label></span>\n";
|
||||
}
|
||||
$return .= "</div>\n";
|
||||
}
|
||||
$return .= "</div>\n";
|
||||
|
||||
$fix = !empty($data['fix']);
|
||||
$return .= '<input type="checkbox" class="form-checkbox" id="' .
|
||||
$this->get_id() . '_fix" name="' . $this->get_full_name() .
|
||||
'[fix]" value="1" ' . ($fix ? 'checked="checked"' : '') . ' />' .
|
||||
' <label for="' . $this->get_id() . '_fix">' .
|
||||
get_string('advanced') . '</label> ';
|
||||
|
||||
return format_admin_setting($this, $this->visiblename, $return,
|
||||
$this->description, true, '', get_string('everythingon', 'quiz'), $query);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Specialisation of admin_setting_quiz_combo for easy yes/no choices.
|
||||
* Specialisation of admin_setting_combo_with_advanced for easy yes/no choices.
|
||||
*/
|
||||
class admin_setting_quiz_yesno extends admin_setting_quiz_combo {
|
||||
class admin_setting_yesno_with_advanced extends admin_setting_combo_with_advanced {
|
||||
function __construct($name, $visiblename, $description, $defaultsetting) {
|
||||
$this->plugin = 'quiz';
|
||||
parent::__construct($name, $visiblename, $description,
|
||||
$defaultsetting, array(get_string('no'), get_string('yes')));
|
||||
}
|
||||
|
101
mod/quiz/settingslib.php
Normal file
101
mod/quiz/settingslib.php
Normal file
@ -0,0 +1,101 @@
|
||||
<?php // $Id$
|
||||
|
||||
if (!defined('MOODLE_INTERNAL')) {
|
||||
die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page.
|
||||
}
|
||||
|
||||
// Quiz specific admin settings class.
|
||||
class admin_setting_quiz_reviewoptions extends admin_setting {
|
||||
private static $times = array(
|
||||
QUIZ_REVIEW_IMMEDIATELY => 'reviewimmediately',
|
||||
QUIZ_REVIEW_OPEN => 'reviewopen',
|
||||
QUIZ_REVIEW_CLOSED => 'reviewclosed');
|
||||
private static $things = array(
|
||||
QUIZ_REVIEW_RESPONSES => 'responses',
|
||||
QUIZ_REVIEW_ANSWERS => 'answers',
|
||||
QUIZ_REVIEW_FEEDBACK => 'feedback',
|
||||
QUIZ_REVIEW_GENERALFEEDBACK => 'generalfeedback',
|
||||
QUIZ_REVIEW_SCORES => 'scores',
|
||||
QUIZ_REVIEW_OVERALLFEEDBACK => 'overallfeedback');
|
||||
|
||||
function __construct($name, $visiblename, $description, $defaultsetting) {
|
||||
$this->plugin = 'quiz';
|
||||
parent::admin_setting($name, $visiblename, $description, $defaultsetting);
|
||||
}
|
||||
|
||||
private function normalise_data($data) {
|
||||
$value = 0;
|
||||
foreach (admin_setting_quiz_reviewoptions::$times as $timemask => $timestring) {
|
||||
foreach (admin_setting_quiz_reviewoptions::$things as $thingmask => $thingstring) {
|
||||
if (!empty($data[$timemask][$thingmask])) {
|
||||
$value += $timemask & $thingmask;
|
||||
}
|
||||
}
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
|
||||
function get_setting() {
|
||||
$value = $this->config_read($this->name);
|
||||
$fix = $this->config_read('fix_' . $this->name);
|
||||
if (is_null($value) or is_null($fix)) {
|
||||
return NULL;
|
||||
}
|
||||
return array('value' => $value, 'fix' => $fix);
|
||||
}
|
||||
|
||||
function write_setting($data) {
|
||||
if (!isset($data['value'])) {
|
||||
$data['value'] = $this->normalise_data($data);
|
||||
}
|
||||
$ok = $this->config_write($this->name, $data['value']);
|
||||
if ($ok) {
|
||||
if (empty($data['fix'])) {
|
||||
$ok = $this->config_write('fix_' . $this->name, 0);
|
||||
} else {
|
||||
$ok = $this->config_write('fix_' . $this->name, 1);
|
||||
}
|
||||
}
|
||||
if (!$ok) {
|
||||
return get_string('errorsetting', 'admin');
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
function output_html($data, $query='') {
|
||||
if (!isset($data['value'])) {
|
||||
$data['value'] = $this->normalise_data($data);
|
||||
}
|
||||
|
||||
$return = '<div id="adminquizreviewoptions" class="clearfix">' . "\n";
|
||||
foreach (admin_setting_quiz_reviewoptions::$times as $timemask => $timestring) {
|
||||
$return .= '<div class="group"><div class="fitemtitle">' . get_string($timestring, 'quiz') . "</div>\n";
|
||||
$nameprefix = $this->get_full_name() . '[' . $timemask . ']';
|
||||
$idprefix = $this->get_id(). '_' . $timemask . '_';
|
||||
foreach (admin_setting_quiz_reviewoptions::$things as $thingmask => $thingstring) {
|
||||
$id = $idprefix . $thingmask;
|
||||
$state = '';
|
||||
if ($data['value'] & $timemask & $thingmask) {
|
||||
$state = 'checked="checked" ';
|
||||
}
|
||||
$return .= '<span><input type="checkbox" name="' .
|
||||
$nameprefix . '[' . $thingmask . ']" value="1" id="' . $id .
|
||||
'" ' . $state . '/> <label for="' . $id . '">' .
|
||||
get_string($thingstring, 'quiz') . "</label></span>\n";
|
||||
}
|
||||
$return .= "</div>\n";
|
||||
}
|
||||
$return .= "</div>\n";
|
||||
|
||||
$fix = !empty($data['fix']);
|
||||
$return .= '<input type="checkbox" class="form-checkbox" id="' .
|
||||
$this->get_id() . '_fix" name="' . $this->get_full_name() .
|
||||
'[fix]" value="1" ' . ($fix ? 'checked="checked"' : '') . ' />' .
|
||||
' <label for="' . $this->get_id() . '_fix">' .
|
||||
get_string('advanced') . '</label> ';
|
||||
|
||||
return format_admin_setting($this, $this->visiblename, $return,
|
||||
$this->description, true, '', get_string('everythingon', 'quiz'), $query);
|
||||
}
|
||||
}
|
||||
?>
|
@ -8,6 +8,7 @@
|
||||
*/
|
||||
|
||||
require_once($CFG->dirroot . '/mod/quiz/lib.php');
|
||||
require_once($CFG->dirroot . '/mod/quiz/settingslib.php');
|
||||
|
||||
// First get a list of quiz reports with there own settings pages. If there none,
|
||||
// we use a simpler overall menu structure.
|
||||
@ -39,7 +40,7 @@ $quizsettings = new admin_settingpage('modsettingquiz', $pagetitle, 'moodle/site
|
||||
$quizsettings->add(new admin_setting_heading('quizintro', '', get_string('configintro', 'quiz')));
|
||||
|
||||
// timelimit
|
||||
$quizsettings->add(new admin_setting_quiz_text('timelimit',
|
||||
$quizsettings->add(new admin_setting_text_with_advanced('quiz/timelimit',
|
||||
get_string('timelimit', 'quiz'), get_string('configtimelimit', 'quiz'),
|
||||
array('value' => '0', 'fix' => false), PARAM_INT));
|
||||
|
||||
@ -57,10 +58,10 @@ for($i=2; $i<=7; $i++) {
|
||||
$seconds = $i*86400;
|
||||
$timedelayoptions[$seconds] = get_string('numdays', '', $i);
|
||||
}
|
||||
$quizsettings->add(new admin_setting_quiz_combo('delay1',
|
||||
$quizsettings->add(new admin_setting_combo_with_advanced('quiz/delay1',
|
||||
get_string('delay1', 'quiz'), get_string('configdelay1', 'quiz'),
|
||||
array('value' => 0, 'fix' => false), $timedelayoptions));
|
||||
$quizsettings->add(new admin_setting_quiz_combo('delay2',
|
||||
$quizsettings->add(new admin_setting_combo_with_advanced('quiz/delay2',
|
||||
get_string('delay2', 'quiz'), get_string('configdelay2', 'quiz'),
|
||||
array('value' => 0, 'fix' => false), $timedelayoptions));
|
||||
|
||||
@ -71,17 +72,17 @@ $perpage[1] = get_string('aftereachquestion', 'quiz');
|
||||
for ($i = 2; $i <= 50; ++$i) {
|
||||
$perpage[$i] = get_string('afternquestions', 'quiz', $i);
|
||||
}
|
||||
$quizsettings->add(new admin_setting_quiz_combo('questionsperpage',
|
||||
$quizsettings->add(new admin_setting_combo_with_advanced('quiz/questionsperpage',
|
||||
get_string('newpageevery', 'quiz'), get_string('confignewpageevery', 'quiz'),
|
||||
array('value' => 1, 'fix' => false), $perpage));
|
||||
|
||||
// shufflequestions
|
||||
$quizsettings->add(new admin_setting_quiz_yesno('shufflequestions',
|
||||
$quizsettings->add(new admin_setting_yesno_with_advanced('quiz/shufflequestions',
|
||||
get_string('shufflequestions', 'quiz'), get_string('configshufflequestions', 'quiz'),
|
||||
array('value' => 0, 'fix' => false)));
|
||||
|
||||
// shuffleanswers
|
||||
$quizsettings->add(new admin_setting_quiz_yesno('shuffleanswers',
|
||||
$quizsettings->add(new admin_setting_yesno_with_advanced('quiz/shuffleanswers',
|
||||
get_string('shufflewithin', 'quiz'), get_string('configshufflewithin', 'quiz'),
|
||||
array('value' => 1, 'fix' => false)));
|
||||
|
||||
@ -90,33 +91,31 @@ $options = array(get_string('unlimited'));
|
||||
for ($i = 1; $i <= 6; $i++) {
|
||||
$options[$i] = $i;
|
||||
}
|
||||
$quizsettings->add(new admin_setting_quiz_combo('attempts',
|
||||
$quizsettings->add(new admin_setting_combo_with_advanced('quiz/attempts',
|
||||
get_string('attemptsallowed', 'quiz'), get_string('configattemptsallowed', 'quiz'),
|
||||
array('value' => 0, 'fix' => false), $options));
|
||||
|
||||
// attemptonlast
|
||||
$quizsettings->add(new admin_setting_quiz_yesno('attemptonlast',
|
||||
$quizsettings->add(new admin_setting_yesno_with_advanced('quiz/attemptonlast',
|
||||
get_string('eachattemptbuildsonthelast', 'quiz'), get_string('configeachattemptbuildsonthelast', 'quiz'),
|
||||
array('value' => 0, 'fix' => false)));
|
||||
|
||||
// optionflags
|
||||
$quizsettings->add(new admin_setting_quiz_yesno('optionflags',
|
||||
$quizsettings->add(new admin_setting_yesno_with_advanced('quiz/optionflags',
|
||||
get_string('adaptive', 'quiz'), get_string('configadaptive', 'quiz'),
|
||||
array('value' => 1, 'fix' => false)));
|
||||
|
||||
// maximumgrade
|
||||
$maxgradesetting = new admin_setting_configtext('maximumgrade',
|
||||
get_string('maximumgrade'), get_string('configmaximumgrade', 'quiz'), 10, PARAM_INT);
|
||||
$maxgradesetting->plugin = 'quiz';
|
||||
$quizsettings->add($maxgradesetting);
|
||||
$quizsettings->add(new admin_setting_configtext('quiz/maximumgrade',
|
||||
get_string('maximumgrade'), get_string('configmaximumgrade', 'quiz'), 10, PARAM_INT));
|
||||
|
||||
// grademethod
|
||||
$quizsettings->add(new admin_setting_quiz_combo('grademethod',
|
||||
$quizsettings->add(new admin_setting_combo_with_advanced('quiz/grademethod',
|
||||
get_string('grademethod', 'quiz'), get_string('configgrademethod', 'quiz'),
|
||||
array('value' => QUIZ_GRADEHIGHEST, 'fix' => false), quiz_get_grading_options()));
|
||||
|
||||
// penaltyscheme
|
||||
$quizsettings->add(new admin_setting_quiz_yesno('penaltyscheme',
|
||||
$quizsettings->add(new admin_setting_yesno_with_advanced('quiz/penaltyscheme',
|
||||
get_string('penaltyscheme', 'quiz'), get_string('configpenaltyscheme', 'quiz'),
|
||||
array('value' => 1, 'fix' => false)));
|
||||
|
||||
@ -125,27 +124,27 @@ $options = array();
|
||||
for ($i = 0; $i <= 5; $i++) {
|
||||
$options[$i] = $i;
|
||||
}
|
||||
$quizsettings->add(new admin_setting_quiz_combo('decimalpoints',
|
||||
$quizsettings->add(new admin_setting_combo_with_advanced('quiz/decimalpoints',
|
||||
get_string('decimaldigits', 'quiz'), get_string('configdecimaldigits', 'quiz'),
|
||||
array('value' => 2, 'fix' => false), $options));
|
||||
|
||||
// review
|
||||
$quizsettings->add(new admin_setting_quiz_reviewoptions('review',
|
||||
$quizsettings->add(new admin_setting_quiz_reviewoptions('quiz/review',
|
||||
get_string('reviewoptions', 'quiz'), get_string('configreviewoptions', 'quiz'),
|
||||
array('value' => 0x3fffffff, 'fix' => false)));
|
||||
|
||||
// popup
|
||||
$quizsettings->add(new admin_setting_quiz_yesno('popup',
|
||||
$quizsettings->add(new admin_setting_yesno_with_advanced('quiz/popup',
|
||||
get_string('popup', 'quiz'), get_string('configpopup', 'quiz'),
|
||||
array('value' => 0, 'fix' => false)));
|
||||
|
||||
// quizpassword
|
||||
$quizsettings->add(new admin_setting_quiz_text('password',
|
||||
$quizsettings->add(new admin_setting_text_with_advanced('quiz/password',
|
||||
get_string('requirepassword', 'quiz'), get_string('configrequirepassword', 'quiz'),
|
||||
array('value' => '', 'fix' => false), PARAM_TEXT));
|
||||
|
||||
// subnet
|
||||
$quizsettings->add(new admin_setting_quiz_text('subnet',
|
||||
$quizsettings->add(new admin_setting_text_with_advanced('quiz/subnet',
|
||||
get_string('requiresubnet', 'quiz'), get_string('configrequiresubnet', 'quiz'),
|
||||
array('value' => '', 'fix' => false), PARAM_TEXT));
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user