Pārlūkot izejas kodu

Fix special course, all users have access

No matter if they are not subscribed.
jmontoyaa 8 gadi atpakaļ
vecāks
revīzija
a20ed76361
1 mainītis faili ar 19 papildinājumiem un 24 dzēšanām
  1. 19 24
      main/inc/lib/course.lib.php

+ 19 - 24
main/inc/lib/course.lib.php

@@ -3458,28 +3458,21 @@ class CourseManager
     {
         $user_id = intval($user_id);
         $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
-        $tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
         $special_course_list = self::get_special_course_list();
         $with_special_courses = '';
         if (!empty($special_course_list)) {
-            $with_special_courses = ' AND course.id IN ("' . implode('","', $special_course_list) . '")';
+            $with_special_courses = ' course.id IN ("' . implode('","', $special_course_list) . '")';
         }
 
         $courseList = [];
         if (!empty($with_special_courses)) {
             $sql = "SELECT
-                        course.id,
-                        course.code,
-                        course.subscribe subscr,
-                        course.unsubscribe unsubscr,
-                        course_rel_user.status status,
-                        course_rel_user.sort sort,
-                        course_rel_user.user_course_cat user_course_cat,
-                        course_rel_user.user_id
-                    FROM $tbl_course course
-                    LEFT JOIN $tbl_course_user course_rel_user
-                    ON (course.id = course_rel_user.c_id) 
-                    WHERE course_rel_user.user_id = '$user_id' $with_special_courses 
+                        id,
+                        code,
+                        subscribe subscr,
+                        unsubscribe unsubscr
+                    FROM $tbl_course                      
+                    WHERE $with_special_courses 
                     GROUP BY course.code";
 
             $rs_special_course = Database::query($sql);
@@ -3489,6 +3482,7 @@ class CourseManager
             if ($number_of_courses > 0) {
                 while ($course = Database::fetch_array($rs_special_course)) {
                     $course_info = api_get_course_info($course['code']);
+                    $courseId = $course_info['real_id'];
                     if ($course_info['visibility'] == COURSE_VISIBILITY_HIDDEN) {
                         continue;
                     }
@@ -3496,27 +3490,28 @@ class CourseManager
                     $params = [];
                     // Get notifications.
                     $course_info['id_session'] = null;
-                    $course_info['status'] = $course['status'];
-                    $show_notification = Display::show_notification($course_info);
+                    $courseUserInfo = CourseManager::getUserCourseInfo($user_id, $courseId);
 
-                    if (empty($course['user_id'])) {
-                        $course['status'] = STUDENT;
+                    if (empty($courseUserInfo)) {
+                        $course_info['status'] = STUDENT;
+                    } else {
+                        $course_info['status'] = $courseUserInfo['status'];
                     }
-
+                    $show_notification = Display::show_notification($course_info);
                     $params['edit_actions'] = '';
                     $params['document'] = '';
                     if (api_is_platform_admin()) {
                         $params['edit_actions'] .= api_get_path(WEB_CODE_PATH) . 'course_info/infocours.php?cidReq=' . $course['code'];
                         if ($load_dirs) {
-                            $params['document'] = '<a id="document_preview_' . $course_info['real_id'] . '_0" class="document_preview btn btn-default btn-sm" href="javascript:void(0);">'
+                            $params['document'] = '<a id="document_preview_' . $courseId . '_0" class="document_preview btn btn-default btn-sm" href="javascript:void(0);">'
                                . Display::returnFontAwesomeIcon('folder-open') . '</a>';
-                            $params['document'] .= Display::div('', ['id' => 'document_result_' . $course_info['real_id'] . '_0', 'class' => 'document_preview_container']);
+                            $params['document'] .= Display::div('', ['id' => 'document_result_' . $courseId . '_0', 'class' => 'document_preview_container']);
                         }
                     } else {
                         if ($course_info['visibility'] != COURSE_VISIBILITY_CLOSED && $load_dirs) {
-                            $params['document'] = '<a id="document_preview_' . $course_info['real_id'] . '_0" class="document_preview btn btn-default btn-sm" href="javascript:void(0);">'
+                            $params['document'] = '<a id="document_preview_' . $courseId . '_0" class="document_preview btn btn-default btn-sm" href="javascript:void(0);">'
                                . Display::returnFontAwesomeIcon('folder-open') . '</a>';
-                            $params['document'] .= Display::div('', ['id' => 'document_result_' . $course_info['real_id'] . '_0', 'class' => 'document_preview_container']);
+                            $params['document'] .= Display::div('', ['id' => 'document_result_' . $courseId . '_0', 'class' => 'document_preview_container']);
                         }
                     }
 
@@ -3532,7 +3527,7 @@ class CourseManager
                     $params['title'] = $course_info['title'];
                     $params['link'] = $course_info['course_public_url'].'?id_session=0&autoreg=1';
                     if (api_get_setting('display_teacher_in_courselist') === 'true') {
-                        $params['teachers'] = CourseManager::getTeachersFromCourse($course_info['real_id'], false);
+                        $params['teachers'] = CourseManager::getTeachersFromCourse($courseId, false);
                     }
 
                     if ($showCustomIcon === 'true') {