true]; $start_date = isset($_REQUEST['startDate']) ? $_REQUEST['startDate'] : ''; $end_date = isset($_REQUEST['endDate']) ? $_REQUEST['endDate'] : ''; $user_id = isset($_REQUEST['student']) ? $_REQUEST['student'] : ''; $course_code = isset($_REQUEST['course']) ? $_REQUEST['course'] : ''; $type = isset($_REQUEST['type']) ? $_REQUEST['type'] : ''; $sessionId = isset($_REQUEST['session_id']) ? $_REQUEST['session_id'] : 0; $courseInfo = api_get_course_info($course_code); $connections = MySpace::get_connections_to_course_by_date( $user_id, $courseInfo, $sessionId, $start_date, $end_date, true ); if (is_array($connections) && count($connections) > 0) { $result['is_empty'] = false; $tableData = []; foreach ($connections as $data) { $item = [ api_get_local_time($data['login']), api_time_to_hms(api_strtotime($data['logout']) - api_strtotime($data['login'])), $data['user_ip'], ]; $tableData[] = $item; } $table = new SortableTableFromArray( $tableData, 0, 500, 'stat_table', null, 'stat_table' ); $table->set_header(1, get_lang('LoginDate'), false); $table->set_header(2, get_lang('Duration'), false); $table->set_header(3, get_lang('IP'), false); $result['result'] = $table->return_table(); if ($export) { Export::arrayToXls($table->toArray()); exit; } $rst = MySpace::getStats( $user_id, $courseInfo, $sessionId, $start_date, $end_date ); $stats = ''.get_lang('Total').': '.$rst['total'].'
'; $stats .= ''.get_lang('Average').': '.$rst['avg'].'
'; $stats .= ''.get_lang('Quantity').' : '.$rst['times'].'
'; $result['stats'] = $stats; $result['graph_result'] = MySpace::grapher($connections, $start_date, $end_date, $type); } else { $result['result'] = Display::return_message( get_lang('NoDataAvailable'), 'warning' ); $result['graph_result'] = Display::return_message( get_lang('NoDataAvailable'), 'warning' ); $result['stats'] = Display::return_message( get_lang('NoDataAvailable'), 'warning' ); } header('Cache-Control: no-cache'); echo json_encode($result); break; } exit;