$student['user_ID'] = $student_id; $stmt = $mysqli->prepare('SELECT title, initials, surname FROM users WHERE user_deleted IS NULL AND id = ?'); $stmt->bind_param('i', $userID); $stmt->execute(); $stmt->store_result(); $stmt->bind_result($student['title'], $student['initials'], $student['surname']); $stmt->fetch(); $title = $student['title']; $initials = $student['initials']; $surname = $student['surname']; $current_address = NetworkUtils::get_client_address(); $lab_factory = new LabFactory($mysqli); $lab_object = $lab_factory->get_lab_based_on_client($current_address); $propertyObj = PaperProperties::get_paper_properties_by_id($paper_id, $mysqli, $string); $log_lab_end_time = new LogLabEndTime($lab_object->get_id(), $propertyObj, $mysqli); $log_extra_time = new LogExtraTime($log_lab_end_time, $student, $mysqli); $onload = ''; if (isset($_POST['submit'])) { $invigilator_id = $userObject->get_user_ID(); if ((int) $_POST['extra_time'] == 0) { $log_extra_time->delete($invigilator_id); } elseif ((int) $_POST['extra_time'] > 0) { $special_needs_percentage = $_POST['extra_time']; $log_extra_time->save($invigilator_id, $special_needs_percentage); } $onload = 'closeWindow();'; } $special_needs_percentage = $log_extra_time->get_extra_time_secs(); $special_needs_percentage = $special_needs_percentage / 60; $time_range = range(0, 30, 1); ?>
$remaining_minutes = ''; $remaining_seconds = ''; /* * BP If the duration is set then create a timer to calculate and display the remaining time */ $extra_time = null; $remaining_time = 0; $log_metadata = new LogMetadata($userObject->get_user_ID(), $propertyObj->get_property_id(), $mysqli); // $log_metadata->get_record will return true if this user has stared this exam. false otherwise $exam_started = $log_metadata->get_record('', false); if ($exam_duration !== null) { if ($test_type == '2') { $student_object['special_needs_percentage'] = $special_needs_percentage; $student_object['user_ID'] = $userObject->get_user_ID(); $log_lab_end_time = new LogLabEndTime($lab_id, $propertyObj, $mysqli); $log_extra_time = new LogExtraTime($log_lab_end_time, $student_object, $mysqli); $extra_time_secs = $log_extra_time->get_extra_time_secs(); $extra_time_mins = $extra_time_secs / 60; $summative_timer = new SummativeTimer($log_extra_time); $remaining_time = $summative_timer->calculate_remaining_time_secs(); if ($remaining_time !== false) { $display_remaining_time = true; if ($exam_started == false and $remaining_time == 0) { // Sanity check if we have not started the exam but time remaing is 0 // happens in summative exams if we have the start and end time set wider // then the paper duration e.g in multiple sittings $remaining_time = $exam_duration_sec + $extra_time_secs; $display_remaining_time = false; } } $extra_time_mins = $extra_time_secs / 60;