This commit is contained in:
Dan Poltawski 2013-06-11 15:38:37 +08:00
commit 2504dfd61d
5 changed files with 34 additions and 7 deletions

View File

@ -1683,14 +1683,15 @@ abstract class quiz_nav_panel_base {
public function user_picture() {
global $DB;
if (!$this->attemptobj->get_quiz()->showuserpicture) {
if ($this->attemptobj->get_quiz()->showuserpicture == QUIZ_SHOWIMAGE_NONE) {
return null;
}
$user = $DB->get_record('user', array('id' => $this->attemptobj->get_userid()));
$userpicture = new user_picture($user);
$userpicture->courseid = $this->attemptobj->get_courseid();
if ($this->attemptobj->get_quiz()->showuserpicture == QUIZ_SHOWIMAGE_LARGE) {
$userpicture->size = true;
}
return $userpicture;
}
}

View File

@ -770,9 +770,12 @@ $string['showdetailedmarks'] = 'Show mark details';
$string['showeachpage'] = 'Show one page at a time';
$string['showfeedback'] = 'After answering, show feedback?';
$string['showinsecurepopup'] = 'Use a \'secure\' popup window for attempts';
$string['showlargeimage'] = 'Large image';
$string['shownoattempts'] = 'Show students with no attempts';
$string['shownoattemptsonly'] = 'Show only students with no attempts';
$string['shownoimage'] = 'No image';
$string['showreport'] = 'Show report';
$string['showsmallimage'] = 'Small image';
$string['showteacherattempts'] = 'Show teacher attempts';
$string['showuserpicture'] = 'Show the user\'s picture';
$string['showuserpicture_help'] = 'If enabled, the student\'s name and picture will be shown on-screen during the attempt, and on the review screen, making it easier to check that the student is logged in as themself in an invigilated (proctored) exam.';

View File

@ -55,6 +55,21 @@ define('QUIZ_SHOW_TIME_BEFORE_DEADLINE', '3600');
*/
define('QUIZ_MIN_TIME_TO_CONTINUE', '2');
/**
* @var int We show no image when user selects No image from dropdown menu in quiz settings.
*/
define('QUIZ_SHOWIMAGE_NONE', 0);
/**
* @var int We show small image when user selects small image from dropdown menu in quiz settings.
*/
define('QUIZ_SHOWIMAGE_SMALL', 1);
/**
* @var int We show Large image when user selects Large image from dropdown menu in quiz settings.
*/
define('QUIZ_SHOWIMAGE_LARGE', 2);
// Functions related to attempts ///////////////////////////////////////////////

View File

@ -250,8 +250,10 @@ class mod_quiz_mod_form extends moodleform_mod {
$mform->addElement('header', 'display', get_string('display', 'form'));
// Show user picture.
$mform->addElement('selectyesno', 'showuserpicture',
get_string('showuserpicture', 'quiz'));
$mform->addElement('select', 'showuserpicture', get_string('showuserpicture', 'quiz'), array(
QUIZ_SHOWIMAGE_NONE => get_string('shownoimage', 'quiz'),
QUIZ_SHOWIMAGE_SMALL => get_string('showsmallimage', 'quiz'),
QUIZ_SHOWIMAGE_LARGE => get_string('showlargeimage', 'quiz')));
$mform->addHelpButton('showuserpicture', 'showuserpicture', 'quiz');
$mform->setAdvanced('showuserpicture', $quizconfig->showuserpicture_adv);
$mform->setDefault('showuserpicture', $quizconfig->showuserpicture);

View File

@ -28,6 +28,7 @@ defined('MOODLE_INTERNAL') || die();
require_once($CFG->dirroot . '/mod/quiz/lib.php');
require_once($CFG->dirroot . '/mod/quiz/settingslib.php');
require_once($CFG->dirroot . '/mod/quiz/locallib.php');
// First get a list of quiz reports with there own settings pages. If there none,
// we use a simpler overall menu structure.
@ -152,9 +153,14 @@ foreach (mod_quiz_admin_review_setting::fields() as $field => $name) {
}
// Show the user's picture.
$quizsettings->add(new admin_setting_configcheckbox_with_advanced('quiz/showuserpicture',
$options = array(
QUIZ_SHOWIMAGE_NONE => get_string('shownoimage', 'quiz'),
QUIZ_SHOWIMAGE_SMALL => get_string('showsmallimage', 'quiz'),
QUIZ_SHOWIMAGE_LARGE => get_string('showlargeimage', 'quiz'));
$quizsettings->add(new admin_setting_configselect_with_advanced('quiz/showuserpicture',
get_string('showuserpicture', 'quiz'), get_string('configshowuserpicture', 'quiz'),
array('value' => 0, 'adv' => false)));
array('value' => QUIZ_SHOWIMAGE_NONE, 'adv' => false), $options));
// Decimal places for overall grades.
$options = array();