/** * Gets the total time spent on this item view so far * @param string $origin Origin of the request. If coming from PHP, * send formatted as xxhxx'xx", otherwise use scorm format 00:00:00 * @param integer|null $given_time Given time is a default time to return formatted * @param bool $query_db Whether to get the value from db or from memory * @return string A string with the time in SCORM format */ public function get_scorm_time($origin = 'php', $given_time = null, $query_db = false) { $time = null; $course_id = api_get_course_int_id(); if (!isset($given_time)) { if (self::debug > 2) { error_log('learnpathItem::get_scorm_time(): given time empty, current_start_time = ' . $this->current_start_time, 0); } if ($query_db === true) { $table = Database::get_course_table(TABLE_LP_ITEM_VIEW); $sql = "SELECT start_time, total_time\n FROM {$table}\n WHERE\n c_id = {$course_id} AND\n id = '" . $this->db_item_view_id . "' AND\n view_count = '" . $this->get_attempt_id() . "'"; $res = Database::query($sql); $row = Database::fetch_array($res); $start = $row['start_time']; $stop = $start + $row['total_time']; } else { $start = $this->current_start_time; $stop = $this->current_stop_time; } if (!empty($start)) { if (!empty($stop)) { $time = $stop - $start; } else { $time = time() - $start; } } } else { $time = $given_time; } if (self::debug > 2) { error_log('learnpathItem::get_scorm_time(): intermediate = ' . $time, 0); } $time = api_format_time($time, $origin); return $time; }
$reportTitle = sprintf(get_lang('TimeReportForTeacherX'), $teacher['complete_name']); $courses = CourseManager::get_courses_list_by_user_id($selectedTeacher, false); if (!empty($courses)) { foreach ($courses as $course) { $courseInfo = api_get_course_info_by_id($course['real_id']); $totalTime = UserManager::getTimeSpentInCourses($selectedTeacher, $course['real_id'], 0, $selectedFrom, $selectedUntil); $formattedTime = api_format_time($totalTime); $timeReport->data[] = array('session' => null, 'course' => array('id' => $courseInfo['real_id'], 'name' => $courseInfo['title']), 'coach' => $teacherData, 'totalTime' => $formattedTime); } } $coursesInSession = SessionManager::getCoursesListByCourseCoach($selectedTeacher); foreach ($coursesInSession as $userCourseSubscription) { $course = $userCourseSubscription->getCourse(); $session = $userCourseSubscription->getSession(); $totalTime = UserManager::getTimeSpentInCourses($selectedTeacher, $course->getId(), $session->getId(), $selectedFrom, $selectedUntil); $formattedTime = api_format_time($totalTime); $timeReport->data[] = array('session' => ['id' => $session->getId(), 'name' => $session->getName()], 'course' => array('id' => $course->getId(), 'name' => $course->getTitle()), 'coach' => $teacherData, 'totalTime' => $formattedTime); } } if (empty($selectedCourse) && empty($selectedSession) && empty($selectedTeacher)) { foreach ($teacherList as &$teacher) { $timeReport->data[] = array('coach' => array('username' => $teacher['username'], 'completeName' => $teacher['completeName']), 'totalTime' => SessionManager::getTotalUserTimeInPlatform($teacher['user_id'], $selectedFrom, $selectedUntil)); } } $timeReport->sortData($withFilter); if (isset($_GET['export'])) { $dataToExport = $timeReport->prepareDataToExport($withFilter); $fileName = get_lang('TeacherTimeReport') . ' ' . api_get_local_time(); switch ($_GET['export']) { case 'pdf': $params = array('add_signatures' => false, 'filename' => $fileName, 'pdf_title' => "{$reportTitle} - {$reportSubTitle}", 'pdf_description' => get_lang('TeacherTimeReport'), 'format' => 'A4-L', 'orientation' => 'L');