123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885 |
- <?php
- class Tracking {
-
- function get_time_spent_on_the_platform($user_id) {
- $tbl_track_login = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
- $sql = 'SELECT login_date, logout_date FROM ' . $tbl_track_login . '
- WHERE login_user_id = ' . intval($user_id).' AND logout_date IS NOT NULL';
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- $nb_seconds = 0;
- while ($a_connections = Database::fetch_array($rs)) {
- $s_login_date = $a_connections["login_date"];
- $s_logout_date = $a_connections["logout_date"];
- $i_timestamp_login_date = strtotime($s_login_date);
- $i_timestamp_logout_date = strtotime($s_logout_date);
- $nb_seconds += ($i_timestamp_logout_date - $i_timestamp_login_date);
- }
- return $nb_seconds;
- }
-
- function get_time_spent_on_the_course($user_id, $course_code) {
-
- $user_id = intval($user_id);
- $course_code = addslashes($course_code);
- $tbl_track_course = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
- $sql = 'SELECT login_course_date, logout_course_date FROM ' . $tbl_track_course . '
- WHERE user_id = ' . $user_id . '
- AND course_code="' . $course_code . '"';
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- $nb_seconds = 0;
- while ($a_connections = Database::fetch_array($rs)) {
- $s_login_date = $a_connections["login_course_date"];
- $s_logout_date = $a_connections["logout_course_date"];
- $i_timestamp_login_date = strtotime($s_login_date);
- $i_timestamp_logout_date = strtotime($s_logout_date);
- $nb_seconds += ($i_timestamp_logout_date - $i_timestamp_login_date);
- }
- return $nb_seconds;
- }
-
- function get_first_connection_date($student_id) {
- $tbl_track_login = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
- $sql = 'SELECT login_date FROM ' . $tbl_track_login . '
- WHERE login_user_id = ' . intval($student_id) . '
- ORDER BY login_date ASC LIMIT 0,1';
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- if(Database::num_rows($rs)>0)
- {
- if ($first_login_date = Database::result($rs, 0, 0)) {
- return format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($first_login_date));
- }
- }
- return false;
- }
- function get_last_connection_date($student_id, $warning_message = false, $return_timestamp = false) {
- $tbl_track_login = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LOGIN);
- $sql = 'SELECT login_date FROM ' . $tbl_track_login . '
- WHERE login_user_id = ' . intval($student_id) . '
- ORDER BY login_date DESC LIMIT 0,1';
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- if(Database::num_rows($rs)>0)
- {
- if ($last_login_date = Database::result($rs, 0, 0))
- {
- if ($return_timestamp)
- {
- return strtotime($last_login_date);
- }
- else
- {
- if (!$warning_message)
- {
- return format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($last_login_date));
- }
- else
- {
- $timestamp = strtotime($last_login_date);
- $currentTimestamp = mktime();
-
-
-
- if ($currentTimestamp - $timestamp > 604800)
- {
- return '<span style="color: #F00;">' . format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($last_login_date)) . '</span>';
- }
- else
- {
- return format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($last_login_date));
- }
- }
- }
- }
- }
- return false;
- }
-
- function get_first_connection_date_on_the_course($student_id, $course_code) {
- $tbl_track_login = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
- $sql = 'SELECT login_course_date FROM ' . $tbl_track_login . '
- WHERE user_id = ' . intval($student_id) . '
- AND course_code = "' . Database::escape_string($course_code) . '"
- ORDER BY login_course_date ASC LIMIT 0,1';
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- if(Database::num_rows($rs)>0)
- {
- if ($first_login_date = Database::result($rs, 0, 0)) {
- return format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($first_login_date));
- }
- }
- return false;
- }
- function get_last_connection_date_on_the_course($student_id, $course_code) {
- $tbl_track_login = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
- $sql = 'SELECT login_course_date FROM ' . $tbl_track_login . '
- WHERE user_id = ' . intval($student_id) . '
- AND course_code = "' . Database::escape_string($course_code) . '"
- ORDER BY login_course_date DESC LIMIT 0,1';
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- if(Database::num_rows($rs)>0)
- {
- if ($last_login_date = Database::result($rs, 0, 0)) {
- $timestamp = strtotime($last_login_date);
- $currentTimestamp = mktime();
-
-
- if ($currentTimestamp - $timestamp > 604800) {
- return '<span style="color: #F00;">' . format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($last_login_date)) . ' <a href="'.api_get_path(REL_CODE_PATH).'announcements/announcements.php?action=add&remind_inactive='.$student_id.'" title="'.get_lang('RemindInactiveUser').'"><img align="middle" src="'.api_get_path(WEB_IMG_PATH).'messagebox_warning.gif" /></a></span>';
- } else {
- return format_locale_date(get_lang('DateFormatLongWithoutDay'), strtotime($last_login_date));
- }
- }
- }
- return false;
- }
- function count_course_per_student($user_id) {
- $user_id = intval($user_id);
- $tbl_course_rel_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
- $tbl_session_course_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $sql = 'SELECT DISTINCT course_code
- FROM ' . $tbl_course_rel_user . '
- WHERE user_id = ' . $user_id;
- $rs = api_sql_query($sql, __FILE__, __LINE__);
- $nb_courses = Database::num_rows($rs);
- $sql = 'SELECT DISTINCT course_code
- FROM ' . $tbl_session_course_rel_user . '
- WHERE id_user = ' . $user_id;
- $rs = api_sql_query($sql, __FILE__, __LINE__);
- $nb_courses += Database::num_rows($rs);
- return $nb_courses;
- }
- function get_avg_student_progress($student_id, $course_code) {
- require_once (api_get_path(LIBRARY_PATH) . 'course.lib.php');
-
- $student_id = intval($student_id);
- $course_code = addslashes($course_code);
-
- $a_course = CourseManager :: get_course_information($course_code);
- if(!empty($a_course['db_name']))
- {
-
- $tbl_course_lp_view = Database :: get_course_table(TABLE_LP_VIEW, $a_course['db_name']);
- $tbl_course_lp_view_item = Database :: get_course_table(TABLE_LP_ITEM_VIEW, $a_course['db_name']);
- $tbl_course_lp_item = Database :: get_course_table(TABLE_LP_ITEM, $a_course['db_name']);
- $tbl_course_lp = Database :: get_course_table(TABLE_LP_MAIN, $a_course['db_name']);
-
-
- $sql = 'SELECT id FROM ' . $tbl_course_lp;
- $rs = api_sql_query($sql, __FILE__, __LINE__);
- $nb_lp = Database::num_rows($rs);
- $avg_progress = 0;
-
- if ($nb_lp > 0) {
- while ($lp = Database :: fetch_array($rs)) {
-
- $sqlProgress = "SELECT progress
- FROM " . $tbl_course_lp_view . " AS lp_view
- WHERE lp_view.user_id = " . $student_id . "
- AND lp_view.lp_id = " . $lp['id'] . "
- ";
- $resultItem = api_sql_query($sqlProgress, __FILE__, __LINE__);
- if(Database::num_rows($resultItem)>0)
- {
- $avg_progress += Database::result($resultItem, 0, 0);
- }
- }
- $avg_progress = round($avg_progress / $nb_lp, 1);
- }
-
- return $avg_progress;
- }
- else
- {
- return null;
- }
- }
-
- function get_avg_student_score($student_id, $course_code) {
-
- $course_table = Database :: get_main_table(TABLE_MAIN_COURSE);
- $course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
- $table_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
-
- $tbl_stats_exercices = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_EXERCICES);
- $tbl_stats_attempts= Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_ATTEMPT);
-
-
- $course = CourseManager :: get_course_information($course_code);
- if(!empty($course['db_name']))
- {
- $tbl_quiz_questions= Database :: get_course_table(TABLE_QUIZ_QUESTION,$course['db_name']);
- $lp_table = Database :: get_course_table(TABLE_LP_MAIN,$course['db_name']);
- $lp_item_table = Database :: get_course_table(TABLE_LP_ITEM,$course['db_name']);
- $lp_view_table = Database :: get_course_table(TABLE_LP_VIEW,$course['db_name']);
- $lp_item_view_table = Database :: get_course_table(TABLE_LP_ITEM_VIEW,$course['db_name']);
-
- $sql_course_lp = 'SELECT id FROM '.$lp_table;
- $sql_result_lp = api_sql_query($sql_course_lp, __FILE__, __LINE__);
-
- $lp_scorm_score_total = 0;
- $lp_scorm_weighting_total = 0;
-
- if(Database::num_rows($sql_result_lp)>0){
-
- while($a_learnpath = Database::fetch_array($sql_result_lp)){
- $sql = 'SELECT id, max_score
- FROM '.$lp_item_table.' AS lp_item
- WHERE lp_id='.$a_learnpath['id'].'
- AND item_type="sco" LIMIT 1';
-
- $rs_lp_item_id_scorm = api_sql_query($sql, __FILE__, __LINE__);
-
- if(Database::num_rows($rs_lp_item_id_scorm)>0){
- $lp_item_id = Database::result($rs_lp_item_id_scorm,0,'id');
- $lp_item__max_score = Database::result($rs_lp_item_id_scorm,0,'max_score');
-
-
- $sql='SELECT max(id) as id FROM '.$lp_view_table.' WHERE lp_id='.$a_learnpath['id'].' AND user_id="'.intval($student_id).'"';
- $rs_last_lp_view_id = api_sql_query($sql, __FILE__, __LINE__);
- $lp_view_id = Database::result($rs_last_lp_view_id,0,'id');
-
- $sql='SELECT SUM(score)/count(lp_item_id) as score FROM '.$lp_item_view_table.' WHERE lp_view_id="'.$lp_view_id.'" GROUP BY lp_view_id';
-
- $rs_score = api_sql_query($sql, __FILE__, __LINE__);
- if(Database::num_rows($rs_score)>0)
- {
- $lp_scorm_score = Database::result($rs_score,0,'score');
- $lp_scorm_score = ($lp_scorm_score / $lp_item__max_score) * 100;
-
- $lp_scorm_score_total+=$lp_scorm_score;
- $lp_scorm_weighting_total+=100;
- }
- }
- }
-
-
- mysql_data_seek($sql_result_lp,0);
-
-
- while($a_learnpath = Database::fetch_array($sql_result_lp)){
-
-
-
-
- $sql = 'SELECT path, id as item_id, max_score
- FROM '.$lp_item_table.' AS lp_item
- WHERE lp_id='.$a_learnpath['id'].'
- AND item_type="quiz"';
-
- $rsItems = api_sql_query($sql, __FILE__, __LINE__);
-
-
- $sql='SELECT max(id) as id FROM '.$lp_view_table.' WHERE lp_id='.$a_learnpath['id'].' AND user_id="'.intval($student_id).'"';
- $rs_last_lp_view_id = api_sql_query($sql, __FILE__, __LINE__);
- $lp_view_id = intval(Database::result($rs_last_lp_view_id,0,'id'));
-
- $total_score = $total_weighting = 0;
- if($lp_view_id!=0)
- {
- while($item = Database :: fetch_array($rsItems, 'ASSOC'))
- {
-
- $sql = 'SELECT score as student_score
- FROM '.$lp_item_view_table.' as lp_view_item
- WHERE lp_view_item.lp_item_id = '.$item['item_id'].'
- AND lp_view_id = "'.$lp_view_id.'"
- ';
-
- $rsScores = api_sql_query($sql, __FILE__, __LINE__);
-
-
- $sql_last_attempt = 'SELECT exe_id FROM '. $tbl_stats_exercices. ' ' .
- 'WHERE exe_exo_id="' .$item['path']. '" AND exe_user_id="' . $student_id . '" AND exe_cours_id="' . $course_code . '" ORDER BY exe_date DESC limit 1';
-
- $resultLastAttempt = api_sql_query($sql_last_attempt, __FILE__, __LINE__);
- $num = Database :: num_rows($resultLastAttempt);
- if ($num > 0){
- if ($num > 1){
- while ($rowLA = Database :: fetch_row($resultLastAttempt)) {
- $id_last_attempt = $rowLA[0];
- }
- } else {
- $id_last_attempt = Database :: result($resultLastAttempt, 0, 0);
-
- }
- }
- $sql = "SELECT SUM(t.ponderation) as maxscore from ( SELECT distinct question_id, marks,ponderation FROM $tbl_stats_attempts as at " .
- "INNER JOIN $tbl_quiz_questions as q on(q.id = at.question_id) where exe_id ='$id_last_attempt' ) as t";
- $result = api_sql_query($sql, __FILE__, __LINE__);
- $row_max_score = Database :: fetch_array($result);
- $maxscore = $row_max_score['maxscore'];
- if ($maxscore=='')
- {
- $maxscore = $item['max_score'];
- }
-
- if(Database::num_rows($rsScores)>0)
- {
- $total_score += Database::result($rsScores, 0, 0);
-
-
- $total_weighting += $maxscore;
-
- if($total_weighting>0)
- {
- $lp_scorm_score_total += ($total_score/$total_weighting)*100;
- $lp_scorm_weighting_total+=100;
- }
- }
- }
- }
-
- }
- }
-
- $totalScore = $lp_scorm_score_total;
-
- $pourcentageScore = 0;
- if($lp_scorm_weighting_total>0)
- {
- $pourcentageScore = round(($totalScore * 100) / $lp_scorm_weighting_total);
- }
- return $pourcentageScore;
- }
- else
- {
- return null;
- }
- }
-
- function get_student_followed_by_coach($coach_id) {
- $coach_id = intval($coach_id);
- $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
- $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
- $a_students = array ();
-
-
-
- $sql = 'SELECT id_session, course_code FROM ' . $tbl_session_course . ' WHERE id_coach=' . $coach_id;
- $result = api_sql_query($sql,__FILE__,__LINE__);
- while ($a_courses = Database::fetch_array($result)) {
- $course_code = $a_courses["course_code"];
- $id_session = $a_courses["id_session"];
- $sql = "SELECT distinct srcru.id_user
- FROM $tbl_session_course_user AS srcru
- WHERE course_code='$course_code' AND id_session='$id_session'";
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- while ($row = Database::fetch_array($rs)) {
- $a_students[$row['id_user']] = $row['id_user'];
- }
- }
-
-
-
- $sql = 'SELECT session_course_user.id_user
- FROM ' . $tbl_session_course_user . ' as session_course_user
- INNER JOIN ' . $tbl_session_course . ' as session_course
- ON session_course.course_code = session_course_user.course_code
- AND session_course_user.id_session = session_course.id_session
- INNER JOIN ' . $tbl_session . ' as session
- ON session.id = session_course.id_session
- AND session.id_coach = ' . $coach_id;
- $result = api_sql_query($sql,__FILE__,__LINE__);
- while ($row = Database::fetch_array($result)) {
- $a_students[$row['id_user']] = $row['id_user'];
- }
- return $a_students;
- }
- function get_student_followed_by_coach_in_a_session($id_session, $coach_id) {
- $coach_id = intval($coach_id);
- $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
- $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
- $a_students = array ();
-
-
-
- $sql = 'SELECT course_code FROM ' . $tbl_session_course . ' WHERE id_session="' . $id_session . '" AND id_coach=' . $coach_id;
- $result = api_sql_query($sql,__FILE__,__LINE__);
- while ($a_courses = Database::fetch_array($result)) {
- $course_code = $a_courses["course_code"];
- $sql = "SELECT distinct srcru.id_user
- FROM $tbl_session_course_user AS srcru
- WHERE course_code='$course_code' and id_session = '" . $id_session . "'";
- $rs = api_sql_query($sql, __FILE__, __LINE__);
- while ($row = Database::fetch_array($rs)) {
- $a_students[$row['id_user']] = $row['id_user'];
- }
- }
-
-
-
- $dsl_session_coach = 'SELECT id_coach FROM ' . $tbl_session . ' WHERE id="' . $id_session . '" AND id_coach="' . $coach_id . '"';
- $result = api_sql_query($dsl_session_coach, __FILE__, __LINE__);
-
- if (Database::num_rows($result) > 0) {
- $sql = 'SELECT DISTINCT srcru.id_user FROM ' . $tbl_session_course_user . ' AS srcru WHERE id_session="' . $id_session . '"';
- $result = api_sql_query($sql,__FILE__,__LINE__);
- while ($row = Database::fetch_array($result)) {
- $a_students[$row['id_user']] = $row['id_user'];
- }
- }
- return $a_students;
- }
- function is_allowed_to_coach_student($coach_id, $student_id) {
- $coach_id = intval($coach_id);
- $student_id = intval($student_id);
- $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
- $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
-
-
-
- $sql = 'SELECT 1
- FROM ' . $tbl_session_course_user . ' AS session_course_user
- INNER JOIN ' . $tbl_session_course . ' AS session_course
- ON session_course.course_code = session_course_user.course_code
- AND id_coach=' . $coach_id . '
- WHERE id_user=' . $student_id;
- $result = api_sql_query($sql, __FILE__, __LINE__);
- if (Database::num_rows($result) > 0) {
- return true;
- }
-
-
-
- $sql = 'SELECT session_course_user.id_user
- FROM ' . $tbl_session_course_user . ' as session_course_user
- INNER JOIN ' . $tbl_session_course . ' as session_course
- ON session_course.course_code = session_course_user.course_code
- INNER JOIN ' . $tbl_session . ' as session
- ON session.id = session_course.id_session
- AND session.id_coach = ' . $coach_id . '
- WHERE id_user = ' . $student_id;
- $result = api_sql_query($sql, __FILE__, __LINE__);
- if (Database::num_rows($result) > 0) {
- return true;
- }
- return false;
- }
- function get_courses_followed_by_coach($coach_id, $id_session = '')
- {
- $coach_id = intval($coach_id);
- if (!empty ($id_session))
- $id_session = intval($id_session);
- $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
- $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
- $tbl_course = Database :: get_main_table(TABLE_MAIN_COURSE);
-
-
-
- $sql = 'SELECT DISTINCT course_code FROM ' . $tbl_session_course . ' WHERE id_coach=' . $coach_id;
- if (!empty ($id_session))
- $sql .= ' AND id_session=' . $id_session;
- $result = api_sql_query($sql, __FILE__, __LINE__);
- while ($row = Database::fetch_array($result)) {
- $a_courses[$row['course_code']] = $row['course_code'];
- }
-
-
-
- $sql = 'SELECT DISTINCT session_course.course_code
- FROM ' . $tbl_session_course . ' as session_course
- INNER JOIN ' . $tbl_session . ' as session
- ON session.id = session_course.id_session
- AND session.id_coach = ' . $coach_id . '
- INNER JOIN ' . $tbl_course . ' as course
- ON course.code = session_course.course_code';
- if (!empty ($id_session))
- $sql .= ' WHERE session_course.id_session=' . $id_session;
- $result = api_sql_query($sql, __FILE__, __LINE__);
- while ($row = Database::fetch_array($result)) {
- $a_courses[$row['course_code']] = $row['course_code'];
- }
- return $a_courses;
- }
- function get_sessions_coached_by_user($coach_id) {
-
- $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
- $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
-
- $coach_id = intval($coach_id);
-
- $sql = 'SELECT DISTINCT id, name, date_start, date_end
- FROM ' . $tbl_session . '
- WHERE id_coach=' . $coach_id;
- $rs = api_sql_query($sql,__FILE__,__LINE__);
-
- while ($row = Database::fetch_array($rs))
- {
- $a_sessions[$row["id"]] = $row;
- }
-
- $sql = 'SELECT DISTINCT session.id, session.name, session.date_start, session.date_end
- FROM ' . $tbl_session . ' as session
- INNER JOIN ' . $tbl_session_course . ' as session_course
- ON session.id = session_course.id_session
- AND session_course.id_coach=' . $coach_id;
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- while ($row = Database::fetch_array($rs))
- {
- $a_sessions[$row["id"]] = $row;
- }
- foreach ($a_sessions as & $session)
- {
- if ($session['date_start'] == '0000-00-00') {
- $session['status'] = get_lang('SessionActive');
- }
- else {
- $date_start = explode('-', $session['date_start']);
- $time_start = mktime(0, 0, 0, $date_start[1], $date_start[2], $date_start[0]);
- $date_end = explode('-', $session['date_end']);
- $time_end = mktime(0, 0, 0, $date_end[1], $date_end[2], $date_end[0]);
- if ($time_start < time() && time() < $time_end) {
- $session['status'] = get_lang('SessionActive');
- }
- else{
- if (time() < $time_start) {
- $session['status'] = get_lang('SessionFuture');
- }
- else{
- if (time() > $time_end) {
- $session['status'] = get_lang('SessionPast');
- }
- }
- }
- }
- }
- return $a_sessions;
- }
- function get_courses_list_from_session($session_id) {
-
- $session_id = intval($session_id);
-
- $tbl_session = Database :: get_main_table(TABLE_MAIN_SESSION);
- $tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
- $sql = 'SELECT DISTINCT course_code, id_coach
- FROM ' . $tbl_session_course . '
- WHERE id_session=' . $session_id;
- $rs = api_sql_query($sql, __FILE__, __LINE__);
- $a_courses = array ();
- while ($row = Database::fetch_array($rs)) {
- $a_courses[$row['course_code']] = $row;
- }
- return $a_courses;
- }
- function count_student_assignments($student_id, $course_code) {
- require_once (api_get_path(LIBRARY_PATH) . 'course.lib.php');
-
- $student_id = intval($student_id);
- $course_code = addslashes($course_code);
-
- $a_course = CourseManager :: get_course_information($course_code);
- if(!empty($a_course['db_name']))
- {
-
- $tbl_item_property = Database :: get_course_table(TABLE_ITEM_PROPERTY, $a_course['db_name']);
- $sql = 'SELECT 1
- FROM ' . $tbl_item_property . '
- WHERE insert_user_id=' . $student_id . '
- AND tool="work"';
-
- $rs = api_sql_query($sql, __LINE__, __FILE__);
- return Database::num_rows($rs);
- }
- else
- {
- return null;
- }
- }
- function count_student_messages($student_id, $course_code) {
- require_once (api_get_path(LIBRARY_PATH) . 'course.lib.php');
-
- $student_id = intval($student_id);
- $course_code = addslashes($course_code);
-
- $a_course = CourseManager :: get_course_information($course_code);
- if(!empty($a_course['db_name']))
- {
-
- $tbl_messages = Database :: get_course_table(TABLE_FORUM_POST, $a_course['db_name']);
- $sql = 'SELECT 1
- FROM ' . $tbl_messages . '
- WHERE poster_id=' . $student_id;
-
- $rs = api_sql_query($sql, __LINE__, __FILE__);
- return Database::num_rows($rs);
- }
- else
- {
- return null;
- }
- }
- function count_student_visited_links($student_id, $course_code) {
-
- $student_id = intval($student_id);
- $course_code = addslashes($course_code);
-
- $tbl_stats_links = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_LINKS);
- $sql = 'SELECT 1
- FROM ' . $tbl_stats_links . '
- WHERE links_user_id=' . $student_id . '
- AND links_cours_id="' . $course_code . '"';
- $rs = api_sql_query($sql, __LINE__, __FILE__);
- return Database::num_rows($rs);
- }
- function count_student_downloaded_documents($student_id, $course_code) {
-
- $student_id = intval($student_id);
- $course_code = addslashes($course_code);
-
- $tbl_stats_documents = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_DOWNLOADS);
- $sql = 'SELECT 1
- FROM ' . $tbl_stats_documents . '
- WHERE down_user_id=' . $student_id . '
- AND down_cours_id="' . $course_code . '"';
- $rs = api_sql_query($sql, __LINE__, __FILE__);
- return Database::num_rows($rs);
- }
- function get_course_list_in_session_from_student($user_id, $id_session) {
- $user_id = intval($user_id);
- $id_session = intval($id_session);
- $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $sql = 'SELECT course_code FROM ' . $tbl_session_course_user . ' WHERE id_user="' . $user_id . '" AND id_session="' . $id_session . '"';
- $result = api_sql_query($sql, __LINE__, __FILE__);
- $a_courses = array ();
- while ($row = Database::fetch_array($result)) {
- $a_courses[$row['course_code']] = $row['course_code'];
- }
- return $a_courses;
- }
-
- function get_inactives_students_in_course($course_code, $since, $session_id=0)
- {
- $tbl_track_login = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
- $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
- $inner = '';
- if($session_id!=0)
- {
- $inner = ' INNER JOIN '.$tbl_session_course_user.' session_course_user
- ON stats_login.course_code = session_course_user.course_code
- AND session_course_user.id_session = '.intval($session_id).'
- AND session_course_user.id_user = stats_login.user_id ';
- }
- $sql = 'SELECT user_id, MAX(login_course_date) max_date FROM'.$tbl_track_login.' stats_login'.$inner.'
- GROUP BY user_id
- HAVING DATE_SUB( NOW(), INTERVAL '.$since.' DAY) > max_date ';
-
- $rs = api_sql_query($sql,__FILE__,__LINE__);
- $inactive_users = array();
- while($user = Database::fetch_array($rs))
- {
- $inactive_users[] = $user['user_id'];
- }
- return $inactive_users;
- }
-
- function count_login_per_student($student_id, $course_code) {
- $student_id = intval($student_id);
- $course_code = addslashes($course_code);
- $tbl_course_rel_user = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ACCESS);
-
- $sql = 'SELECT '.$student_id.'
- FROM ' . $tbl_course_rel_user . '
- WHERE access_user_id=' . $student_id . '
- AND access_cours_code="' . $course_code . '"';
-
- $rs = api_sql_query($sql, __FILE__, __LINE__);
- $nb_login = Database::num_rows($rs);
-
- return $nb_login;
- }
-
-
- function get_student_followed_by_drh($hr_dept_id) {
-
- $hr_dept_id = intval($hr_dept_id);
- $a_students = array ();
-
- $tbl_organism = Database :: get_main_table(TABLE_MAIN_ORGANISM);
- $tbl_user = Database :: get_main_table(TABLE_MAIN_USER);
-
- $sql = 'SELECT DISTINCT user_id FROM '.$tbl_user.' as user
- WHERE hr_dept_id='.$hr_dept_id;
- $rs = api_sql_query($sql, __FILE__, __LINE__);
-
- while($user = Database :: fetch_array($rs))
- {
- $a_students[$user['user_id']] = $user['user_id'];
- }
-
-
- return $a_students;
- }
- }
- ?>
|