|
|
|
|
@ -1,25 +1,25 @@ |
|
|
|
|
<?php |
|
|
|
|
require_once __DIR__.'/../inc/global.inc.php'; |
|
|
|
|
require_once api_get_path(LIBRARY_PATH).'database.lib.php'; |
|
|
|
|
/** |
|
|
|
|
* Automatic fix online time procedure. If a COURSEMANAGER has been idle for $timeLimit |
|
|
|
|
* or more then the procedure adds $extraTime to his logout_course_date. |
|
|
|
|
* @package chamilo.cron |
|
|
|
|
* @author Imanol Losada <imanol.losada@beeznest.com> |
|
|
|
|
*/ |
|
|
|
|
require_once __DIR__ . '/../inc/global.inc.php'; |
|
|
|
|
require_once api_get_path(LIBRARY_PATH) . 'database.lib.php'; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get ids of COURSEMANAGERs that are inside a course right now |
|
|
|
|
* @return array COURSEMANAGER's ids |
|
|
|
|
*/ |
|
|
|
|
function getTeachersInCourseIds() { |
|
|
|
|
function getTeachersInCourseIds() |
|
|
|
|
{ |
|
|
|
|
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_ONLINE); |
|
|
|
|
$joinStatement = ' JOIN '.Database::get_main_table(TABLE_MAIN_USER).' ON login_user_id = user_id'; |
|
|
|
|
$joinStatement = ' JOIN ' . Database::get_main_table(TABLE_MAIN_USER) . ' ON login_user_id = user_id'; |
|
|
|
|
return Database::select( |
|
|
|
|
'login_user_id', |
|
|
|
|
$table.$joinStatement, |
|
|
|
|
'login_user_id', $table . $joinStatement, |
|
|
|
|
array( |
|
|
|
|
'where'=> array( |
|
|
|
|
'where' => array( |
|
|
|
|
'course <> ? AND status = ?' => array( |
|
|
|
|
'NULL', |
|
|
|
|
COURSEMANAGER |
|
|
|
|
@ -35,7 +35,8 @@ function getTeachersInCourseIds() { |
|
|
|
|
* @param array COURSEMANAGER's ids |
|
|
|
|
* @return void |
|
|
|
|
*/ |
|
|
|
|
function updateTeachersInCourseIdleForTimeLimit($teachersInCourseIds) { |
|
|
|
|
function updateTeachersInCourseIdleForTimeLimit($teachersInCourseIds) |
|
|
|
|
{ |
|
|
|
|
$timeLimit = '- 30 minute'; |
|
|
|
|
$extraTime = '+ 5 minute'; |
|
|
|
|
$utcResult = Database::fetch_array( |
|
|
|
|
@ -44,13 +45,14 @@ function updateTeachersInCourseIdleForTimeLimit($teachersInCourseIds) { |
|
|
|
|
$dataBaseCurrentHour = array_shift($utcResult); |
|
|
|
|
$maximumIdleTimeInCourse = date( |
|
|
|
|
'Y-m-d H:i:s', |
|
|
|
|
strtotime($dataBaseCurrentHour.' '.$timeLimit) |
|
|
|
|
strtotime($dataBaseCurrentHour . ' ' . $timeLimit) |
|
|
|
|
); |
|
|
|
|
$table = Database::get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS); |
|
|
|
|
foreach ($teachersInCourseIds as $key => $value) { |
|
|
|
|
$value = array_shift($value); |
|
|
|
|
$logResult = Database::select( |
|
|
|
|
'course_access_id,logout_course_date', $table, |
|
|
|
|
'course_access_id,logout_course_date', |
|
|
|
|
$table, |
|
|
|
|
array( |
|
|
|
|
'where' => array( |
|
|
|
|
'user_id = ?' => array( |
|
|
|
|
@ -67,7 +69,7 @@ function updateTeachersInCourseIdleForTimeLimit($teachersInCourseIds) { |
|
|
|
|
array( |
|
|
|
|
'logout_course_date' => date( |
|
|
|
|
'Y-m-d H:i:s', |
|
|
|
|
strtotime($currentTeacherData['logout_course_date'].' '.$extraTime) |
|
|
|
|
strtotime($currentTeacherData['logout_course_date'] . ' ' . $extraTime) |
|
|
|
|
) |
|
|
|
|
), |
|
|
|
|
array( |
|
|
|
|
|