Example #1
0
 public function show_attempt_timer_if_needed($attempt, $timenow)
 {
     global $PAGE;
     $timeleft = false;
     foreach ($this->_rules as $rule) {
         $ruletimeleft = $rule->time_left($attempt, $timenow);
         if ($ruletimeleft !== false && ($timeleft === false || $ruletimeleft < $timeleft)) {
             $timeleft = $ruletimeleft;
         }
     }
     if ($timeleft !== false) {
         // Make sure the timer starts just above zero. If $timeleft was <= 0, then
         // this will just have the effect of causing the quiz to be submitted immediately.
         $timerstartvalue = max($timeleft, 1);
         $PAGE->requires->js_init_call('M.mod_quiz.timer.init', array($timerstartvalue), false, reader_get_js_module());
     }
 }
Example #2
0
// Check the access rules.
$output = $PAGE->get_renderer('mod_quiz');
$accessmanager = $attemptobj->get_access_manager(time());
$messages = $accessmanager->prevent_access();
$pagetext = $page + 1;
$logtext = "readerID {$attemptobj->readerobj->reader->id}; reader quiz {$attemptobj->readerobj->book->id}; page: {$pagetext}";
add_to_log($attemptobj->readerobj->course->id, "reader", "view attempt: " . addslashes($attemptobj->readerobj->book->name), "view.php?id={$id}", $logtext);
// Get the list of questions needed by this page.
$slots = $attemptobj->get_slots($page);
// Check.
if (empty($slots)) {
    throw new moodle_reader_exception($attemptobj->get_readerobj(), 'noquestionsfound');
}
// Initialise the JavaScript.
$headtags = $attemptobj->get_html_head_contributions($page);
$PAGE->requires->js_init_call('M.mod_quiz.init_attempt_form', null, false, reader_get_js_module());
$PAGE->requires->css('/mod/reader/css/timer.css');
// Arrange for the navigation to be displayed.
$headtags = $attemptobj->get_html_head_contributions($page);
$PAGE->set_heading($attemptobj->get_course()->fullname);
$PAGE->set_title(format_string($attemptobj->get_reader_name()));
$PAGE->requires->js('/mod/reader/js/timer.js');
if ($attemptobj->is_last_page($page)) {
    $nextpage = -1;
} else {
    $nextpage = $page + 1;
}
$accessmanager->show_attempt_timer_if_needed($attemptobj->get_attempt(), time());
if ($attemptobj->readerobj->reader->timelimit > 0) {
    $totaltimertime = $attemptobj->readerobj->reader->timelimit * 60 - (time() - $attemptobj->attempt->timestart);
    if ($totaltimertime < 0) {