diff --git a/main/inc/lib/events.lib.php b/main/inc/lib/events.lib.php index 1d175c3ecf..32b31165bb 100644 --- a/main/inc/lib/events.lib.php +++ b/main/inc/lib/events.lib.php @@ -2385,9 +2385,15 @@ class Event } if ($insert) { + $defaultExtraTime = api_get_configuration_value('tracking_default_course_extra_time_on_logout'); + $loginCourseDate = $currentDate = api_get_utc_datetime(); + if (!empty($defaultExtraTime)) { + $loginDiff = time() - $defaultExtraTime; + $loginCourseDate = api_get_utc_datetime($loginDiff); + } $ip = Database::escape_string(api_get_real_ip()); $sql = "INSERT INTO $tableCourseAccess (c_id, user_ip, user_id, login_course_date, logout_course_date, counter, session_id) - VALUES ($courseId, '$ip', $userId, '$currentDate', '$currentDate', 1, $sessionId)"; + VALUES ($courseId, '$ip', $userId, '$loginCourseDate', '$currentDate', 1, $sessionId)"; Database::query($sql); } diff --git a/main/install/configuration.dist.php b/main/install/configuration.dist.php index a9ea23916e..76425c5fe1 100644 --- a/main/install/configuration.dist.php +++ b/main/install/configuration.dist.php @@ -2559,3 +2559,5 @@ INSERT INTO extra_field_options (field_id, option_value, display_text, priority, // Define the maximum time in seconds to be registered if no action by user in the LP for more than the php session lifetime. //$_configuration['time_to_be_registered_for_abusiveTime'] = 600; +// Define the default time in seconds to be registered if the user does logout from a course and there is no recent entry in track_e_course_access. +//$_configuration['tracking_default_course_extra_time_on_logout'] = 600;