|
|
|
@ -4657,26 +4657,18 @@ class Agenda |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private function loadSessionsAsEvents(int $start, int $end) |
|
|
|
/** |
|
|
|
|
|
|
|
* @throws Exception |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private function convertSessionWithDuration(int $userId, array $sessionInfo, DateTime $start, DateTime $end): array |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (false === api_get_configuration_value('personal_calendar_show_sessions_occupation')) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$start = api_get_utc_datetime($start, false, true); |
|
|
|
|
|
|
|
$end = api_get_utc_datetime($end, false, true); |
|
|
|
|
|
|
|
$userInfo = api_get_user_info(); |
|
|
|
|
|
|
|
$sessionList = SessionManager::getSessionsFollowedByUser($userInfo['id'], $userInfo['status']); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($sessionList as $sessionInfo) { |
|
|
|
|
|
|
|
if (!empty($sessionInfo['duration'])) { |
|
|
|
|
|
|
|
$courseAccess = CourseManager::getFirstCourseAccessPerSessionAndUser( |
|
|
|
$courseAccess = CourseManager::getFirstCourseAccessPerSessionAndUser( |
|
|
|
$sessionInfo['session_id'], |
|
|
|
$sessionInfo['session_id'], |
|
|
|
$userInfo['id'] |
|
|
|
$userId |
|
|
|
); |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
if (empty($courseAccess)) { |
|
|
|
if (empty($courseAccess)) { |
|
|
|
continue; |
|
|
|
throw new Exception(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$firstAccessDate = new DateTime($courseAccess['login_course_date'], new DateTimeZone('UTC')); |
|
|
|
$firstAccessDate = new DateTime($courseAccess['login_course_date'], new DateTimeZone('UTC')); |
|
|
|
@ -4686,13 +4678,13 @@ class Agenda |
|
|
|
if ($firstAccessDate->format('Y-m-d H:i:s') > $start |
|
|
|
if ($firstAccessDate->format('Y-m-d H:i:s') > $start |
|
|
|
&& $lastAccessDate->format('Y-m-d H:i:s') < $end |
|
|
|
&& $lastAccessDate->format('Y-m-d H:i:s') < $end |
|
|
|
) { |
|
|
|
) { |
|
|
|
continue; |
|
|
|
throw new Exception(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']); |
|
|
|
$courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']); |
|
|
|
$firstCourse = current($courseList); |
|
|
|
$firstCourse = current($courseList); |
|
|
|
|
|
|
|
|
|
|
|
$this->events[] = [ |
|
|
|
return [ |
|
|
|
'id' => 'session_'.$sessionInfo['id'], |
|
|
|
'id' => 'session_'.$sessionInfo['id'], |
|
|
|
'session_id' => $sessionInfo['id'], |
|
|
|
'session_id' => $sessionInfo['id'], |
|
|
|
'title' => $sessionInfo['name'], |
|
|
|
'title' => $sessionInfo['name'], |
|
|
|
@ -4712,20 +4704,23 @@ class Agenda |
|
|
|
'has_children' => 0, |
|
|
|
'has_children' => 0, |
|
|
|
'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']), |
|
|
|
'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']), |
|
|
|
]; |
|
|
|
]; |
|
|
|
|
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* @throws Exception |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
private function convertSessionWithDates(array $sessionInfo, DateTime $start, DateTime $end): array |
|
|
|
|
|
|
|
{ |
|
|
|
if ($sessionInfo['display_start_date'] < $start |
|
|
|
if ($sessionInfo['display_start_date'] < $start |
|
|
|
&& $sessionInfo['display_end_date'] > $end |
|
|
|
&& $sessionInfo['display_end_date'] > $end |
|
|
|
) { |
|
|
|
) { |
|
|
|
continue; |
|
|
|
throw new Exception(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']); |
|
|
|
$courseList = SessionManager::get_course_list_by_session_id($sessionInfo['id']); |
|
|
|
$firstCourse = current($courseList); |
|
|
|
$firstCourse = current($courseList); |
|
|
|
|
|
|
|
|
|
|
|
$this->events[] = [ |
|
|
|
return [ |
|
|
|
'id' => 'session_'.$sessionInfo['id'], |
|
|
|
'id' => 'session_'.$sessionInfo['id'], |
|
|
|
'session_id' => $sessionInfo['id'], |
|
|
|
'session_id' => $sessionInfo['id'], |
|
|
|
'title' => $sessionInfo['name'], |
|
|
|
'title' => $sessionInfo['name'], |
|
|
|
@ -4750,5 +4745,38 @@ class Agenda |
|
|
|
'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']), |
|
|
|
'course_url' => api_get_course_url($firstCourse['code'], $sessionInfo['id']), |
|
|
|
]; |
|
|
|
]; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private function loadSessionsAsEvents(int $start, int $end) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (false === api_get_configuration_value('personal_calendar_show_sessions_occupation')) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$start = api_get_utc_datetime($start, false, true); |
|
|
|
|
|
|
|
$end = api_get_utc_datetime($end, false, true); |
|
|
|
|
|
|
|
$userInfo = api_get_user_info(); |
|
|
|
|
|
|
|
$sessionList = SessionManager::getSessionsFollowedByUser($userInfo['id'], $userInfo['status']); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($sessionList as $sessionInfo) { |
|
|
|
|
|
|
|
if (!empty($sessionInfo['duration'])) { |
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
$this->events[] = $this->convertSessionWithDuration($userInfo['id'], $sessionInfo, $start, $end); |
|
|
|
|
|
|
|
} catch (Exception $e) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($sessionInfo['display_start_date']) || empty($sessionInfo['display_end_date'])) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
|
|
$this->events[] = $this->convertSessionWithDates($sessionInfo, $start, $end); |
|
|
|
|
|
|
|
} catch (Exception $e) { |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|