From 83c3ec7d8f5fe23d17814355e1eb2710253ee745 Mon Sep 17 00:00:00 2001 From: robertosuarezcinfo <149061027+robertosuarezcinfo@users.noreply.github.com> Date: Thu, 27 Nov 2025 11:18:54 +0100 Subject: [PATCH 1/2] Added related courses without sessions to MySpace --- main/mySpace/course.php | 89 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 78 insertions(+), 11 deletions(-) diff --git a/main/mySpace/course.php b/main/mySpace/course.php index 9dbd0971b7c..d4a7f563884 100755 --- a/main/mySpace/course.php +++ b/main/mySpace/course.php @@ -164,7 +164,7 @@ function get_count_courses() if (api_is_drh()) { if (api_drh_can_access_all_session_content()) { if (empty($sessionId)) { - $count = SessionManager::getAllCoursesFollowedByUser( + $countFromSessions = SessionManager::getAllCoursesFollowedByUser( $userId, null, null, @@ -174,6 +174,16 @@ function get_count_courses() true, $keyword ); + $countDirectCourses = CourseManager::get_courses_followed_by_drh( + $userId, + DRH, + null, + null, + null, + null, + true + ); + $count = $countFromSessions + $countDirectCourses; } else { $count = SessionManager::getCourseCountBySessionId( $sessionId, @@ -181,6 +191,19 @@ function get_count_courses() ); } $drhLoaded = true; + } else { + if (empty($sessionId)) { + $count = CourseManager::get_courses_followed_by_drh( + $userId, + DRH, + null, + null, + null, + null, + true + ); + $drhLoaded = true; + } } } @@ -228,17 +251,61 @@ function get_courses($from, $limit, $column, $direction) $drhLoaded = false; if (api_is_drh()) { if (api_drh_can_access_all_session_content()) { - $courses = SessionManager::getAllCoursesFollowedByUser( - $userId, - $sessionId, - $from, - $limit, - $column, - $direction, - false, - $keyword - ); + if (empty($sessionId)) { + // Cursos de sesiones asignadas al DRH + $coursesFromSessions = SessionManager::getAllCoursesFollowedByUser( + $userId, + $sessionId, + null, + null, + $column, + $direction, + false, + $keyword + ); + $directCourses = CourseManager::get_courses_followed_by_drh( + $userId, + DRH, + null, + null, + $column, + $direction, + false + ); + $courses = $coursesFromSessions; + foreach ($directCourses as $code => $course) { + $courseId = $course['real_id'] ?? $course['id']; + if (!isset($courses[$courseId])) { + $courses[$courseId] = $course; + } + } + $courses = array_slice($courses, $from, $limit); + } else { + $courses = SessionManager::getAllCoursesFollowedByUser( + $userId, + $sessionId, + $from, + $limit, + $column, + $direction, + false, + $keyword + ); + } $drhLoaded = true; + } else { + if (empty($sessionId)) { + $courses = CourseManager::get_courses_followed_by_drh( + $userId, + DRH, + $from, + $limit, + $column, + $direction, + false + ); + $drhLoaded = true; + } } } From 66decfc2c64612f0eead7ff1e131fd0a8a435102 Mon Sep 17 00:00:00 2001 From: contidos Date: Thu, 27 Nov 2025 12:36:58 +0100 Subject: [PATCH 2/2] Modified to work with all users roles --- main/mySpace/course.php | 59 +++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/main/mySpace/course.php b/main/mySpace/course.php index d4a7f563884..c5515243c89 100755 --- a/main/mySpace/course.php +++ b/main/mySpace/course.php @@ -174,15 +174,18 @@ function get_count_courses() true, $keyword ); - $countDirectCourses = CourseManager::get_courses_followed_by_drh( + $countDirectCourses = CourseManager::getCoursesFollowedByUser( $userId, DRH, null, null, null, null, - true + true, + null, + 0 ); + $count = $countFromSessions + $countDirectCourses; } else { $count = SessionManager::getCourseCountBySessionId( @@ -191,19 +194,6 @@ function get_count_courses() ); } $drhLoaded = true; - } else { - if (empty($sessionId)) { - $count = CourseManager::get_courses_followed_by_drh( - $userId, - DRH, - null, - null, - null, - null, - true - ); - $drhLoaded = true; - } } } @@ -252,10 +242,9 @@ function get_courses($from, $limit, $column, $direction) if (api_is_drh()) { if (api_drh_can_access_all_session_content()) { if (empty($sessionId)) { - // Cursos de sesiones asignadas al DRH $coursesFromSessions = SessionManager::getAllCoursesFollowedByUser( $userId, - $sessionId, + null, null, null, $column, @@ -263,23 +252,32 @@ function get_courses($from, $limit, $column, $direction) false, $keyword ); - $directCourses = CourseManager::get_courses_followed_by_drh( + + $directCourses = CourseManager::getCoursesFollowedByUser( $userId, DRH, null, null, $column, $direction, - false + false, + null, + 0 ); + $courses = $coursesFromSessions; - foreach ($directCourses as $code => $course) { - $courseId = $course['real_id'] ?? $course['id']; - if (!isset($courses[$courseId])) { - $courses[$courseId] = $course; + if (!empty($directCourses)) { + foreach ($directCourses as $course) { + $courseId = isset($course['real_id']) ? $course['real_id'] : $course['id']; + if (!isset($courses[$courseId])) { + $courses[$courseId] = $course; + } } } - $courses = array_slice($courses, $from, $limit); + + if (!empty($courses)) { + $courses = array_slice($courses, (int) $from, (int) $limit, true); + } } else { $courses = SessionManager::getAllCoursesFollowedByUser( $userId, @@ -293,19 +291,6 @@ function get_courses($from, $limit, $column, $direction) ); } $drhLoaded = true; - } else { - if (empty($sessionId)) { - $courses = CourseManager::get_courses_followed_by_drh( - $userId, - DRH, - $from, - $limit, - $column, - $direction, - false - ); - $drhLoaded = true; - } } }