mirror of
https://github.com/moodle/moodle.git
synced 2025-03-14 12:40:01 +01:00
MDL-20636 Changed guest access and enrollment code checking
This commit is contained in:
parent
56cef201da
commit
88c7e2a9b6
@ -415,15 +415,33 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
*/
|
||||
public function view_page($course, $quiz, $cm, $context, $messages, $viewobj, $buttontext) {
|
||||
$output = '';
|
||||
$output .= $this->view_information($course, $quiz, $cm, $context, $messages, $viewobj);
|
||||
$output .= $this->view_information($course, $quiz, $cm, $context, $messages);
|
||||
$output .= $this->view_table($quiz, $context, $viewobj);
|
||||
$output .= $this->view_best_score($viewobj);
|
||||
$output .= $this->view_result_info($quiz, $context, $cm, $viewobj);
|
||||
$output .= $this->view_attempt_button($course, $quiz, $cm, $context, $viewobj, $buttontext);
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function view_page_guest($course, $quiz, $cm, $context, $messages){
|
||||
$output = '';
|
||||
$output .= $this->view_information($course, $quiz, $cm, $context, $messages);
|
||||
$output .= $this->confirm('<p>' . get_string('guestsno', 'quiz') . "</p>\n\n<p>" .
|
||||
get_string('liketologin') . "</p>\n", get_login_url(), get_referer(false));
|
||||
return $output;
|
||||
}
|
||||
|
||||
public function view_page_notenrolled($course, $quiz, $cm, $context, $messages){
|
||||
global $CFG;
|
||||
$output = '';
|
||||
$output .= $this->view_information($course, $quiz, $cm, $context, $messages);
|
||||
$output .= $this->box('<p>' . get_string('youneedtoenrol', 'quiz') . "</p>\n\n<p>" .
|
||||
$this->continue_button($CFG->wwwroot . '/course/view.php?id=' . $course->id) .
|
||||
"</p>\n", 'generalbox', 'notice');
|
||||
return $output;
|
||||
}
|
||||
|
||||
private function view_information($course, $quiz, $cm, $context, $messages, $viewobj) {
|
||||
private function view_information($course, $quiz, $cm, $context, $messages) {
|
||||
global $CFG;
|
||||
$output = '';
|
||||
// Print quiz name and description
|
||||
@ -444,23 +462,6 @@ class mod_quiz_renderer extends plugin_renderer_base {
|
||||
$output .= '<div class="quizattemptcounts">' . $strattemptnum . "</div>\n";
|
||||
}
|
||||
}
|
||||
|
||||
// Guests can't do a quiz, so offer them a choice of logging in or going back.
|
||||
if (isguestuser()) {
|
||||
echo $this->confirm('<p>' . get_string('guestsno', 'quiz') . "</p>\n\n<p>" .
|
||||
get_string('liketologin') . "</p>\n", get_login_url(), get_referer(false));
|
||||
echo $this->footer();
|
||||
exit;
|
||||
}
|
||||
|
||||
// If they are not enrolled in this course in a good enough role, tell them to enrol.
|
||||
if (!($viewobj->canattempt || $viewobj->canpreview || $viewobj->canreviewmine)) {
|
||||
echo $this->box('<p>' . get_string('youneedtoenrol', 'quiz') . "</p>\n\n<p>" .
|
||||
$this->continue_button($CFG->wwwroot . '/course/view.php?id=' . $course->id) .
|
||||
"</p>\n", 'generalbox', 'notice');
|
||||
echo $this->footer();
|
||||
exit;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
@ -212,7 +212,15 @@ $PAGE->set_heading($course->fullname);
|
||||
$output = $PAGE->get_renderer('mod_quiz');
|
||||
echo $OUTPUT->header();
|
||||
|
||||
echo $output->view_page($course, $quiz, $cm, $context, $messages, $viewobj, $buttontext);
|
||||
// Guests can't do a quiz, so offer them a choice of logging in or going back.
|
||||
if (isguestuser()) {
|
||||
echo $output->view_page_guest($course, $quiz, $cm, $context, $messages, $viewobj);
|
||||
} elseif (!isguestuser() && !($viewobj->canattempt || $viewobj->canpreview || $viewobj->canreviewmine)) {
|
||||
// If they are not enrolled in this course in a good enough role, tell them to enrol.
|
||||
echo $output->view_page_notenrolled($course, $quiz, $cm, $context, $messages, $viewobj);
|
||||
} else {
|
||||
echo $output->view_page($course, $quiz, $cm, $context, $messages, $viewobj, $buttontext);
|
||||
}
|
||||
|
||||
// Mark module as viewed (note, we do this here and not in finish_page,
|
||||
// otherwise the 'not enrolled' error conditions would result in marking
|
||||
|
Loading…
x
Reference in New Issue
Block a user