diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index 14d9fb50fe..96fffb1296 100644 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -2155,10 +2155,11 @@ class UserManager $tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); - if ($user_id != strval(intval($user_id))) + if ($user_id != strval(intval($user_id))) { return array(); + } - //we filter the courses from the URL + // We filter the courses from the URL $join_access_url = $where_access_url = ''; if (api_get_multiple_access_url()) { @@ -2170,10 +2171,14 @@ class UserManager } } - //Courses in which we suscribed out of any session + // Courses in which we subscribed out of any session $tbl_user_course_category = Database :: get_user_personal_table(TABLE_USER_COURSE_CATEGORY); - $personal_course_list_sql = "SELECT course.code, course_rel_user.status course_rel_status, course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat + $personal_course_list_sql = "SELECT + course.code, + course_rel_user.status course_rel_status, + course_rel_user.sort sort, + course_rel_user.user_course_cat user_course_cat FROM ".$tbl_course_user." course_rel_user LEFT JOIN ".$tbl_course." course ON course.code = course_rel_user.course_code @@ -2181,7 +2186,8 @@ class UserManager ON course_rel_user.user_course_cat = user_course_category.id $join_access_url WHERE course_rel_user.user_id = '".$user_id."' AND - course_rel_user.relation_type <> ".COURSE_RELATION_TYPE_RRHH." $where_access_url + course_rel_user.relation_type <> ".COURSE_RELATION_TYPE_RRHH." + $where_access_url ORDER BY user_course_category.sort, course_rel_user.sort, course.title ASC"; $course_list_sql_result = Database::query($personal_course_list_sql); @@ -2198,11 +2204,15 @@ class UserManager // Get the list of sessions where the user is subscribed $sessions_sql = "SELECT DISTINCT id, name, date_start, date_end FROM $tbl_session_user, $tbl_session - WHERE (id_session=id AND - id_user=$user_id AND - relation_type<>".SESSION_RELATION_TYPE_RRHH.") OR - (id_coach = $user_id) + WHERE ( + id_session = id AND + id_user = $user_id AND + relation_type <> ".SESSION_RELATION_TYPE_RRHH." + ) OR ( + id_coach = $user_id + ) ORDER BY date_start, date_end, name"; + $result = Database::query($sessions_sql); $sessions = Database::store_result($result, 'ASSOC'); @@ -2217,9 +2227,17 @@ class UserManager } $id_session = $enreg['id']; - $personal_course_list_sql = "SELECT DISTINCT course.code code, course.title i, - ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." t, email, course.course_language l, 1 sort, - category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name + $personal_course_list_sql = "SELECT DISTINCT + course.code code, + course.title i, + ".(api_is_western_name_order() ? "CONCAT(user.firstname,' ',user.lastname)" : "CONCAT(user.lastname,' ',user.firstname)")." t, + email, course.course_language l, + 1 sort, + category_code user_course_cat, + date_start, + date_end, + session.id as id_session, + session.name as session_name FROM $tbl_session_course_user as session_course_user INNER JOIN $tbl_course AS course ON course.code = session_course_user.course_code @@ -2227,10 +2245,12 @@ class UserManager ON session.id = session_course_user.id_session LEFT JOIN $tbl_user as user ON user.user_id = session_course_user.id_user OR session.id_coach = user.user_id - WHERE session_course_user.id_session = $id_session - AND ((session_course_user.id_user=$user_id AND session_course_user.status = 2) OR session.id_coach = $user_id) + WHERE + session_course_user.id_session = $id_session AND ( + (session_course_user.id_user=$user_id AND session_course_user.status = 2) + OR session.id_coach = $user_id + ) ORDER BY i"; - $course_list_sql_result = Database::query($personal_course_list_sql); while ($result_row = Database::fetch_array($course_list_sql_result, 'ASSOC')) { @@ -2248,15 +2268,25 @@ class UserManager continue; } - // this query is very similar to the above query, but it will check the session_rel_course_user table if there are courses registered to our user or not - $personal_course_list_sql = "SELECT DISTINCT course.code code, course.title i, CONCAT(user.lastname,' ',user.firstname) t, email, - course.course_language l, 1 sort, category_code user_course_cat, date_start, date_end, session.id as id_session, session.name as session_name, ". - "IF((session_course_user.id_user = 3 AND session_course_user.status=2),'2', '5') + /* This query is very similar to the above query, + but it will check the session_rel_course_user table if there are courses registered to our user or not */ + $personal_course_list_sql = "SELECT DISTINCT + course.code code, + course.title i, CONCAT(user.lastname,' ',user.firstname) t, + email, + course.course_language l, + 1 sort, + category_code user_course_cat, + date_start, + date_end, + session.id as id_session, + session.name as session_name, + IF((session_course_user.id_user = 3 AND session_course_user.status=2),'2', '5') FROM $tbl_session_course_user as session_course_user - INNER JOIN $tbl_course AS course - ON course.code = session_course_user.course_code AND session_course_user.id_session = $session_id - INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id - LEFT JOIN $tbl_user as user ON user.user_id = session_course_user.id_user + INNER JOIN $tbl_course AS course + ON course.code = session_course_user.course_code AND session_course_user.id_session = $session_id + INNER JOIN $tbl_session as session ON session_course_user.id_session = session.id + LEFT JOIN $tbl_user as user ON user.user_id = session_course_user.id_user WHERE session_course_user.id_user = $user_id ORDER BY i"; diff --git a/main/session/index.php b/main/session/index.php index 3a7c59a762..f6cac273c1 100644 --- a/main/session/index.php +++ b/main/session/index.php @@ -20,7 +20,8 @@ require_once api_get_path(SYS_CODE_PATH).'newscorm/learnpathList.class.php'; require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.lib.php'; require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.class.php'; -api_block_anonymous_users(); // Only users who are logged in can proceed. +// Only users who are logged in can proceed. +api_block_anonymous_users(); $this_section = SECTION_COURSES; $htmlHeadXtra[] = api_get_jqgrid_js(); @@ -35,7 +36,7 @@ $course_id = isset($_GET['course_id']) ? intval($_GET['course_id']) : null; $_SESSION['id_session'] = $session_id; // Clear the exercise session just in case -if (isset ($_SESSION['objExercise'])) { +if (isset($_SESSION['objExercise'])) { Session::erase('objExercise'); } @@ -166,7 +167,7 @@ if (!empty($course_list)) { } } -//If the requested session does not exist in my list we stop the script +// If the requested session does not exist in my list we stop the script if (!api_is_platform_admin()) { if (!in_array($session_id, $my_session_list)) { api_not_allowed(true);