@ -2571,10 +2571,11 @@ class CourseManager 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * Get list of courses for a given user  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param int $user_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @param boolean $include_sessions Whether to include courses from session or not  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @return array    List of codes and db names  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @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  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					     * @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)  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    public static function get_courses_list_by_user_id($user_id, $include_sessions = false, $adminGetsAllCourses = false )  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $user_id = intval($user_id);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $course_list = array();  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -2584,15 +2585,22 @@ class CourseManager 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $tbl_user_course_category = Database::get_main_table(TABLE_USER_COURSE_CATEGORY);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $special_course_list = self::get_special_course_list();  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $with_special_courses = $without_special_courses = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (!empty($special_course_list)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $sc_string = '"' . implode('","', $special_course_list) . '"';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $with_special_courses = ' course.code IN (' . $sc_string . ')';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $without_special_courses = ' AND course.code NOT IN (' . $sc_string . ')';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (!empty($with_special_courses)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        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";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        } else {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            $with_special_courses = $without_special_courses = '';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if (!empty($special_course_list)) {  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $sc_string = '"' . implode('","', $special_course_list) . '"';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $with_special_courses = ' course.code IN (' . $sc_string . ')';  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $without_special_courses = ' AND course.code 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  
				
			 
			
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
				 
				 
				
					@ -2601,23 +2609,23 @@ class CourseManager 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    WHERE  $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'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                $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'];  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                    }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // get course list not auto-register. Use Distinct to avoid multiple  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        // entries when a course is assigned to a HRD (DRH) as watcher  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $sql = "SELECT DISTINCT(course.code), course.id as real_id  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             // get course list not auto-register. Use Distinct to avoid multiple  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					             // 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";  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        $result = Database::query($sql);  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if (Database::num_rows($result)) {