|
@@ -2683,13 +2683,15 @@ class CourseManager
|
|
|
* @param boolean $include_sessions Whether to include courses from session or not
|
|
|
* @param boolean $adminGetsAllCourses If the user is platform admin,
|
|
|
* whether he gets all the courses or just his. Note: This does *not* include all sessions
|
|
|
+ * @param bool $loadSpecialCourses
|
|
|
* @return array List of codes and db name
|
|
|
* @author isaac flores paz
|
|
|
*/
|
|
|
public static function get_courses_list_by_user_id(
|
|
|
$user_id,
|
|
|
$include_sessions = false,
|
|
|
- $adminGetsAllCourses = false
|
|
|
+ $adminGetsAllCourses = false,
|
|
|
+ $loadSpecialCourses = true
|
|
|
) {
|
|
|
$user_id = intval($user_id);
|
|
|
$urlId = api_get_current_access_url_id();
|
|
@@ -2700,7 +2702,7 @@ class CourseManager
|
|
|
$tbl_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
|
|
|
$tbl_user_course_category = Database::get_main_table(TABLE_USER_COURSE_CATEGORY);
|
|
|
$tableCourseUrl = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
|
|
|
- $special_course_list = self::get_special_course_list();
|
|
|
+
|
|
|
if ($adminGetsAllCourses && UserManager::is_admin($user_id)) {
|
|
|
// get the whole courses list
|
|
|
$sql = "SELECT DISTINCT(course.code), course.id as real_id
|
|
@@ -2710,32 +2712,41 @@ class CourseManager
|
|
|
WHERE url.access_url_id = $urlId
|
|
|
";
|
|
|
} else {
|
|
|
- $with_special_courses = $without_special_courses = '';
|
|
|
- if (!empty($special_course_list)) {
|
|
|
- $sc_string = '"' . implode('","', $special_course_list) . '"';
|
|
|
- $with_special_courses = ' AND course.id IN (' . $sc_string . ')';
|
|
|
- $without_special_courses = ' AND course.id NOT IN (' . $sc_string . ')';
|
|
|
- }
|
|
|
-
|
|
|
- if (!empty($with_special_courses)) {
|
|
|
- $sql = "SELECT DISTINCT(course.code), course.id as real_id
|
|
|
- FROM $tbl_course_user course_rel_user
|
|
|
- LEFT JOIN $tbl_course course
|
|
|
- ON course.id = course_rel_user.c_id
|
|
|
- LEFT JOIN $tbl_user_course_category user_course_category
|
|
|
- ON course_rel_user.user_course_cat = user_course_category.id
|
|
|
- INNER JOIN $tableCourseUrl url
|
|
|
- ON (course.id = url.c_id)
|
|
|
- WHERE url.access_url_id = $urlId $with_special_courses
|
|
|
- GROUP BY course.code
|
|
|
- ORDER BY user_course_category.sort, course.title, course_rel_user.sort ASC
|
|
|
- ";
|
|
|
- $rs_special_course = Database::query($sql);
|
|
|
- if (Database::num_rows($rs_special_course) > 0) {
|
|
|
- while ($result_row = Database::fetch_array($rs_special_course)) {
|
|
|
- $result_row['special_course'] = 1;
|
|
|
- $course_list[] = $result_row;
|
|
|
- $codes[] = $result_row['real_id'];
|
|
|
+ $withSpecialCourses = $withoutSpecialCourses = '';
|
|
|
+ if ($loadSpecialCourses) {
|
|
|
+ $specialCourseList = self::get_special_course_list();
|
|
|
+
|
|
|
+ if (!empty($specialCourseList)) {
|
|
|
+ $specialCourseToString = '"'.implode(
|
|
|
+ '","',
|
|
|
+ $specialCourseList
|
|
|
+ ).'"';
|
|
|
+ $withSpecialCourses = ' AND course.id IN ('.$specialCourseToString.')';
|
|
|
+ $withoutSpecialCourses = ' AND course.id NOT IN ('.$specialCourseToString.')';
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!empty($withSpecialCourses)) {
|
|
|
+ $sql = "SELECT DISTINCT(course.code), course.id as real_id
|
|
|
+ FROM $tbl_course_user course_rel_user
|
|
|
+ LEFT JOIN $tbl_course course
|
|
|
+ ON course.id = course_rel_user.c_id
|
|
|
+ LEFT JOIN $tbl_user_course_category user_course_category
|
|
|
+ ON course_rel_user.user_course_cat = user_course_category.id
|
|
|
+ INNER JOIN $tableCourseUrl url
|
|
|
+ ON (course.id = url.c_id)
|
|
|
+ WHERE url.access_url_id = $urlId $withSpecialCourses
|
|
|
+ GROUP BY course.code
|
|
|
+ ORDER BY user_course_category.sort, course.title, course_rel_user.sort ASC
|
|
|
+ ";
|
|
|
+ $rs_special_course = Database::query($sql);
|
|
|
+ if (Database::num_rows($rs_special_course) > 0) {
|
|
|
+ while ($result_row = Database::fetch_array(
|
|
|
+ $rs_special_course
|
|
|
+ )) {
|
|
|
+ $result_row['special_course'] = 1;
|
|
|
+ $course_list[] = $result_row;
|
|
|
+ $codes[] = $result_row['real_id'];
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -2751,7 +2762,9 @@ class CourseManager
|
|
|
WHERE
|
|
|
url.access_url_id = $urlId AND
|
|
|
cru.user_id = '$user_id'
|
|
|
- $without_special_courses";
|
|
|
+ $withoutSpecialCourses
|
|
|
+ ORDER BY course.title
|
|
|
+ ";
|
|
|
}
|
|
|
$result = Database::query($sql);
|
|
|
|