Skip to content

Commit

Permalink
Add multiple URL support for function see BT#12450
Browse files Browse the repository at this point in the history
  • Loading branch information
jmontoyaa committed Mar 14, 2017
1 parent fc968dc commit a97d11c
Showing 1 changed file with 29 additions and 14 deletions.
43 changes: 29 additions & 14 deletions main/inc/lib/course.lib.php
Expand Up @@ -2685,41 +2685,50 @@ public static function getCatalogueCourseList($allowed = true, $byUserId = -1)
* @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)
{
public static function get_courses_list_by_user_id(
$user_id,
$include_sessions = false,
$adminGetsAllCourses = false
) {
$user_id = intval($user_id);
$urlId = api_get_current_access_url_id();
$course_list = array();
$codes = array();

$tbl_course = Database::get_main_table(TABLE_MAIN_COURSE);
$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
FROM $tbl_course course";
FROM $tbl_course course
INNER JOIN $tableCourseUrl url
ON (course.id = url.c_id)
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 = ' course.id IN (' . $sc_string . ')';
$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
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
WHERE $with_special_courses
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)) {
Expand All @@ -2734,8 +2743,14 @@ public static function get_courses_list_by_user_id($user_id, $include_sessions =
// entries when a course is assigned to a HRD (DRH) as watcher
$sql = "SELECT DISTINCT(course.code), course.id as real_id
FROM $tbl_course course
INNER JOIN $tbl_course_user cru ON course.id = cru.c_id
WHERE cru.user_id='$user_id' $without_special_courses";
INNER JOIN $tbl_course_user cru
ON (course.id = cru.c_id)
INNER JOIN $tableCourseUrl url
ON (course.id = url.c_id)
WHERE
url.access_url_id = $urlId AND
cru.user_id = '$user_id'
$without_special_courses";
}
$result = Database::query($sql);

Expand All @@ -2749,7 +2764,7 @@ public static function get_courses_list_by_user_id($user_id, $include_sessions =
if ($include_sessions === true) {
$sql = "SELECT DISTINCT(c.code), c.id as real_id
FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . " s,
" . Database::get_main_table(TABLE_MAIN_COURSE) . " c
$tbl_course c
WHERE user_id = $user_id AND s.c_id = c.id";
$r = Database::query($sql);
while ($row = Database::fetch_array($r, 'ASSOC')) {
Expand Down

0 comments on commit a97d11c

Please sign in to comment.