|
|
|
|
@ -2218,7 +2218,6 @@ class Event |
|
|
|
|
* @param int $sessionId The session in which to add the time (if any) |
|
|
|
|
* @param string $virtualTime The amount of time to be added, |
|
|
|
|
* in a hh:mm:ss format. If int, we consider it is expressed in hours. |
|
|
|
|
* @param string $ip IP address to go on record for this time record |
|
|
|
|
* |
|
|
|
|
* @return true on successful insertion, false otherwise |
|
|
|
|
*/ |
|
|
|
|
@ -2226,80 +2225,32 @@ class Event |
|
|
|
|
$courseId, |
|
|
|
|
$userId, |
|
|
|
|
$sessionId, |
|
|
|
|
$virtualTime = '', |
|
|
|
|
$ip = '' |
|
|
|
|
$virtualTime = '' |
|
|
|
|
) { |
|
|
|
|
$courseTrackingTable = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS); |
|
|
|
|
$time = $loginDate = $logoutDate = api_get_utc_datetime(); |
|
|
|
|
|
|
|
|
|
$courseId = (int) $courseId; |
|
|
|
|
$userId = (int) $userId; |
|
|
|
|
$sessionId = (int) $sessionId; |
|
|
|
|
$ip = Database::escape_string($ip); |
|
|
|
|
|
|
|
|
|
// Get the current latest course connection register. We need that |
|
|
|
|
// record to re-use the data and create a new record. |
|
|
|
|
$sql = "SELECT * |
|
|
|
|
FROM $courseTrackingTable |
|
|
|
|
WHERE |
|
|
|
|
user_id = $userId AND |
|
|
|
|
c_id = $courseId AND |
|
|
|
|
session_id = $sessionId AND |
|
|
|
|
login_course_date > '$time' - INTERVAL 3600 SECOND |
|
|
|
|
ORDER BY login_course_date DESC |
|
|
|
|
LIMIT 0,1"; |
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
|
|
|
|
|
// Ignore if we didn't find any course connection record in the last |
|
|
|
|
// hour. In this case it wouldn't be right to add a "fake" time record. |
|
|
|
|
if (Database::num_rows($result) > 0) { |
|
|
|
|
// Found the latest connection |
|
|
|
|
$row = Database::fetch_array($result); |
|
|
|
|
$courseAccessId = $row['course_access_id']; |
|
|
|
|
$courseAccessLoginDate = $row['login_course_date']; |
|
|
|
|
$counter = $row['counter']; |
|
|
|
|
$counter = $counter ? $counter : 0; |
|
|
|
|
// Insert a new record, copy of the current one (except the logout |
|
|
|
|
// date that we update to the current time) |
|
|
|
|
$sql = "INSERT INTO $courseTrackingTable( |
|
|
|
|
c_id, |
|
|
|
|
user_ip, |
|
|
|
|
user_id, |
|
|
|
|
login_course_date, |
|
|
|
|
logout_course_date, |
|
|
|
|
counter, |
|
|
|
|
session_id |
|
|
|
|
) VALUES( |
|
|
|
|
$courseId, |
|
|
|
|
'$ip', |
|
|
|
|
$userId, |
|
|
|
|
'$courseAccessLoginDate', |
|
|
|
|
'$logoutDate', |
|
|
|
|
$counter, |
|
|
|
|
$sessionId |
|
|
|
|
)"; |
|
|
|
|
Database::query($sql); |
|
|
|
|
|
|
|
|
|
$loginDate = ChamiloApi::addOrSubTimeToDateTime( |
|
|
|
|
$virtualTime, |
|
|
|
|
$courseAccessLoginDate, |
|
|
|
|
false |
|
|
|
|
); |
|
|
|
|
// We update the course tracking table |
|
|
|
|
$sql = "UPDATE $courseTrackingTable |
|
|
|
|
SET |
|
|
|
|
login_course_date = '$loginDate', |
|
|
|
|
logout_course_date = '$courseAccessLoginDate', |
|
|
|
|
counter = 0 |
|
|
|
|
WHERE |
|
|
|
|
course_access_id = ".intval($courseAccessId)." AND |
|
|
|
|
session_id = ".$sessionId; |
|
|
|
|
Database::query($sql); |
|
|
|
|
$logoutDate = api_get_utc_datetime(); |
|
|
|
|
$loginDate = ChamiloApi::addOrSubTimeToDateTime( |
|
|
|
|
$virtualTime, |
|
|
|
|
$logoutDate, |
|
|
|
|
false |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
$params = [ |
|
|
|
|
'login_course_date' => $loginDate, |
|
|
|
|
'logout_course_date' => $logoutDate, |
|
|
|
|
'session_id' => $sessionId, |
|
|
|
|
'user_id' => $userId, |
|
|
|
|
'counter' => 0, |
|
|
|
|
'c_id' => $courseId, |
|
|
|
|
'user_ip' => api_get_real_ip(), |
|
|
|
|
]; |
|
|
|
|
$courseTrackingTable = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS); |
|
|
|
|
Database::insert($courseTrackingTable, $params); |
|
|
|
|
|
|
|
|
|
return false; |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
@ -2331,8 +2282,6 @@ class Event |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
$courseTrackingTable = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS); |
|
|
|
|
$time = $loginDate = $logoutDate = api_get_utc_datetime(); |
|
|
|
|
|
|
|
|
|
$courseId = (int) $courseId; |
|
|
|
|
$userId = (int) $userId; |
|
|
|
|
$sessionId = (int) $sessionId; |
|
|
|
|
|