|
@@ -345,8 +345,11 @@ class Tracking
|
|
|
$extend_link = '';
|
|
|
if (!empty($inter_num)) {
|
|
|
$extend_link = Display::url(
|
|
|
- Display::return_icon('visible.gif', get_lang('HideAttemptView')),
|
|
|
- api_get_self() . '?action=stats&fold_id=' . $my_item_id . $url_suffix
|
|
|
+ Display::return_icon(
|
|
|
+ 'visible.gif',
|
|
|
+ get_lang('HideAttemptView')
|
|
|
+ ),
|
|
|
+ api_get_self().'?action=stats&fold_id='.$my_item_id.$url_suffix
|
|
|
);
|
|
|
}
|
|
|
$title = $row['mytitle'];
|
|
@@ -450,7 +453,10 @@ class Tracking
|
|
|
|
|
|
if ($row['item_type'] != 'dir') {
|
|
|
if (!$is_allowed_to_edit && $result_disabled_ext_all) {
|
|
|
- $view_score = Display::return_icon('invisible.gif', get_lang('ResultsHiddenByExerciseSetting'));
|
|
|
+ $view_score = Display::return_icon(
|
|
|
+ 'invisible.gif',
|
|
|
+ get_lang('ResultsHiddenByExerciseSetting')
|
|
|
+ );
|
|
|
} else {
|
|
|
switch ($row['item_type']) {
|
|
|
case 'sco':
|
|
@@ -1175,6 +1181,7 @@ class Tracking
|
|
|
Export::arrayToCsv($csv_content, 'reporting_learning_path_details');
|
|
|
exit;
|
|
|
}
|
|
|
+
|
|
|
return $output;
|
|
|
}
|
|
|
|
|
@@ -1489,7 +1496,7 @@ class Tracking
|
|
|
$tbl_track_course = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
|
|
|
if (is_array($user_id)) {
|
|
|
$user_id = array_map('intval', $user_id);
|
|
|
- $condition_user = " AND user_id IN (".implode(',',$user_id).") ";
|
|
|
+ $condition_user = " AND user_id IN (".implode(',', $user_id).") ";
|
|
|
} else {
|
|
|
$user_id = intval($user_id);
|
|
|
$condition_user = " AND user_id = $user_id ";
|
|
@@ -1552,8 +1559,11 @@ class Tracking
|
|
|
* @return string|int|bool Date format long without day, false if there are no connections or
|
|
|
* timestamp if parameter $return_timestamp is true
|
|
|
*/
|
|
|
- public static function get_last_connection_date($student_id, $warning_message = false, $return_timestamp = false)
|
|
|
- {
|
|
|
+ public static function get_last_connection_date(
|
|
|
+ $student_id,
|
|
|
+ $warning_message = false,
|
|
|
+ $return_timestamp = false
|
|
|
+ ) {
|
|
|
$table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LOGIN);
|
|
|
$sql = 'SELECT login_date
|
|
|
FROM ' . $table . '
|
|
@@ -1566,12 +1576,12 @@ class Tracking
|
|
|
if ($last_login_date = Database::result($rs, 0, 0)) {
|
|
|
$last_login_date = api_get_local_time($last_login_date);
|
|
|
if ($return_timestamp) {
|
|
|
- return api_strtotime($last_login_date,'UTC');
|
|
|
+ return api_strtotime($last_login_date, 'UTC');
|
|
|
} else {
|
|
|
if (!$warning_message) {
|
|
|
return api_format_date($last_login_date, DATE_FORMAT_SHORT);
|
|
|
} else {
|
|
|
- $timestamp = api_strtotime($last_login_date,'UTC');
|
|
|
+ $timestamp = api_strtotime($last_login_date, 'UTC');
|
|
|
$currentTimestamp = time();
|
|
|
|
|
|
//If the last connection is > than 7 days, the text is red
|
|
@@ -1585,6 +1595,7 @@ class Tracking
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
return false;
|
|
|
}
|
|
|
|
|
@@ -1639,30 +1650,34 @@ class Tracking
|
|
|
$session_id = 0,
|
|
|
$convert_date = true
|
|
|
) {
|
|
|
- $student_id = intval($student_id);
|
|
|
+ $student_id = intval($student_id);
|
|
|
$courseId = intval($courseId);
|
|
|
- $session_id = intval($session_id);
|
|
|
+ $session_id = intval($session_id);
|
|
|
|
|
|
- $tbl_track_login = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
|
|
|
- $sql = 'SELECT login_course_date
|
|
|
- FROM '.$tbl_track_login.'
|
|
|
+ $tbl_track_login = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
|
|
|
+ $sql = 'SELECT login_course_date
|
|
|
+ FROM '.$tbl_track_login.'
|
|
|
WHERE
|
|
|
user_id = '.$student_id.' AND
|
|
|
c_id = '.$courseId.' AND
|
|
|
session_id = '.$session_id.'
|
|
|
- ORDER BY login_course_date ASC LIMIT 0,1';
|
|
|
- $rs = Database::query($sql);
|
|
|
- if (Database::num_rows($rs) > 0) {
|
|
|
- if ($first_login_date = Database::result($rs, 0, 0)) {
|
|
|
- if ($convert_date) {
|
|
|
- return api_convert_and_format_date($first_login_date, DATE_FORMAT_SHORT);
|
|
|
- } else {
|
|
|
- return $first_login_date;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ ORDER BY login_course_date ASC
|
|
|
+ LIMIT 0,1';
|
|
|
+ $rs = Database::query($sql);
|
|
|
+ if (Database::num_rows($rs) > 0) {
|
|
|
+ if ($first_login_date = Database::result($rs, 0, 0)) {
|
|
|
+ if ($convert_date) {
|
|
|
+ return api_convert_and_format_date(
|
|
|
+ $first_login_date,
|
|
|
+ DATE_FORMAT_SHORT
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ return $first_login_date;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- return false;
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1678,13 +1693,13 @@ class Tracking
|
|
|
$session_id = 0,
|
|
|
$convert_date = true
|
|
|
) {
|
|
|
- // protect data
|
|
|
- $student_id = intval($student_id);
|
|
|
+ // protect data
|
|
|
+ $student_id = intval($student_id);
|
|
|
$courseId = $courseInfo['real_id'];
|
|
|
- $session_id = intval($session_id);
|
|
|
+ $session_id = intval($session_id);
|
|
|
|
|
|
- $tbl_track_e_access = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
|
|
|
- $sql = 'SELECT access_date
|
|
|
+ $tbl_track_e_access = Database::get_main_table(TABLE_STATISTIC_TRACK_E_ACCESS);
|
|
|
+ $sql = 'SELECT access_date
|
|
|
FROM '.$tbl_track_e_access.'
|
|
|
WHERE access_user_id = '.$student_id.' AND
|
|
|
c_id = "'.$courseId.'" AND
|
|
@@ -1692,39 +1707,39 @@ class Tracking
|
|
|
ORDER BY access_date DESC
|
|
|
LIMIT 0,1';
|
|
|
|
|
|
- $rs = Database::query($sql);
|
|
|
- if (Database::num_rows($rs) > 0) {
|
|
|
- if ($last_login_date = Database::result($rs, 0, 0)) {
|
|
|
+ $rs = Database::query($sql);
|
|
|
+ if (Database::num_rows($rs) > 0) {
|
|
|
+ if ($last_login_date = Database::result($rs, 0, 0)) {
|
|
|
if (empty($last_login_date)) {
|
|
|
return false;
|
|
|
}
|
|
|
//see #5736
|
|
|
$last_login_date_timestamp = api_strtotime($last_login_date);
|
|
|
- $now = time();
|
|
|
- //If the last connection is > than 7 days, the text is red
|
|
|
- //345600 = 7 days in seconds
|
|
|
- if ($now - $last_login_date_timestamp > 604800) {
|
|
|
- if ($convert_date) {
|
|
|
+ $now = time();
|
|
|
+ //If the last connection is > than 7 days, the text is red
|
|
|
+ //345600 = 7 days in seconds
|
|
|
+ if ($now - $last_login_date_timestamp > 604800) {
|
|
|
+ if ($convert_date) {
|
|
|
$last_login_date = api_convert_and_format_date($last_login_date, DATE_FORMAT_SHORT);
|
|
|
$icon = api_is_allowed_to_edit() ?
|
|
|
'<a href="'.api_get_path(WEB_CODE_PATH).'announcements/announcements.php?action=add&remind_inactive='.$student_id.'&cidReq='.$courseInfo['code'].'" title="'.get_lang('RemindInactiveUser').'">
|
|
|
'.Display::return_icon('messagebox_warning.gif').'
|
|
|
</a>'
|
|
|
: null;
|
|
|
- return $icon. Display::label($last_login_date, 'warning');
|
|
|
- } else {
|
|
|
- return $last_login_date;
|
|
|
- }
|
|
|
- } else {
|
|
|
- if ($convert_date) {
|
|
|
- return api_convert_and_format_date($last_login_date, DATE_FORMAT_SHORT);
|
|
|
- } else {
|
|
|
- return $last_login_date;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return false;
|
|
|
+ return $icon. Display::label($last_login_date, 'warning');
|
|
|
+ } else {
|
|
|
+ return $last_login_date;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ($convert_date) {
|
|
|
+ return api_convert_and_format_date($last_login_date, DATE_FORMAT_SHORT);
|
|
|
+ } else {
|
|
|
+ return $last_login_date;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1738,11 +1753,11 @@ class Tracking
|
|
|
public static function get_course_connections_count($courseId, $session_id = 0, $start = 0, $stop = null)
|
|
|
{
|
|
|
if ($start < 0) {
|
|
|
- $start = 0;
|
|
|
- }
|
|
|
- if (!isset($stop) or ($stop < 0)) {
|
|
|
- $stop = api_get_utc_datetime();
|
|
|
- }
|
|
|
+ $start = 0;
|
|
|
+ }
|
|
|
+ if (!isset($stop) or ($stop < 0)) {
|
|
|
+ $stop = api_get_utc_datetime();
|
|
|
+ }
|
|
|
|
|
|
// Given we're storing in cache, round the start and end times
|
|
|
// to the lower minute
|
|
@@ -1793,7 +1808,7 @@ class Tracking
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return $count;
|
|
|
+ return $count;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1804,25 +1819,25 @@ class Tracking
|
|
|
*/
|
|
|
public static function count_course_per_student($user_id, $include_sessions = true)
|
|
|
{
|
|
|
- $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);
|
|
|
+ $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 c_id
|
|
|
+ $sql = 'SELECT DISTINCT c_id
|
|
|
FROM ' . $tbl_course_rel_user . '
|
|
|
WHERE user_id = ' . $user_id.' AND relation_type<>'.COURSE_RELATION_TYPE_RRHH;
|
|
|
- $rs = Database::query($sql);
|
|
|
- $nb_courses = Database::num_rows($rs);
|
|
|
+ $rs = Database::query($sql);
|
|
|
+ $nb_courses = Database::num_rows($rs);
|
|
|
|
|
|
- if ($include_sessions) {
|
|
|
- $sql = 'SELECT DISTINCT c_id
|
|
|
+ if ($include_sessions) {
|
|
|
+ $sql = 'SELECT DISTINCT c_id
|
|
|
FROM ' . $tbl_session_course_rel_user . '
|
|
|
WHERE user_id = ' . $user_id;
|
|
|
- $rs = Database::query($sql);
|
|
|
- $nb_courses += Database::num_rows($rs);
|
|
|
- }
|
|
|
+ $rs = Database::query($sql);
|
|
|
+ $nb_courses += Database::num_rows($rs);
|
|
|
+ }
|
|
|
|
|
|
- return $nb_courses;
|
|
|
+ return $nb_courses;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1853,25 +1868,25 @@ class Tracking
|
|
|
$into_lp = 0
|
|
|
) {
|
|
|
$course_code = Database::escape_string($course_code);
|
|
|
- $course_info = api_get_course_info($course_code);
|
|
|
- if (!empty($course_info)) {
|
|
|
- // table definition
|
|
|
- $tbl_course_quiz = Database::get_course_table(TABLE_QUIZ_TEST);
|
|
|
- $tbl_stats_exercise = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
|
|
|
-
|
|
|
- // Compose a filter based on optional exercise given
|
|
|
- $condition_quiz = "";
|
|
|
- if (!empty($exercise_id)) {
|
|
|
- $exercise_id = intval($exercise_id);
|
|
|
- $condition_quiz =" AND id = $exercise_id ";
|
|
|
- }
|
|
|
+ $course_info = api_get_course_info($course_code);
|
|
|
+ if (!empty($course_info)) {
|
|
|
+ // table definition
|
|
|
+ $tbl_course_quiz = Database::get_course_table(TABLE_QUIZ_TEST);
|
|
|
+ $tbl_stats_exercise = Database::get_main_table(TABLE_STATISTIC_TRACK_E_EXERCISES);
|
|
|
+
|
|
|
+ // Compose a filter based on optional exercise given
|
|
|
+ $condition_quiz = "";
|
|
|
+ if (!empty($exercise_id)) {
|
|
|
+ $exercise_id = intval($exercise_id);
|
|
|
+ $condition_quiz =" AND id = $exercise_id ";
|
|
|
+ }
|
|
|
|
|
|
- // Compose a filter based on optional session id given
|
|
|
- $condition_session = '';
|
|
|
- if (isset($session_id)) {
|
|
|
- $session_id = intval($session_id);
|
|
|
- $condition_session = " AND session_id = $session_id ";
|
|
|
- }
|
|
|
+ // Compose a filter based on optional session id given
|
|
|
+ $condition_session = '';
|
|
|
+ if (isset($session_id)) {
|
|
|
+ $session_id = intval($session_id);
|
|
|
+ $condition_session = " AND session_id = $session_id ";
|
|
|
+ }
|
|
|
if ($active_filter == 1) {
|
|
|
$condition_active = 'AND active <> -1';
|
|
|
} elseif ($active_filter == 0) {
|
|
@@ -2039,11 +2054,11 @@ class Tracking
|
|
|
/**
|
|
|
* Get count student's exercise progress
|
|
|
*
|
|
|
- * @param array $exercise_list
|
|
|
- * @param int $user_id
|
|
|
- * @param int $courseId
|
|
|
- * @param int $session_id
|
|
|
- */
|
|
|
+ * @param array $exercise_list
|
|
|
+ * @param int $user_id
|
|
|
+ * @param int $courseId
|
|
|
+ * @param int $session_id
|
|
|
+ */
|
|
|
public static function get_exercise_student_progress($exercise_list, $user_id, $courseId, $session_id)
|
|
|
{
|
|
|
$courseId = intval($courseId);
|