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;