|
|
|
@ -6583,97 +6583,105 @@ SQL; |
|
|
|
{ |
|
|
|
{ |
|
|
|
$timezone = new DateTimeZone(api_get_timezone()); |
|
|
|
$timezone = new DateTimeZone(api_get_timezone()); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sessions = []; |
|
|
|
|
|
|
|
|
|
|
|
if (DRH == $userInfo['status']) { |
|
|
|
if (DRH == $userInfo['status']) { |
|
|
|
$sessions = SessionManager::get_sessions_followed_by_drh($userInfo['id']); |
|
|
|
$sessions = SessionManager::get_sessions_followed_by_drh($userInfo['id']); |
|
|
|
|
|
|
|
} elseif (SESSIONADMIN == $userInfo['status']) { |
|
|
|
$sessions = array_map( |
|
|
|
$sessions = SessionManager::getSessionsAdmin($userInfo['id']); |
|
|
|
function ($sessionInfo) { |
|
|
|
|
|
|
|
$sessionInfo['session_id'] = $sessionInfo['id']; |
|
|
|
|
|
|
|
$sessionInfo['session_name'] = $sessionInfo['name']; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return $sessionInfo; |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
$sessions |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sessionsByCategory = ['' => $sessions]; |
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
$sessionsByCategory = self::get_sessions_by_category($userInfo['id'], false, true, true); |
|
|
|
$sessionsByCategory = self::get_sessions_by_category($userInfo['id'], false, true, true); |
|
|
|
$sessionsByCategory = array_column($sessionsByCategory, 'sessions'); |
|
|
|
$sessionsByCategory = array_column($sessionsByCategory, 'sessions'); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$sessionsList = []; |
|
|
|
foreach ($sessionsByCategory as $sessionsInCategory) { |
|
|
|
|
|
|
|
$sessions = array_merge($sessions, $sessionsInCategory); |
|
|
|
foreach ($sessionsByCategory as $categorySessions) { |
|
|
|
} |
|
|
|
foreach ($categorySessions as $sessionInfo) { |
|
|
|
} |
|
|
|
if (!empty($sessionInfo['duration'])) { |
|
|
|
|
|
|
|
$courseAccess = CourseManager::getFirstCourseAccessPerSessionAndUser( |
|
|
|
|
|
|
|
$sessionInfo['session_id'], |
|
|
|
|
|
|
|
$userInfo['id'] |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($courseAccess)) { |
|
|
|
$sessions = array_map( |
|
|
|
continue; |
|
|
|
function ($sessionInfo) { |
|
|
|
} |
|
|
|
if (!isset($sessionInfo['session_id'])) { |
|
|
|
|
|
|
|
$sessionInfo['session_id'] = $sessionInfo['id']; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (!isset($sessionInfo['session_name'])) { |
|
|
|
|
|
|
|
$sessionInfo['session_name'] = $sessionInfo['name']; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$firstAcessDate = new DateTime(api_get_local_time($courseAccess['login_course_date']), $timezone); |
|
|
|
return $sessionInfo; |
|
|
|
$lastAccessDate = clone $firstAcessDate; |
|
|
|
}, |
|
|
|
$lastAccessDate->modify("+{$sessionInfo['duration']} days"); |
|
|
|
$sessions |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
$firstAccessYear = (int) $firstAcessDate->format('Y'); |
|
|
|
$calendarSessions = []; |
|
|
|
$lastAccessYear = (int) $lastAccessDate->format('Y'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($firstAccessYear <= $searchYear && $lastAccessYear >= $searchYear) { |
|
|
|
foreach ($sessions as $sessionInfo) { |
|
|
|
$sessionsList[$sessionInfo['session_id']] = [ |
|
|
|
if (!empty($sessionInfo['duration'])) { |
|
|
|
'name' => $sessionInfo['session_name'], |
|
|
|
$courseAccess = CourseManager::getFirstCourseAccessPerSessionAndUser( |
|
|
|
'access_start_date' => $firstAcessDate->format('Y-m-d h:i:s'), |
|
|
|
$sessionInfo['session_id'], |
|
|
|
'access_end_date' => $lastAccessDate->format('Y-m-d h:i:s'), |
|
|
|
$userInfo['id'] |
|
|
|
]; |
|
|
|
); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($courseAccess)) { |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$accessStartDate = !empty($sessionInfo['access_start_date']) |
|
|
|
$firstAcessDate = new DateTime(api_get_local_time($courseAccess['login_course_date']), $timezone); |
|
|
|
? new DateTime(api_get_local_time($sessionInfo['access_start_date']), $timezone) |
|
|
|
$lastAccessDate = clone $firstAcessDate; |
|
|
|
: null; |
|
|
|
$lastAccessDate->modify("+{$sessionInfo['duration']} days"); |
|
|
|
$accessEndDate = !empty($sessionInfo['access_end_date']) |
|
|
|
|
|
|
|
? new DateTime(api_get_local_time($sessionInfo['access_end_date']), $timezone) |
|
|
|
|
|
|
|
: null; |
|
|
|
|
|
|
|
$accessStartYear = $accessStartDate ? (int) $accessStartDate->format('Y') : 0; |
|
|
|
|
|
|
|
$accessEndYear = $accessEndDate ? (int) $accessEndDate->format('Y') : 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$isValid = false; |
|
|
|
$firstAccessYear = (int) $firstAcessDate->format('Y'); |
|
|
|
|
|
|
|
$lastAccessYear = (int) $lastAccessDate->format('Y'); |
|
|
|
|
|
|
|
|
|
|
|
if ($accessStartYear && $accessEndYear) { |
|
|
|
if ($firstAccessYear <= $searchYear && $lastAccessYear >= $searchYear) { |
|
|
|
if ($accessStartYear <= $searchYear && $accessEndYear >= $searchYear) { |
|
|
|
$calendarSessions[$sessionInfo['session_id']] = [ |
|
|
|
$isValid = true; |
|
|
|
'name' => $sessionInfo['session_name'], |
|
|
|
} |
|
|
|
'access_start_date' => $firstAcessDate->format('Y-m-d h:i:s'), |
|
|
|
|
|
|
|
'access_end_date' => $lastAccessDate->format('Y-m-d h:i:s'), |
|
|
|
|
|
|
|
]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ($accessStartYear && !$accessEndYear) { |
|
|
|
continue; |
|
|
|
if ($accessStartYear == $searchYear) { |
|
|
|
} |
|
|
|
$isValid = true; |
|
|
|
|
|
|
|
} |
|
|
|
$accessStartDate = !empty($sessionInfo['access_start_date']) |
|
|
|
|
|
|
|
? new DateTime(api_get_local_time($sessionInfo['access_start_date']), $timezone) |
|
|
|
|
|
|
|
: null; |
|
|
|
|
|
|
|
$accessEndDate = !empty($sessionInfo['access_end_date']) |
|
|
|
|
|
|
|
? new DateTime(api_get_local_time($sessionInfo['access_end_date']), $timezone) |
|
|
|
|
|
|
|
: null; |
|
|
|
|
|
|
|
$accessStartYear = $accessStartDate ? (int) $accessStartDate->format('Y') : 0; |
|
|
|
|
|
|
|
$accessEndYear = $accessEndDate ? (int) $accessEndDate->format('Y') : 0; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$isValid = false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($accessStartYear && $accessEndYear) { |
|
|
|
|
|
|
|
if ($accessStartYear <= $searchYear && $accessEndYear >= $searchYear) { |
|
|
|
|
|
|
|
$isValid = true; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (!$accessStartYear && $accessEndYear) { |
|
|
|
if ($accessStartYear && !$accessEndYear) { |
|
|
|
if ($accessEndYear == $searchYear) { |
|
|
|
if ($accessStartYear == $searchYear) { |
|
|
|
$isValid = true; |
|
|
|
$isValid = true; |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if ($isValid) { |
|
|
|
if (!$accessStartYear && $accessEndYear) { |
|
|
|
$sessionsList[$sessionInfo['session_id']] = [ |
|
|
|
if ($accessEndYear == $searchYear) { |
|
|
|
'name' => $sessionInfo['session_name'], |
|
|
|
$isValid = true; |
|
|
|
'access_start_date' => $accessStartDate ? $accessStartDate->format('Y-m-d h:i:s') : null, |
|
|
|
|
|
|
|
'access_end_date' => $accessEndDate ? $accessEndDate->format('Y-m-d h:i:s') : null, |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ($isValid) { |
|
|
|
|
|
|
|
$calendarSessions[$sessionInfo['session_id']] = [ |
|
|
|
|
|
|
|
'name' => $sessionInfo['session_name'], |
|
|
|
|
|
|
|
'access_start_date' => $accessStartDate ? $accessStartDate->format('Y-m-d h:i:s') : null, |
|
|
|
|
|
|
|
'access_end_date' => $accessEndDate ? $accessEndDate->format('Y-m-d h:i:s') : null, |
|
|
|
|
|
|
|
]; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return $sessionsList; |
|
|
|
return $calendarSessions; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
|