diff --git a/main/admin/course_edit.php b/main/admin/course_edit.php index c322e089b0..65b8dc1a5a 100755 --- a/main/admin/course_edit.php +++ b/main/admin/course_edit.php @@ -34,6 +34,7 @@ $interbreadcrumb[] = array("url" => "course_list.php", "name" => get_lang('Cours // Get all course categories $table_user = Database :: get_main_table(TABLE_MAIN_USER); $course_code = $courseInfo['code']; +$courseId = $courseInfo['real_id']; // Get course teachers $table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); @@ -43,7 +44,7 @@ $sql = "SELECT user.user_id,lastname,firstname WHERE course_user.status='1' AND course_user.user_id=user.user_id AND - course_user.course_code='" . $course_code . "'" . + course_user.c_id ='" . $courseId . "'" . $order_clause; $res = Database::query($sql); $course_teachers = array(); @@ -370,17 +371,18 @@ if ($form->validate()) { } $sql = "INSERT IGNORE INTO " . $course_user_table . " SET - course_code = '" . Database::escape_string($course_code) . "', - user_id = '" . $tutor_id . "', - status = '1', - role = '', - tutor_id='0', - sort='0', - user_course_cat='0'"; + c_id = " . $courseInfo['real_id'] . ", + user_id = '" . $tutor_id . "', + status = '1', + role = '', + tutor_id='0', + sort='0', + user_course_cat='0'"; Database::query($sql); if (array_key_exists('add_teachers_to_sessions_courses', $courseInfo)) { - $sql = "UPDATE $course_table SET add_teachers_to_sessions_courses = '$addTeacherToSessionCourses' + $sql = "UPDATE $course_table SET + add_teachers_to_sessions_courses = '$addTeacherToSessionCourses' WHERE id = " . $courseInfo['real_id']; Database::query($sql); } diff --git a/main/admin/course_information.php b/main/admin/course_information.php index c9f2948a35..450504ce2c 100755 --- a/main/admin/course_information.php +++ b/main/admin/course_information.php @@ -78,6 +78,7 @@ $code = Database::escape_string($_GET['code']); $sql = "SELECT * FROM $table_course WHERE code = '".$code."'"; $res = Database::query($sql); $course = Database::fetch_object($res); +$courseId = $course->id; $tool_name = $course->title.' ('.$course->visual_code.')'; Display::display_header($tool_name); ?> @@ -111,8 +112,10 @@ if (api_is_multiple_url_enabled()) { ON u.user_id = url_rel_user.user_id AND url_rel_user.access_url_id = ".intval(api_get_current_access_url_id()); } -$sql .= " WHERE cu.user_id = u.user_id AND cu.course_code = '".$code."' - AND cu.relation_type <> ".COURSE_RELATION_TYPE_RRHH; +$sql .= " WHERE + cu.user_id = u.user_id AND + cu.c_id = '".$courseId."' AND + cu.relation_type <> ".COURSE_RELATION_TYPE_RRHH; $res = Database::query($sql); $is_western_name_order = api_is_western_name_order(); if (Database::num_rows($res) > 0) { diff --git a/main/admin/course_user_import.php b/main/admin/course_user_import.php index afd8ce7c6b..32e9ecd451 100755 --- a/main/admin/course_user_import.php +++ b/main/admin/course_user_import.php @@ -86,14 +86,17 @@ function save_data($users_courses) $res = Database::query($sql); $db_subscriptions = array(); while ($obj = Database::fetch_object($res)) { - $db_subscriptions[$obj->course_code] = $obj->status; + $db_subscriptions[$obj->c_id] = $obj->status; } $to_subscribe = array_diff(array_keys($csv_subscriptions), array_keys($db_subscriptions)); $to_unsubscribe = array_diff(array_keys($db_subscriptions), array_keys($csv_subscriptions)); if ($_POST['subscribe']) { - foreach ($to_subscribe as $course_code) { + foreach ($to_subscribe as $courseId) { + $courseInfo = api_get_course_info_by_id($courseId); + $course_code = $courseInfo['code']; + if (CourseManager :: course_exists($course_code)) { CourseManager::subscribe_user( $user_id, @@ -108,7 +111,10 @@ function save_data($users_courses) } if ($_POST['unsubscribe']) { - foreach ($to_unsubscribe as $course_code) { + foreach ($to_unsubscribe as $courseId) { + $courseInfo = api_get_course_info_by_id($courseId); + $course_code = $courseInfo['code']; + if (CourseManager :: course_exists($course_code)) { CourseManager::unsubscribe_user($user_id, $course_code); $course_info = CourseManager::get_course_information($course_code); diff --git a/main/admin/course_user_import_by_email.php b/main/admin/course_user_import_by_email.php index ac8daf462c..b2e376427f 100755 --- a/main/admin/course_user_import_by_email.php +++ b/main/admin/course_user_import_by_email.php @@ -90,14 +90,16 @@ function save_data($users_courses) $res = Database::query($sql); $db_subscriptions = array(); while ($obj = Database::fetch_object($res)) { - $db_subscriptions[$obj->course_code] = $obj->status; + $db_subscriptions[$obj->c_id] = $obj->status; } $to_subscribe = array_diff(array_keys($csv_subscriptions), array_keys($db_subscriptions)); $to_unsubscribe = array_diff(array_keys($db_subscriptions), array_keys($csv_subscriptions)); if ($_POST['subscribe']) { - foreach ($to_subscribe as $course_code) { + foreach ($to_subscribe as $courseId) { + $courseInfo = api_get_course_info_by_id($courseId); + $course_code = $courseInfo['code']; if (CourseManager :: course_exists($course_code)) { $course_info = CourseManager::get_course_information($course_code); $inserted_in_course[$course_code] = $course_info['title']; @@ -113,7 +115,9 @@ function save_data($users_courses) } if ($_POST['unsubscribe']) { - foreach ($to_unsubscribe as $course_code) { + foreach ($to_unsubscribe as $courseId) { + $courseInfo = api_get_course_info_by_id($courseId); + $course_code = $courseInfo['code']; if (CourseManager :: course_exists($course_code)) { CourseManager::unsubscribe_user($user_id, $course_code); $course_info = CourseManager::get_course_information($course_code); diff --git a/main/admin/dashboard_add_courses_to_user.php b/main/admin/dashboard_add_courses_to_user.php index db4fbde051..c74c34046e 100755 --- a/main/admin/dashboard_add_courses_to_user.php +++ b/main/admin/dashboard_add_courses_to_user.php @@ -156,7 +156,7 @@ $UserList = array(); $msg = ''; if (isset($_POST['formSent']) && intval($_POST['formSent']) == 1) { $courses_list = $_POST['CoursesList']; - $affected_rows = CourseManager::suscribe_courses_to_hr_manager($user_id,$courses_list); + $affected_rows = CourseManager::subscribeCoursesToDrhManager($user_id, $courses_list); if ($affected_rows) { $msg = get_lang('AssignedCoursesHaveBeenUpdatedSuccessfully'); } diff --git a/main/admin/subscribe_user2course.php b/main/admin/subscribe_user2course.php index ab9e0b534e..d54f126386 100755 --- a/main/admin/subscribe_user2course.php +++ b/main/admin/subscribe_user2course.php @@ -233,7 +233,7 @@ if (api_is_multiple_url_enabled()) { $sqlNbCours = " SELECT course_rel_user.course_code, course.title FROM $tbl_course_user as course_rel_user INNER JOIN $tbl_course as course - ON course.code = course_rel_user.course_code + ON course.id = course_rel_user.c_id INNER JOIN $tbl_course_rel_access_url course_rel_url ON (course_rel_url.course_code= course.code) WHERE diff --git a/main/admin/user_export.php b/main/admin/user_export.php index 85c2406222..896891ab1d 100755 --- a/main/admin/user_export.php +++ b/main/admin/user_export.php @@ -59,6 +59,8 @@ if ($form->validate()) { $export = $form->exportValues(); $file_type = $export['file_type']; $course_code = Database::escape_string($export['course_code']); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['real_id']; $sql = "SELECT u.user_id AS UserId, u.lastname AS LastName, @@ -71,7 +73,12 @@ if ($form->validate()) { u.official_code AS OfficialCode, u.phone AS Phone"; if (strlen($course_code) > 0) { - $sql .= " FROM $user_table u, $course_user_table cu WHERE u.user_id = cu.user_id AND course_code = '$course_code' AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." ORDER BY lastname,firstname"; + $sql .= " FROM $user_table u, $course_user_table cu + WHERE + u.user_id = cu.user_id AND + cu.c_id = '$courseId' AND + cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." + ORDER BY lastname,firstname"; $filename = 'export_users_'.$course_code.'_'.date('Y-m-d_H-i-s'); } else { global $_configuration; diff --git a/main/admin/user_information.php b/main/admin/user_information.php index 3cf4c6c1b8..fb95e67620 100755 --- a/main/admin/user_information.php +++ b/main/admin/user_information.php @@ -258,9 +258,11 @@ $courseToolInformationTotal = null; /** * Show the courses in which this user is subscribed */ -$sql = 'SELECT * FROM '.$table_course_user.' cu, '.$table_course.' c'. - ' WHERE cu.user_id = '.$user['user_id'].' AND cu.course_code = c.code '. - ' AND cu.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' '; +$sql = 'SELECT * FROM '.$table_course_user.' cu, '.$table_course.' c + WHERE + cu.user_id = '.$user['user_id'].' AND + cu.c_id = c.id AND + cu.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' '; $res = Database::query($sql); if (Database::num_rows($res) > 0) { $header = array( @@ -283,14 +285,15 @@ if (Database::num_rows($res) > 0) { $data = array(); $courseToolInformationTotal = null; while ($course = Database::fetch_object($res)) { - $courseInfo = api_get_course_info($course->code); + $courseInfo = api_get_course_info_by_id($course->c_id); + $courseCode = $courseInfo['code']; $courseToolInformation = null; - $tools = ''.Display::return_icon('synthese_view.gif', get_lang('Overview')).''. + $tools = ''.Display::return_icon('synthese_view.gif', get_lang('Overview')).''. ''.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'' . - ''.Display::return_icon('edit.gif', get_lang('Edit')).''; + ''.Display::return_icon('edit.gif', get_lang('Edit')).''; if ($course->status == STUDENT) { - $tools .= ''. + $tools .= ''. Display::return_icon('delete.png', get_lang('Delete')).''; } @@ -309,7 +312,7 @@ if (Database::num_rows($res) > 0) { ); $row = array( - Display::url($course->code, $courseInfo['course_public_url']), + Display::url($courseCode, $courseInfo['course_public_url']), $course->title, $course->status == STUDENT ? get_lang('Student') : get_lang('Teacher'), $timeSpent, diff --git a/main/auth/courses_controller.php b/main/auth/courses_controller.php index f233dce683..b878919c58 100755 --- a/main/auth/courses_controller.php +++ b/main/auth/courses_controller.php @@ -245,7 +245,10 @@ class CoursesController */ public function change_course_category($course_code, $category_id) { - $result = $this->model->store_changecoursecategory($course_code, $category_id); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + + $result = $this->model->store_changecoursecategory($courseId, $category_id); $message = ''; if ($result) { $message = get_lang('EditCourseCategorySucces'); diff --git a/main/chat/chat_whoisonline.php b/main/chat/chat_whoisonline.php index 319f46847e..c4b2cc647e 100755 --- a/main/chat/chat_whoisonline.php +++ b/main/chat/chat_whoisonline.php @@ -12,6 +12,7 @@ define('FRAME', 'online'); require_once '../inc/global.inc.php'; $course = api_get_course_id(); +$courseInfo = api_get_course_info(); $group_id = api_get_group_id(); $session_id = api_get_session_id(); $user_id = api_get_user_id(); @@ -54,7 +55,7 @@ if (!empty($course)) { t1.user_id=t2.user_id AND t3.user_id=t2.user_id AND t3.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND - t3.course_code = '".$_course['sysCode']."' AND + t3.c_id = '".$courseInfo['id']."' AND t2.last_connection>'".$date_inter."' $extra_condition ORDER BY username"; $result = Database::query($query); diff --git a/main/course_info/infocours.php b/main/course_info/infocours.php index 28f5b0bca6..83560f5fb5 100755 --- a/main/course_info/infocours.php +++ b/main/course_info/infocours.php @@ -31,6 +31,7 @@ $currentCourseRepository = $_course['path']; $is_allowedToEdit = $is_courseAdmin || $is_platformAdmin; $course_code = api_get_course_id(); +$courseId = api_get_course_int_id(); $course_access_settings = CourseManager:: get_access_settings($course_code); //LOGIC FUNCTIONS @@ -62,7 +63,7 @@ $s_tutor = Database::result($q_tutor, 0, 'tutor_name'); $target_name = api_sort_by_first_name() ? 'firstname' : 'lastname'; $s_sql_course_titular = "SELECT DISTINCT username, lastname, firstname FROM $tbl_user as user, $tbl_course_user as course_rel_user - WHERE (course_rel_user.status='1') AND user.user_id=course_rel_user.user_id AND course_code='".$course_code."' + WHERE (course_rel_user.status='1') AND user.user_id=course_rel_user.user_id AND c_id ='".$courseId."' ORDER BY ".$target_name." ASC"; $q_result_titulars = Database::query($s_sql_course_titular); diff --git a/main/coursecopy/copy_course.php b/main/coursecopy/copy_course.php index 15f40b8dd4..39a04ba39e 100755 --- a/main/coursecopy/copy_course.php +++ b/main/coursecopy/copy_course.php @@ -86,14 +86,14 @@ if (Security::check_token('post') && ( $course_info = api_get_course_info(); $sql = 'SELECT * FROM '.$table_c.' c, '.$table_cu.' cu - WHERE cu.course_code = c.code'; + WHERE cu.c_id = c.id'; if (!api_is_platform_admin()) { $sql .= ' AND cu.status=1 '; } $sql .= ' AND target_course_code IS NULL AND cu.user_id = '.$user_info['user_id'].' AND - c.code != '."'".$course_info['sysCode']."'".' + c.c_id != '."'".$course_info['id']."'".' ORDER BY title ASC'; $res = Database::query($sql); if (Database::num_rows($res) == 0) { @@ -101,7 +101,8 @@ if (Security::check_token('post') && ( } else { $options = array(); while ($obj = Database::fetch_object($res)) { - $options[$obj->code] = $obj->title; + $courseInfo = api_get_course_info_by_id($obj->c_id); + $options[$courseInfo['code']] = $obj->title; } $form = new FormValidator('copy_course', 'post', 'copy_course.php?'.api_get_cidreq()); diff --git a/main/exercice/question_pool.php b/main/exercice/question_pool.php index b13ff18054..9c625b2963 100755 --- a/main/exercice/question_pool.php +++ b/main/exercice/question_pool.php @@ -269,8 +269,7 @@ if (!empty($session_id) && $session_id != '-1' && !empty($sessionList)) { if (api_is_platform_admin()) { $courseInfo = api_get_course_info(); if (!empty($course_list)) { - $courseIdList = array_keys($course_list); - if (!in_array($courseInfo['real_id'], $courseIdList)) { + if (!in_array($courseInfo['real_id'], $course_list)) { $course_list = array_merge($course_list, array($courseInfo)); } } else { diff --git a/main/forum/viewthread_flat.inc.php b/main/forum/viewthread_flat.inc.php index 16ec6d71e0..79c6b2b910 100755 --- a/main/forum/viewthread_flat.inc.php +++ b/main/forum/viewthread_flat.inc.php @@ -79,7 +79,7 @@ if (isset($current_thread['thread_id'])) { } } - $user_status = api_get_status_of_user_in_course($row['user_id'], api_get_course_id()); + $user_status = api_get_status_of_user_in_course($row['user_id'], api_get_course_int_id()); $current_qualify_thread = show_qualify('1', $row['poster_id'],$_GET['thread']); if (api_is_allowed_to_edit(null,true) && $origin != 'learnpath') { diff --git a/main/forum/viewthread_nested.inc.php b/main/forum/viewthread_nested.inc.php index 2d8d78987d..7368c25560 100755 --- a/main/forum/viewthread_nested.inc.php +++ b/main/forum/viewthread_nested.inc.php @@ -92,7 +92,7 @@ foreach ($rows as $post) { } $userinf = api_get_user_info($post['user_id']); - $user_status = api_get_status_of_user_in_course($post['user_id'],api_get_course_id()); + $user_status = api_get_status_of_user_in_course($post['user_id'], api_get_course_int_id()); if (api_is_allowed_to_edit(null,true)) { //if ($count>0 && $user_status!=1) { if ($count>0) { diff --git a/main/forum/viewthread_threaded.inc.php b/main/forum/viewthread_threaded.inc.php index 3c28796d59..3904d6b712 100755 --- a/main/forum/viewthread_threaded.inc.php +++ b/main/forum/viewthread_threaded.inc.php @@ -313,7 +313,7 @@ if ( $userinf = api_get_user_info($rows[$display_post_id]['user_id']); $user_status = api_get_status_of_user_in_course( $rows[$display_post_id]['user_id'], - api_get_course_id() + api_get_course_int_id() ); if (api_is_allowed_to_edit(null, true)) { if ($post_id > $post_minor) { diff --git a/main/gradebook/lib/GradebookUtils.php b/main/gradebook/lib/GradebookUtils.php index 8330957ac4..a484db5632 100644 --- a/main/gradebook/lib/GradebookUtils.php +++ b/main/gradebook/lib/GradebookUtils.php @@ -942,9 +942,9 @@ class GradebookUtils /** * returns users within a course given by param - * @param int $course_id + * @param string $courseCode */ - public static function get_users_in_course($course_id) + public static function get_users_in_course($courseCode) { $tbl_course_user = Database:: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_session_course_user = Database:: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); @@ -952,7 +952,9 @@ class GradebookUtils $order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname ASC' : ' ORDER BY lastname, firstname ASC'; $current_session = api_get_session_id(); - $course_id = Database::escape_string($course_id); + $courseCode = Database::escape_string($courseCode); + $courseInfo = api_get_course_info($courseCode); + $courseId = $courseInfo['id']; if (!empty($current_session)) { $sql = "SELECT user.user_id, user.username, lastname, firstname, official_code @@ -960,7 +962,7 @@ class GradebookUtils WHERE scru.id_user=user.user_id AND scru.status=0 AND - scru.course_code='$course_id' AND + scru.course_code='$courseCode' AND id_session ='$current_session' $order_clause "; @@ -970,8 +972,8 @@ class GradebookUtils WHERE course_rel_user.user_id=user.user_id AND course_rel_user.status='.STUDENT.' AND - course_rel_user.course_code = "'.$course_id.'" '. - $order_clause; + course_rel_user.c_id = "'.$courseId.'" '. + $order_clause; } $result = Database::query($sql); @@ -1082,8 +1084,8 @@ class GradebookUtils if (!api_is_platform_admin()) { $sql .= ' AND user.user_id = cru.user_id AND cru.relation_type <> '.COURSE_RELATION_TYPE_RRHH.' AND - cru.course_code in ( - SELECT course_code FROM '.$tbl_cru . ' + cru.c_id in ( + SELECT c_id FROM '.$tbl_cru . ' WHERE user_id = ' . api_get_user_id() . ' AND status = ' . COURSEMANAGER . ' diff --git a/main/gradebook/lib/be/category.class.php b/main/gradebook/lib/be/category.class.php index 0a1f990ec1..c85e9c1abd 100755 --- a/main/gradebook/lib/be/category.class.php +++ b/main/gradebook/lib/be/category.class.php @@ -775,13 +775,14 @@ class Category implements GradebookItem if (api_is_allowed_to_edit()) { $parent = Category::load($parent); $code = $parent[0]->get_course_code(); + $courseInfo = api_get_course_info($code); + $courseId = $courseInfo['id']; if (isset($code) && $code != '0') { $main_course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); - $sql .= ' AND user_id IN (' - .' SELECT user_id FROM '.$main_course_user_table - ." WHERE course_code = '".Database::escape_string($code)."'" - .' AND status = '.COURSEMANAGER - .')'; + $sql .= ' AND user_id IN ( + SELECT user_id FROM '.$main_course_user_table.' + WHERE c_id = '.$courseId.' AND status = '.COURSEMANAGER.' + )'; } else { $sql .= ' AND user_id = '.api_get_user_id(); } @@ -994,11 +995,11 @@ class Category implements GradebookItem public function get_root_categories_for_student($stud_id, $course_code = null, $session_id = null) { $main_course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); + $courseTable = Database :: get_main_table(TABLE_MAIN_COURSE); $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY); - $sql = 'SELECT *' - .' FROM '.$tbl_grade_categories - .' WHERE parent_id = 0'; + $sql = "SELECT * FROM $tbl_grade_categories WHERE parent_id = 0"; + if (!api_is_allowed_to_edit()) { $sql .= ' AND visible = 1'; //proceed with checks on optional parameters course & session @@ -1008,20 +1009,20 @@ class Category implements GradebookItem // session, we don't check his registration to these, but this // could be an improvement if (!empty($session_id)) { - $sql .= " AND course_code = '".Database::escape_string($course_code)."'" - ." AND session_id = ".(int)$session_id; + $sql .= " AND course_code = '".Database::escape_string($course_code)."' AND session_id = ".(int)$session_id; } else { - $sql .= " AND course_code = '".Database::escape_string($course_code)."' AND - session_id is null OR session_id=0"; + $sql .= " AND course_code = '".Database::escape_string($course_code)."' AND session_id is null OR session_id=0"; } } else { //no optional parameter, proceed as usual - $sql .= ' AND course_code in' - .' (SELECT course_code' - .' FROM '.$main_course_user_table - .' WHERE user_id = '.intval($stud_id) - .' AND status = '.STUDENT - .')'; + $sql .= ' AND course_code in + ( + SELECT c.code + FROM '.$main_course_user_table.' cu INNER JOIN '.$courseTable.' c + ON (cu.c_id = c.id) + WHERE cu.user_id = '.intval($stud_id).' + AND cu.status = '.STUDENT.' + )'; } } elseif (api_is_allowed_to_edit() && !api_is_platform_admin()) { //proceed with checks on optional parameters course & session @@ -1068,12 +1069,13 @@ class Category implements GradebookItem * @param string course code (optional) * @param int session id (optional) */ - public function get_root_categories_for_teacher ($user_id, $course_code = null, $session_id = null) + public function get_root_categories_for_teacher($user_id, $course_code = null, $session_id = null) { if ($user_id == null) { return Category::load(null,null,$course_code,0,null,$session_id); } + $courseTable = Database :: get_main_table(TABLE_MAIN_COURSE); $main_course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY); @@ -1086,11 +1088,13 @@ class Category implements GradebookItem $sql .= " AND session_id = ".(int)$session_id; } } else { - $sql .= ' AND course_code in' - .' (SELECT course_code' - .' FROM '.$main_course_user_table - .' WHERE user_id = '.intval($user_id) - .')'; + $sql .= ' AND course_code in + ( + SELECT c.code + FROM '.$main_course_user_table.' cu INNER JOIN '.$courseTable.' c + ON (cu.c_id = c.id) + WHERE user_id = '.intval($user_id).' + )'; } $result = Database::query($sql); $cats = Category::create_category_objects_from_sql_result($result); @@ -1285,17 +1289,20 @@ class Category implements GradebookItem $tbl_main_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_grade_categories = Database :: get_main_table(TABLE_MAIN_GRADEBOOK_CATEGORY); - $sql = 'SELECT DISTINCT(code), title FROM '.$tbl_main_courses.' cc, '.$tbl_main_course_user.' cu' - .' WHERE cc.code = cu.course_code' + $sql = 'SELECT DISTINCT(code), title + FROM '.$tbl_main_courses.' cc, '.$tbl_main_course_user.' cu' + .' WHERE cc.id = cu.c_id ' .' AND cu.status = '.COURSEMANAGER; if (!api_is_platform_admin()) { $sql .= ' AND cu.user_id = '.$user_id; } - $sql .= ' AND cc.code NOT IN' - .' (SELECT course_code FROM '.$tbl_grade_categories - .' WHERE parent_id = 0' -// .' AND user_id = '.$user_id - .' AND course_code IS NOT null)'; + $sql .= ' AND cc.code NOT IN + ( + SELECT course_code FROM '.$tbl_grade_categories.' + WHERE + parent_id = 0 AND + course_code IS NOT NULL + )'; $result = Database::query($sql); $cats=array(); @@ -1314,9 +1321,9 @@ class Category implements GradebookItem { $tbl_main_courses = Database :: get_main_table(TABLE_MAIN_COURSE); $tbl_main_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); - $sql = 'SELECT DISTINCT(code), title FROM '.$tbl_main_courses.' cc, '.$tbl_main_course_user.' cu' - .' WHERE cc.code = cu.course_code' - .' AND cu.status = '.COURSEMANAGER; + $sql = 'SELECT DISTINCT(code), title + FROM '.$tbl_main_courses.' cc, '.$tbl_main_course_user.' cu + WHERE cc.id = cu.c_id AND cu.status = '.COURSEMANAGER; if (!api_is_platform_admin()) { $sql .= ' AND cu.user_id = '.intval($user_id); } diff --git a/main/gradebook/lib/be/evaluation.class.php b/main/gradebook/lib/be/evaluation.class.php index bb3977dd84..d8dcd26f28 100755 --- a/main/gradebook/lib/be/evaluation.class.php +++ b/main/gradebook/lib/be/evaluation.class.php @@ -441,13 +441,17 @@ class Evaluation implements GradebookItem if (api_is_allowed_to_edit()) { $parent = Category::load($parent); $code = $parent[0]->get_course_code(); + $courseInfo = api_get_course_info($code); + $courseId = $courseInfo['id']; + if (isset($code) && $code != '0') { $main_course_user_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); - $sql .= ' AND user_id IN (' - .' SELECT user_id FROM '.$main_course_user_table - ." WHERE course_code = '".Database::escape_string($code)."'" - .' AND status = '.COURSEMANAGER - .')'; + $sql .= ' AND user_id IN ( + SELECT user_id FROM '.$main_course_user_table.' + WHERE + c_id = '.$courseId.' AND + status = '.COURSEMANAGER.' + )'; } else { $sql .= ' AND user_id = '.api_get_user_id(); } @@ -463,6 +467,7 @@ class Evaluation implements GradebookItem } $result = Database::query($sql); $number=Database::fetch_row($result); + return $number[0] != 0; } diff --git a/main/gradebook/lib/be/exerciselink.class.php b/main/gradebook/lib/be/exerciselink.class.php index 2cba61984a..9af1eab7ef 100755 --- a/main/gradebook/lib/be/exerciselink.class.php +++ b/main/gradebook/lib/be/exerciselink.class.php @@ -198,7 +198,7 @@ class ExerciseLink extends AbstractLink $exercise->read($this->get_ref_id()); if (!$this->is_hp) { - + if ($exercise->exercise_was_added_in_lp == false) { $sql = "SELECT * FROM $tblStats WHERE @@ -304,7 +304,10 @@ class ExerciseLink extends AbstractLink //status student $user_id = api_get_user_id(); $course_code = $this->get_course_code(); - $status_user=api_get_status_of_user_in_course ($user_id, $course_code); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + + $status_user=api_get_status_of_user_in_course($user_id, $courseId); $session_id =api_get_session_id(); $url = api_get_path(WEB_CODE_PATH).'gradebook/exercise_jump.php?session_id='.$session_id.'&cidReq='.$this->get_course_code().'&gradebook=view&exerciseId='.$this->get_ref_id().'&type='.$this->get_type(); diff --git a/main/gradebook/lib/be/result.class.php b/main/gradebook/lib/be/result.class.php index 25a656261f..2231c55a2b 100755 --- a/main/gradebook/lib/be/result.class.php +++ b/main/gradebook/lib/be/result.class.php @@ -105,9 +105,9 @@ class Result course_code="' . api_get_course_id() . '" AND id_session=' . $sessionId; } else { - $sql = 'SELECT course_code,user_id,status + $sql = 'SELECT c_id, user_id, status FROM ' . $tbl_course_rel_course . ' - WHERE status ="' . STUDENT . '" AND course_code="' . api_get_course_id() . '" '; + WHERE status ="' . STUDENT . '" AND c_id = "' . api_get_course_int_id() . '" '; } $res_course_rel_user = Database::query($sql); @@ -128,7 +128,7 @@ class Result if ($info_verified == 0) { $sql_insert = 'INSERT INTO ' . $tbl_grade_results . '(user_id,evaluation_id,created_at,score) VALUES ("' . intval($list_user_course_list[$i]['user_id']) . '","' . intval($evaluation_id) . '","' . $current_date . '",0);'; - $res_insert = Database::query($sql_insert); + Database::query($sql_insert); } } $list_user_course_list = array(); diff --git a/main/gradebook/lib/fe/displaygradebook.php b/main/gradebook/lib/fe/displaygradebook.php index b2d3df5d9c..ca6543df93 100755 --- a/main/gradebook/lib/fe/displaygradebook.php +++ b/main/gradebook/lib/fe/displaygradebook.php @@ -303,7 +303,10 @@ class DisplayGradebook $my_category = $catobj->shows_all_information_an_category($catobj->get_id()); $user_id = api_get_user_id(); $course_code = $my_category['course_code']; - $status_user = api_get_status_of_user_in_course($user_id, $course_code); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + + $status_user = api_get_status_of_user_in_course($user_id, $courseId); //$header .= '' . get_lang('AddGradebook') . ''; @@ -536,9 +539,6 @@ class DisplayGradebook $user_id = api_get_user_id(); $my_api_cidreq = api_get_cidreq(); - //$course_code = $my_category['course_code']; - //$status_user = api_get_status_of_user_in_course ($user_id,$course_code); - if (api_is_allowed_to_edit(null, true)) { if (empty($grade_model_id) || $grade_model_id == -1) { $header .= '' . diff --git a/main/gradebook/lib/fe/gradebooktable.class.php b/main/gradebook/lib/fe/gradebooktable.class.php index 7935e9fb9c..abd74a6d2d 100755 --- a/main/gradebook/lib/fe/gradebooktable.class.php +++ b/main/gradebook/lib/fe/gradebooktable.class.php @@ -149,7 +149,7 @@ class GradebookTable extends SortableTable $user_id = api_get_user_id(); $course_code = api_get_course_id(); $session_id = api_get_session_id(); - $status_user = api_get_status_of_user_in_course($user_id, $course_code); + $status_user = api_get_status_of_user_in_course($user_id, api_get_course_int_id()); if (empty($session_id)) { $statusToFilter = STUDENT; diff --git a/main/gradebook/lib/gradebook_data_generator.class.php b/main/gradebook/lib/gradebook_data_generator.class.php index a80e27fcea..07ddc3376e 100755 --- a/main/gradebook/lib/gradebook_data_generator.class.php +++ b/main/gradebook/lib/gradebook_data_generator.class.php @@ -115,7 +115,7 @@ class GradebookDataGenerator $userId = api_get_user_id(); $course_code = api_get_course_id(); $sessionId = api_get_session_id(); - $status_user = api_get_status_of_user_in_course($userId, $course_code); + $status_user = api_get_status_of_user_in_course($userId, api_get_course_int_id()); if (empty($sessionId)) { $statusToFilter = STUDENT; diff --git a/main/inc/ajax/social.ajax.php b/main/inc/ajax/social.ajax.php index c30303595f..bbfc28320e 100755 --- a/main/inc/ajax/social.ajax.php +++ b/main/inc/ajax/social.ajax.php @@ -125,7 +125,7 @@ switch ($action) { $course_info = api_get_course_info_by_id($course_id); $course_code = $course_info['code']; - if (api_is_user_of_course($course_code, api_get_user_id())) { + if (api_is_user_of_course($course_id, api_get_user_id())) { //------Forum messages $forum_result = get_all_post_from_user($user_id, $course_code); $all_result_data = 0; diff --git a/main/inc/lib/add_course.lib.inc.php b/main/inc/lib/add_course.lib.inc.php index 34180b02e0..1cd29f4146 100755 --- a/main/inc/lib/add_course.lib.inc.php +++ b/main/inc/lib/add_course.lib.inc.php @@ -1350,24 +1350,12 @@ class AddCourse // Here we must add 2 fields. $sql = "INSERT INTO " . $TABLECOURSE . " SET - code = '" . Database:: escape_string( - $code - ) . "', - directory = '" . Database:: escape_string( - $directory - ) . "', - course_language = '" . Database:: escape_string( - $course_language - ) . "', - title = '" . Database:: escape_string( - $title - ) . "', - description = '" . self::lang2db( - get_lang('CourseDescription') - ) . "', - category_code = '" . Database:: escape_string( - $category_code - ) . "', + code = '".Database:: escape_string($code)."', + directory = '".Database:: escape_string($directory)."', + course_language = '".Database:: escape_string($course_language)."', + title = '".Database:: escape_string($title)."', + description = '".self::lang2db(get_lang('CourseDescription'))."', + category_code = '".Database:: escape_string($category_code)."', visibility = '" . $visibility . "', show_score = '1', disk_quota = '" . intval($disk_quota) . "', @@ -1375,20 +1363,12 @@ class AddCourse expiration_date = '" . $expiration_date . "', last_edit = '$time', last_visit = NULL, - tutor_name = '" . Database:: escape_string( - $tutor_name - ) . "', - department_name = '" . Database:: escape_string( - $department_name - ) . "', - department_url = '" . Database:: escape_string( - $department_url - ) . "', - subscribe = '" . intval($subscribe) . "', - unsubscribe = '" . intval($unsubscribe) . "', - visual_code = '" . Database:: escape_string( - $visual_code - ) . "'"; + tutor_name = '" . Database:: escape_string($tutor_name) . "', + department_name = '" . Database:: escape_string($department_name) . "', + department_url = '" . Database:: escape_string($department_url) . "', + subscribe = '" . intval($subscribe) . "', + unsubscribe = '" . intval($unsubscribe) . "', + visual_code = '" . Database:: escape_string($visual_code) . "'"; Database::query($sql); $course_id = Database::insert_id(); @@ -1405,17 +1385,13 @@ class AddCourse if (!empty($user_id)) { $sql = "INSERT INTO " . $TABLECOURSUSER . " SET - course_code = '" . Database:: escape_string( - $code - ) . "', - user_id = '" . intval($user_id) . "', - status = '1', - role = '" . self::lang2db( - get_lang('Professor') - ) . "', - tutor_id = '0', - sort = '" . ($i_course_sort) . "', - user_course_cat = '0'"; + c_id = '" . $course_id . "', + user_id = '" . intval($user_id) . "', + status = '1', + role = '" . self::lang2db(get_lang('Professor')) . "', + tutor_id = '0', + sort = '" . ($i_course_sort) . "', + user_course_cat = '0'"; Database::query($sql); } } @@ -1433,12 +1409,8 @@ class AddCourse continue; } $sql = "INSERT INTO " . $TABLECOURSUSER . " SET - course_code = '" . Database::escape_string( - $code - ) . "', - user_id = '" . Database::escape_string( - $key - ) . "', + c_id = '" . Database::escape_string($course_id) . "', + user_id = '" . Database::escape_string($key) . "', status = '1', role = '', tutor_id = '0', diff --git a/main/inc/lib/api.lib.php b/main/inc/lib/api.lib.php index 8f47aec2b2..951d603c18 100644 --- a/main/inc/lib/api.lib.php +++ b/main/inc/lib/api.lib.php @@ -1290,27 +1290,32 @@ function api_get_user_id() { */ function api_get_user_courses($userid, $fetch_session = true) { + // Get out if not integer if ($userid != strval(intval($userid))) { return array(); - } //get out if not integer + } + $t_course = Database::get_main_table(TABLE_MAIN_COURSE); $t_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); - $sql = "SELECT cc.code code, cc.db_name db, cc.directory dir, cu.status status + $sql = "SELECT cc.code code, cc.directory dir, cu.status status FROM $t_course cc, $t_course_user cu WHERE - cc.code = cu.course_code AND + cc.id = cu.c_id AND cu.user_id = '".$userid."' AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." "; $result = Database::query($sql); if ($result === false) { return array(); } + + $courses = array(); while ($row = Database::fetch_array($result)) { // we only need the database name of the course $courses[] = $row; } + return $courses; } @@ -5356,6 +5361,10 @@ function api_is_course_visible_for_user($userid = null, $cid = null) { } } $cid = Database::escape_string($cid); + + $courseInfo = api_get_course_info($cid); + $courseId = $courseInfo['id']; + global $is_platformAdmin; $course_table = Database::get_main_table(TABLE_MAIN_COURSE); @@ -5396,7 +5405,7 @@ function api_is_course_visible_for_user($userid = null, $cid = null) { AND relation_type <> '".COURSE_RELATION_TYPE_RRHH."' AND - course_code = '$cid' + c_id = $courseId LIMIT 1"; $result = Database::query($sql); @@ -5695,17 +5704,18 @@ function api_get_access_url_from_user($user_id) { /** * Gets the status of a user in a course * @param int $user_id - * @param string $course_code + * @param int $courseId * @return int user status */ -function api_get_status_of_user_in_course ($user_id, $course_code) { +function api_get_status_of_user_in_course($user_id, $courseId) +{ $tbl_rel_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); - if (!empty($user_id) && !empty($course_code)) { + if (!empty($user_id) && !empty($courseId)) { $user_id = intval($user_id); - $course_code = Database::escape_string($course_code); + $courseId = intval($courseId); $sql = 'SELECT status FROM '.$tbl_rel_course_user.' - WHERE user_id='.$user_id.' AND course_code="'.$course_code.'";'; + WHERE user_id='.$user_id.' AND c_id = '.$courseId; $result = Database::query($sql); $row_status = Database::fetch_array($result, 'ASSOC'); return $row_status['status']; @@ -5791,16 +5801,16 @@ function api_is_valid_secret_key($original_key_secret, $security_key) { /** * Checks whether a user is into course - * @param string $course_id - the course id + * @param int $course_id - the course id * @param int $user_id - the user id */ function api_is_user_of_course($course_id, $user_id) { $tbl_course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql = 'SELECT user_id FROM '.$tbl_course_rel_user.' WHERE - course_code="'.Database::escape_string($course_id).'" AND - user_id="'.intval($user_id).'" AND - relation_type<>'.COURSE_RELATION_TYPE_RRHH.' '; + c_id ="'.intval($course_id).'" AND + user_id = "'.intval($user_id).'" AND + relation_type <> '.COURSE_RELATION_TYPE_RRHH.' '; $result = Database::query($sql); return Database::num_rows($result) == 1; } diff --git a/main/inc/lib/auth.lib.php b/main/inc/lib/auth.lib.php index 16140df546..a75c72e52c 100755 --- a/main/inc/lib/auth.lib.php +++ b/main/inc/lib/auth.lib.php @@ -58,7 +58,7 @@ class Auth course.title i, course.tutor_name t, course.db_name db, course.directory dir, course_rel_user.status status, course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat FROM $TABLECOURS course, $TABLECOURSUSER course_rel_user - WHERE course.code = course_rel_user.course_code + WHERE course.id = course_rel_user.c_id AND course_rel_user.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND course_rel_user.user_id = '" . $user_id . "' $without_special_courses ORDER BY course_rel_user.sort ASC"; @@ -144,7 +144,7 @@ class Auth FROM $TABLECOURS course, $TABLECOURSUSER course_rel_user WHERE - course.code = course_rel_user.course_code AND + course.id = course_rel_user.c_id AND course_rel_user.user_id = '" . $user_id . "' AND course_rel_user.relation_type <> " . COURSE_RELATION_TYPE_RRHH . " $without_special_courses @@ -161,20 +161,27 @@ class Auth /** * stores the changes in a course category (moving a course to a different course category) - * @param string Course code + * @param string $courseId * @param int Category id * @return bool True if it success */ - public function store_changecoursecategory($course_code, $newcategory) + public function store_changecoursecategory($courseId, $newcategory) { - $course_code = Database::escape_string($course_code); + $courseId = intval($courseId); $newcategory = intval($newcategory); $current_user = api_get_user_id(); $TABLECOURSUSER = Database::get_main_table(TABLE_MAIN_COURSE_USER); $max_sort_value = api_max_sort_value($newcategory, $current_user); - $resultQuery = Database::query("UPDATE $TABLECOURSUSER SET user_course_cat='" . $newcategory . "', sort='" . ($max_sort_value + 1) . "' WHERE course_code='" . $course_code . "' AND user_id='" . $current_user . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "); + $sql = "UPDATE $TABLECOURSUSER SET + user_course_cat='" . $newcategory . "', + sort='" . ($max_sort_value + 1) . "' + WHERE + c_id ='" . $courseId . "' AND + user_id='" . $current_user . "' AND + relation_type<>" . COURSE_RELATION_TYPE_RRHH; + $resultQuery = Database::query($sql); $result = false; if (Database::affected_rows($resultQuery)) { @@ -224,16 +231,29 @@ class Auth } if (count($target_course) > 0 && count($source_course) > 0) { - $sql_update1 = "UPDATE $TABLECOURSUSER SET sort='" . $target_course['sort'] . "' - WHERE course_code='" . $source_course['code'] . "' AND user_id='" . $current_user_id . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "; + + + $courseInfo = api_get_course_info($source_course['code']); + $courseId = $courseInfo['id']; + + $sql_update1 = "UPDATE $TABLECOURSUSER + SET sort='" . $target_course['sort'] . "' + WHERE + c_id = '" . $courseId . "' AND + user_id = '" . $current_user_id . "' AND + relation_type<>" . COURSE_RELATION_TYPE_RRHH; $sql_update2 = "UPDATE $TABLECOURSUSER SET sort='" . $source_course['sort'] . "' - WHERE course_code='" . $target_course['code'] . "' AND user_id='" . $current_user_id . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "; + WHERE + c_id ='" . $courseId . "' AND + user_id='" . $current_user_id . "' AND + relation_type<>" . COURSE_RELATION_TYPE_RRHH; $result1 = Database::query($sql_update2); $result2 = Database::query($sql_update1); if (Database::affected_rows($result1) && Database::affected_rows($result2)) { $result = true; } } + return $result; } @@ -343,7 +363,10 @@ class Auth } $sql = "UPDATE $TABLECOURSUSER SET user_course_cat='0' - WHERE user_course_cat='" . $category_id . "' AND user_id='" . $current_user_id . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "; + WHERE + user_course_cat='" . $category_id . "' AND + user_id='" . $current_user_id . "' AND + relation_type<>" . COURSE_RELATION_TYPE_RRHH . " "; Database::query($sql); return $result; @@ -363,11 +386,14 @@ class Auth $course_code = Database::escape_string($course_code); $result = true; + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + // we check (once again) if the user is not course administrator // because the course administrator cannot unsubscribe himself // (s)he can only delete the course $sql = "SELECT * FROM $tbl_course_user - WHERE user_id='" . $current_user_id . "' AND course_code='" . $course_code . "' AND status='1' "; + WHERE user_id='" . $current_user_id . "' AND c_id ='" . $courseId . "' AND status='1' "; $result_check = Database::query($sql); $number_of_rows = Database::num_rows($result_check); if ($number_of_rows > 0) { diff --git a/main/inc/lib/blog.lib.php b/main/inc/lib/blog.lib.php index 944717dca5..a408ebbb9d 100755 --- a/main/inc/lib/blog.lib.php +++ b/main/inc/lib/blog.lib.php @@ -1833,7 +1833,6 @@ class Blog $currentCourse = $_course['code']; $tbl_users = Database::get_main_table(TABLE_MAIN_USER); $tbl_blogs_rel_user = Database::get_course_table(TABLE_BLOGS_REL_USER); - $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); echo ''.get_lang('SubscribeMembers').''; diff --git a/main/inc/lib/classmanager.lib.php b/main/inc/lib/classmanager.lib.php index c1eb0e4f75..6e645f235a 100755 --- a/main/inc/lib/classmanager.lib.php +++ b/main/inc/lib/classmanager.lib.php @@ -153,10 +153,10 @@ class ClassManager * @param int $class_id The class id * @param string $course_code The course code */ - public static function subscribe_to_course($class_id, $course_code) { + public static function subscribe_to_course($class_id, $course_code) + { $tbl_course_class = Database :: get_main_table(TABLE_MAIN_COURSE_CLASS); $tbl_class_user = Database :: get_main_table(TABLE_MAIN_CLASS_USER); - $tbl_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $sql = "INSERT IGNORE INTO $tbl_course_class SET course_code = '".Database::escape_string($course_code)."', class_id = '".Database::escape_string($class_id)."'"; Database::query($sql); $sql = "SELECT user_id FROM $tbl_class_user WHERE class_id = '".intval($class_id)."'"; diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index f9e75b0189..2e8e3089eb 100755 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -322,10 +322,15 @@ class CourseManager */ public static function get_user_in_course_status($user_id, $course_code) { + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $result = Database::fetch_array( Database::query( "SELECT status FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " - WHERE course_code = '" . Database::escape_string($course_code) . "' AND user_id = " . intval($user_id) + WHERE + c_id = '" . $courseId. "' AND + user_id = " . intval($user_id) ) ); @@ -489,7 +494,7 @@ class CourseManager WHERE user_id IN (" . $user_ids . ") AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND - course_code = '" . $course_code . "'"; + c_id = '" . $course_id . "'"; Database::query($sql); // add event to system log @@ -537,6 +542,9 @@ class CourseManager } $course_code = Database::escape_string($course_code); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $userCourseCategoryId = intval($userCourseCategoryId); if (empty($user_id) || empty ($course_code)) { @@ -561,12 +569,14 @@ class CourseManager } // Check whether the user has not been already subscribed to the course. + if (empty($session_id)) { - if (Database::num_rows(@Database::query(" + if (Database::num_rows(Database::query(" SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " - WHERE user_id = '$user_id' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND course_code = '$course_code'")) > 0 + WHERE user_id = '$user_id' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND c_id = '$courseId'")) > 0 ) { - return false; // The user has been already subscribed to the course. + // The user has been already subscribed to the course. + return false; } } @@ -615,20 +625,20 @@ class CourseManager // Update the table session $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM " . Database::get_main_table(TABLE_MAIN_SESSION_USER) . " WHERE id_session = '" . $session_id . "' AND relation_type<>" . SESSION_RELATION_TYPE_RRHH . "")); $count = $row[0]; // number of users by session - $result = @Database::query("UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION) . " SET nbr_users = '$count' WHERE id = '" . $session_id . "'"); + Database::query("UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION) . " SET nbr_users = '$count' WHERE id = '" . $session_id . "'"); // Update the table session_rel_course - $row = Database::fetch_array(@Database::query("SELECT COUNT(*) FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . " WHERE id_session = '" . $session_id . "' AND course_code = '$course_code' AND status<>2")); + $row = Database::fetch_array(Database::query("SELECT COUNT(*) FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . " WHERE id_session = '" . $session_id . "' AND course_code = '$course_code' AND status<>2")); $count = $row[0]; // number of users by session - $result = @Database::query("UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE) . " SET nbr_users = '$count' WHERE id_session = '" . $session_id . "' AND course_code = '$course_code' "); + $result = Database::query("UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE) . " SET nbr_users = '$count' WHERE id_session = '" . $session_id . "' AND course_code = '$course_code' "); } else { $course_sort = self::userCourseSort($user_id, $course_code); $sql = "INSERT INTO " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " - SET course_code = '$course_code', + SET c_id = '$courseId', user_id = '$user_id', status = '" . $status . "', - sort = '" . ($course_sort) . "', + sort = '" . $course_sort . "', user_course_cat = $userCourseCategoryId "; $result = @Database::query($sql); @@ -724,7 +734,10 @@ class CourseManager if (empty($user_id) || empty($course_code) || ($user_id != strval(intval($user_id)))) { return false; } + $course_code = Database::escape_string($course_code); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; // Check in advance whether the user has already been registered on the platform. $sql = "SELECT status FROM " . $user_table . " WHERE user_id = '$user_id' "; @@ -740,7 +753,7 @@ class CourseManager WHERE user_id = '$user_id' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND - course_code = '$course_code'"; + c_id = '$courseId'"; if (Database::num_rows(Database::query($sql)) > 0) { if ($debug) { error_log('The user has been already subscribed to the course'); @@ -762,7 +775,7 @@ class CourseManager $max_sort = api_max_sort_value('0', $user_id); return (bool)Database::query( "INSERT INTO " . $course_user_table . " - SET course_code = '$course_code', + SET c_id = '$courseId', user_id = '$user_id', status = '" . $status . "', sort = '" . ($max_sort + 1) . "'" @@ -840,7 +853,7 @@ class CourseManager "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE) . " course LEFT JOIN " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " course_user - ON course.code = course_user.course_code + ON course.id = course_user.c_id WHERE course.target_course_code IS NULL AND course_user.user_id = '$user_id' AND course_user.status = '1'" @@ -871,7 +884,7 @@ class CourseManager if (!empty($courses_temp)) { foreach ($courses_temp as $course_item) { - $courseList[0][$course_item['course_code']] = $course_item['course_code']; + $courseList[0][$course_item['code']] = $course_item['code']; } } @@ -966,14 +979,13 @@ class CourseManager $data = array(); $sql = "SELECT - course_rel_user.course_code, + course.code, course.title, course.id, - course.db_name, course.id as real_id FROM $tbl_course_user as course_rel_user INNER JOIN $tbl_course as course - ON course.code = course_rel_user.course_code + ON course.id = course_rel_user.c_id WHERE course_rel_user.user_id='$user_id' AND course_rel_user.status='1' @@ -985,14 +997,13 @@ class CourseManager if ($access_url_id != -1) { $sql = " SELECT - course_rel_user.course_code, + course.code, course.title, course.id, - course.db_name, course.id as real_id FROM $tbl_course_user as course_rel_user INNER JOIN $tbl_course as course - ON course.code = course_rel_user.course_code + ON course.id = course_rel_user.c_id INNER JOIN $tbl_course_rel_access_url course_rel_url ON (course_rel_url.course_code= course.code) WHERE @@ -1006,7 +1017,7 @@ class CourseManager $result_nb_cours = Database::query($sql); if (Database::num_rows($result_nb_cours) > 0) { while ($row = Database::fetch_array($result_nb_cours, 'ASSOC')) { - $data[$row['course_code']] = $row; + $data[$row['id']] = $row; } } @@ -1050,14 +1061,15 @@ class CourseManager if (empty($courseInfo) || empty($userId)) { return false; } - $courseCode = Database::escape_string($courseInfo['code']); + + $courseId = intval($courseInfo['id']); $table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql = "SELECT * FROM $table WHERE user_id = $userId AND relation_type = " . COURSE_RELATION_TYPE_RRHH . " AND - course_code = '$courseCode'"; + c_id = $courseId"; $result = Database::fetch_array(Database::query($sql)); @@ -1090,12 +1102,16 @@ class CourseManager $condition_course = ''; if (isset($course_code)) { - $course_code = Database::escape_string($course_code); - $condition_course = ' AND course_code = "' . $course_code . '" '; + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $condition_course = ' AND c_id = ' . $courseId; } $sql = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " - WHERE user_id = $user_id AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . " $condition_course "; + WHERE + user_id = $user_id AND + relation_type<>" . COURSE_RELATION_TYPE_RRHH . " + $condition_course "; $result = Database::fetch_array(Database::query($sql)); @@ -1145,12 +1161,16 @@ class CourseManager if ($user_id != strval(intval($user_id))) { return false; } - $sql_result = Database::query( + + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + + $result = Database::query( 'SELECT status FROM ' . Database::get_main_table(TABLE_MAIN_COURSE_USER) . - ' WHERE course_code="' . Database::escape_string($course_code) . '" and user_id="' . $user_id . '"' + ' WHERE c_id="' . $courseId . '" and user_id="' . $user_id . '"' ); - if (Database::num_rows($sql_result) > 0) { - return Database::result($sql_result, 0, 'status') == 1; + if (Database::num_rows($result) > 0) { + return Database::result($result, 0, 'status') == 1; } return false; } @@ -1177,7 +1197,7 @@ class CourseManager "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE) . " course LEFT JOIN " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " course_user - ON course.code = course_user.course_code + ON course.id = course_user.c_id WHERE course_user.user_id = '$user_id' AND course_user.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND @@ -1364,11 +1384,13 @@ class CourseManager ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type <> ' . COURSE_RELATION_TYPE_RRHH . ' '; if (!empty($course_code)) { - $sql .= ' AND course_rel_user.course_code="' . $course_code . '"'; + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $sql .= ' AND course_rel_user.c_id="' . $courseId . '"'; } else { - $sql .= " INNER JOIN $course_table course ON course_rel_user.course_code = course.code "; + $sql .= " INNER JOIN $course_table course ON course_rel_user.c_id = course.id "; } - $where[] = ' course_rel_user.course_code IS NOT NULL '; + $where[] = ' course_rel_user.c_id IS NOT NULL '; if (isset($filter_by_status) && is_numeric($filter_by_status)) { $filter_by_status = intval($filter_by_status); @@ -1378,7 +1400,7 @@ class CourseManager $multiple_access_url = api_get_multiple_access_url(); if ($multiple_access_url) { - $sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER) . ' au ON (au.user_id = user.user_id) '; + $sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER) . ' au ON (au.user_id = user.user_id) '; } $extraFieldWasAdded = false; @@ -1648,6 +1670,9 @@ class CourseManager $session_id = intval($session_id); $course_code = Database::escape_string($course_code); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $sql = 'SELECT DISTINCT count(*) as count FROM ' . Database::get_main_table(TABLE_MAIN_USER) . ' as user '; $where = array(); if (!empty($session_id)) { @@ -1659,9 +1684,11 @@ class CourseManager $where[] = ' session_course_user.course_code IS NOT NULL '; } else { $sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_COURSE_USER) . ' as course_rel_user - ON user.user_id = course_rel_user.user_id AND course_rel_user.relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' - AND course_rel_user.course_code="' . $course_code . '"'; - $where[] = ' course_rel_user.course_code IS NOT NULL '; + ON + user.user_id = course_rel_user.user_id AND + course_rel_user.relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' AND + course_rel_user.c_id= ' . $courseId ; + $where[] = ' course_rel_user.c_id IS NOT NULL '; } $multiple_access_url = api_get_multiple_access_url(); @@ -1748,8 +1775,12 @@ class CourseManager $date_to = null, $includeInvitedUsers = true ) { + + $userTable = Database::get_main_table(TABLE_MAIN_USER); $session_id = intval($session_id); $course_code = Database::escape_string($course_code); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; $students = array(); @@ -1757,7 +1788,7 @@ class CourseManager // students directly subscribed to the course $sql = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " cu INNER JOIN user u ON cu.user_id = u.user_id - WHERE course_code = '$course_code' AND cu.status = " . STUDENT; + WHERE c_id = '$courseId' AND cu.status = " . STUDENT; if (!$includeInvitedUsers) { $sql .= " AND u.status != " . INVITEE; @@ -1795,7 +1826,7 @@ class CourseManager } if (!$includeInvitedUsers) { - $sql .= " AND u.status != " . INVITEE; + $sql_query .= " AND u.status != " . INVITEE; } $rs = Database::query($sql_query); @@ -1816,18 +1847,22 @@ class CourseManager */ public static function get_teacher_list_from_course_code($course_code) { - $course_code = Database::escape_string($course_code); - $teachers = array(); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $sql = "SELECT DISTINCT u.user_id, u.lastname, u.firstname, u.email, u.username, u.status FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " cu INNER JOIN " . Database::get_main_table(TABLE_MAIN_USER) . " u ON (cu.user_id = u.user_id) - WHERE cu.course_code = '$course_code' AND - cu.status = 1 "; + WHERE + cu.c_id = $courseId AND + cu.status = 1 "; $rs = Database::query($sql); + $teachers = array(); while ($teacher = Database::fetch_array($rs)) { $teachers[$teacher['user_id']] = $teacher; } + return $teachers; } @@ -2017,7 +2052,7 @@ class CourseManager $sql = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE) . " course LEFT JOIN " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " course_user - ON course.code = course_user.course_code + ON course.id = course_user.c_id WHERE course.target_course_code = '$course_code' AND course_user.user_id = '$user_id' AND @@ -2161,7 +2196,7 @@ class CourseManager /*$sql = "DELETE FROM $table_course_class WHERE course_code='".$code."'"; Database::query($sql);*/ // Unsubscribe all users from the course - $sql = "DELETE FROM $table_course_user WHERE course_code='" . $codeFiltered . "'"; + $sql = "DELETE FROM $table_course_user WHERE c_id='" . $courseId . "'"; Database::query($sql); // Delete the course from the sessions tables $sql = "DELETE FROM $table_session_course WHERE course_code='" . $codeFiltered . "'"; @@ -2317,7 +2352,6 @@ class CourseManager */ public static function userCourseSort($user_id, $course_code) { - if ($user_id != strval(intval($user_id))) { return false; } @@ -2329,8 +2363,9 @@ class CourseManager $course_title = Database::result(Database::query('SELECT title FROM ' . $TABLECOURSE . ' WHERE code="' . $course_code . '"'), 0, 0); - $sql = 'SELECT course.code as code, course.title as title, cu.sort as sort FROM ' . $TABLECOURSUSER . ' as cu, ' . $TABLECOURSE . ' as course - WHERE course.code = cu.course_code AND user_id = "' . $user_id . '" AND + $sql = 'SELECT course.code as code, course.title as title, cu.sort as sort + FROM ' . $TABLECOURSUSER . ' as cu, ' . $TABLECOURSE . ' as course + WHERE course.id = cu.c_id AND user_id = "' . $user_id . '" AND cu.relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' AND user_course_cat = 0 ORDER BY cu.sort'; @@ -2350,12 +2385,21 @@ class CourseManager $course_found = true; $course_sort = $courses['sort']; if ($counter == 0) { - $sql = 'UPDATE ' . $TABLECOURSUSER . ' SET sort = sort+1 - WHERE user_id= "' . $user_id . '" AND relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' AND user_course_cat="0" AND sort > "' . $course_sort . '"'; + $sql = 'UPDATE ' . $TABLECOURSUSER . ' + SET sort = sort+1 + WHERE + user_id= "' . $user_id . '" AND + relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' + AND user_course_cat="0" + AND sort > "' . $course_sort . '"'; $course_sort++; } else { $sql = 'UPDATE ' . $TABLECOURSUSER . ' SET sort = sort+1 - WHERE user_id= "' . $user_id . '" AND relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' AND user_course_cat="0" AND sort >= "' . $course_sort . '"'; + WHERE + user_id= "' . $user_id . '" AND + relation_type<>' . COURSE_RELATION_TYPE_RRHH . ' AND + user_course_cat="0" AND + sort >= "' . $course_sort . '"'; } Database::query($sql); break; @@ -2418,20 +2462,21 @@ class CourseManager * @param bool $send_to_tutor_also * @return string we return the message that is displayed when the action is successful */ - public static function email_to_tutor($user_id, $course_code, $send_to_tutor_also = false) + public static function email_to_tutor($user_id, $courseId, $send_to_tutor_also = false) { - if ($user_id != strval(intval($user_id))) { return false; } $course_code = Database::escape_string($course_code); + $information = self::get_course_information($course_code); + $courseId = $information['id']; $student = Database::fetch_array(Database::query("SELECT * FROM " . Database::get_main_table(TABLE_MAIN_USER) . " WHERE user_id='" . $user_id . "'")); - $information = self::get_course_information($course_code); + $name_course = $information['title']; - $sql = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " WHERE course_code='" . $course_code . "'"; + $sql = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " WHERE c_id ='" . $courseId . "'"; // TODO: Ivan: This is a mistake, please, have a look at it. Intention here is diffcult to be guessed. //if ($send_to_tutor_also = true) @@ -2555,7 +2600,7 @@ class CourseManager $sql = "SELECT DISTINCT(course.code), course.id as real_id FROM " . $tbl_course_user . " course_rel_user LEFT JOIN " . $tbl_course . " course - ON course.code = course_rel_user.course_code + 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 @@ -2575,7 +2620,7 @@ class CourseManager // 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.code=cru.course_code + 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); @@ -2645,11 +2690,11 @@ class CourseManager * @return array List of emails of tutors to course * @author @author Carlos Vargas , Dokeos Latino * */ - public static function get_emails_of_tutors_to_course($code) + public static function get_emails_of_tutors_to_course($courseId) { $list = array(); $res = Database::query("SELECT user_id FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . " - WHERE course_code='" . Database::escape_string($code) . "' AND status=1"); + WHERE c_id ='" . intval($courseId) . "' AND status=1"); while ($list_users = Database::fetch_array($res)) { $result = Database::query("SELECT * FROM " . Database::get_main_table(TABLE_MAIN_USER) . " WHERE user_id=" . $list_users['user_id']); @@ -3103,12 +3148,8 @@ class CourseManager * @param array $courses_list Courses code * @return int **/ - public static function suscribe_courses_to_hr_manager($hr_manager_id, $courses_list) + public static function subscribeCoursesToDrhManager($hr_manager_id, $courses_list) { - global $_configuration; - - // Database Table Definitions - $tbl_course = Database::get_main_table(TABLE_MAIN_COURSE); $tbl_course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE); @@ -3116,10 +3157,13 @@ class CourseManager $affected_rows = 0; //Deleting assigned courses to hrm_id - if ($_configuration['multiple_access_urls']) { - $sql = "SELECT s.course_code FROM $tbl_course_rel_user s - INNER JOIN $tbl_course_rel_access_url a ON (a.course_code = s.course_code) - WHERE user_id = $hr_manager_id AND relation_type=" . COURSE_RELATION_TYPE_RRHH . " AND access_url_id = " . api_get_current_access_url_id() . ""; + if (api_is_multiple_url_enabled()) { + $sql = "SELECT s.c_id FROM $tbl_course_rel_user s + INNER JOIN $tbl_course_rel_access_url a ON (a.c_id = s.c_id) + WHERE + user_id = $hr_manager_id AND + relation_type=" . COURSE_RELATION_TYPE_RRHH . " AND + access_url_id = " . api_get_current_access_url_id() . ""; } else { $sql = "SELECT course_code FROM $tbl_course_rel_user WHERE user_id = $hr_manager_id AND relation_type=" . COURSE_RELATION_TYPE_RRHH . " "; @@ -3128,7 +3172,10 @@ class CourseManager if (Database::num_rows($result) > 0) { while ($row = Database::fetch_array($result)) { $sql = "DELETE FROM $tbl_course_rel_user - WHERE course_code = '{$row['course_code']}' AND user_id = $hr_manager_id AND relation_type=" . COURSE_RELATION_TYPE_RRHH . " "; + WHERE + c_id = '{$row['c_id']}' AND + user_id = $hr_manager_id AND + relation_type=" . COURSE_RELATION_TYPE_RRHH . " "; Database::query($sql); } } @@ -3136,9 +3183,10 @@ class CourseManager // inserting new courses list if (is_array($courses_list)) { foreach ($courses_list as $course_code) { - $course_code = Database::escape_string($course_code); - $sql = "INSERT IGNORE INTO $tbl_course_rel_user(course_code, user_id, status, relation_type) - VALUES('$course_code', $hr_manager_id, '" . DRH . "', '" . COURSE_RELATION_TYPE_RRHH . "')"; + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + $sql = "INSERT IGNORE INTO $tbl_course_rel_user(c_id, user_id, status, relation_type) + VALUES('$courseId', $hr_manager_id, '" . DRH . "', '" . COURSE_RELATION_TYPE_RRHH . "')"; $result = Database::query($sql); if (Database::affected_rows($result)) { $affected_rows++; @@ -3263,7 +3311,7 @@ class CourseManager $whereConditions .= $keywordCondition; $sql = "$select FROM $tbl_course c - INNER JOIN $tbl_course_rel_user cru ON (cru.course_code = c.code) + INNER JOIN $tbl_course_rel_user cru ON (cru.c_id = c.id) INNER JOIN $tbl_course_rel_access_url a ON (a.course_code = c.code) $extraInnerJoin WHERE @@ -3591,7 +3639,7 @@ class CourseManager course_rel_user.user_id FROM $tbl_course course LEFT JOIN $tbl_course_user course_rel_user - ON course.code = course_rel_user.course_code AND course_rel_user.user_id = '$user_id' + ON course.id = course_rel_user.c_id AND course_rel_user.user_id = '$user_id' WHERE $with_special_courses group by course.code"; $rs_special_course = Database::query($sql); @@ -3773,7 +3821,7 @@ class CourseManager $TABLECOURSUSER course_rel_user, $TABLE_ACCESS_URL_REL_COURSE url WHERE - course.code = course_rel_user.course_code AND + course.id = course_rel_user.c_id AND url.course_code = course.code AND course_rel_user.user_id = '" . $user_id . "' AND course_rel_user.user_course_cat='" . $user_category_id . "' @@ -4322,6 +4370,9 @@ class CourseManager $course_code = Database::escape_string($course_code); $session_id = intval($session_id); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + // Course legal $enabled = api_get_plugin_setting('courselegal', 'tool_enable'); @@ -4334,7 +4385,7 @@ class CourseManager if (empty($session_id)) { $table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql = "SELECT legal_agreement FROM $table - WHERE user_id = $user_id AND course_code ='$course_code' "; + WHERE user_id = $user_id AND c_id = '$courseId' "; $result = Database::query($sql); if (Database::num_rows($result) > 0) { $result = Database::fetch_array($result); @@ -4380,10 +4431,13 @@ class CourseManager $course_code = Database::escape_string($course_code); $session_id = intval($session_id); + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + if (empty($session_id)) { $table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql = "UPDATE $table SET legal_agreement = '1' - WHERE user_id = $user_id AND course_code ='$course_code' "; + WHERE user_id = $user_id AND c_id ='$courseId' "; Database::query($sql); } else { $table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); @@ -5007,7 +5061,7 @@ class CourseManager if (!is_array($teachers)) { $teachers = array($teachers); } - + $courseId = intval($courseId); $courseInfo = api_get_course_info_by_id($courseId); $course_code = $courseInfo['code']; @@ -5026,7 +5080,7 @@ class CourseManager } $sql = 'DELETE FROM ' . $course_user_table . ' - WHERE course_code="' . Database::escape_string($course_code) . '" AND status="1"' . $cond; + WHERE c_id ="' . $courseId . '" AND status="1"' . $cond; Database::query($sql); } @@ -5035,14 +5089,14 @@ class CourseManager $userId = intval($userId); // We check if the teacher is already subscribed in this course $sql = 'SELECT 1 FROM ' . $course_user_table . ' - WHERE user_id = "' . $userId . '" AND course_code = "' . $course_code . '" '; + WHERE user_id = "' . $userId . '" AND c_id = "' . $courseId . '" '; $result = Database::query($sql); if (Database::num_rows($result)) { $sql = 'UPDATE ' . $course_user_table . ' SET status = "1" - WHERE course_code = "' . $course_code . '" AND user_id = "' . $userId . '" '; + WHERE c_id = "' . $courseId . '" AND user_id = "' . $userId . '" '; } else { $sql = "INSERT INTO " . $course_user_table . " SET - course_code = '" . Database::escape_string($course_code) . "', + c_id = '" . $courseId . "', user_id = '" . $userId . "', status = '1', role = '', diff --git a/main/inc/lib/document.lib.php b/main/inc/lib/document.lib.php index 93ce07c9ba..08f57a2381 100755 --- a/main/inc/lib/document.lib.php +++ b/main/inc/lib/document.lib.php @@ -1811,7 +1811,7 @@ class DocumentManager $official_code = $user_info['official_code']; //Teacher information - $info_teacher_id = UserManager::get_user_id_of_course_admin_or_session_admin($course_id); + $info_teacher_id = UserManager::get_user_id_of_course_admin_or_session_admin($course_info); $teacher_info = api_get_user_info($info_teacher_id); $teacher_first_name = $teacher_info['firstname']; $teacher_last_name = $teacher_info['lastname']; diff --git a/main/inc/lib/exercise.lib.php b/main/inc/lib/exercise.lib.php index 688ccc56f1..3613843a19 100644 --- a/main/inc/lib/exercise.lib.php +++ b/main/inc/lib/exercise.lib.php @@ -2777,6 +2777,7 @@ class ExerciseLib TABLE_STATISTIC_TRACK_E_ATTEMPT ); $courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER); + $courseTable = Database::get_main_table(TABLE_MAIN_COURSE); $courseUserSession = Database::get_main_table( TABLE_MAIN_SESSION_COURSE_USER ); @@ -2789,12 +2790,12 @@ class ExerciseLib if (empty($session_id)) { $courseCondition = " INNER JOIN $courseUser cu - ON cu.course_code = a.course_code AND cu.user_id = exe_user_id"; + ON cu.c_id = c.id AND cu.user_id = exe_user_id"; $courseConditionWhere = " AND relation_type <> 2 AND cu.status = " . STUDENT; } else { $courseCondition = " INNER JOIN $courseUserSession cu - ON cu.course_code = a.course_code AND cu.id_user = exe_user_id"; + ON cu.c_id = c.id AND cu.id_user = exe_user_id"; $courseConditionWhere = " AND cu.status = 0 "; } @@ -2806,6 +2807,8 @@ class ExerciseLib e.c_id = a.c_id AND e.session_id = a.session_id ) + INNER JOIN $courseTable c + ON (c.code = a.course_code) $courseCondition WHERE exe_exo_id = $exercise_id AND @@ -2847,6 +2850,8 @@ class ExerciseLib TABLE_STATISTIC_TRACK_E_HOTSPOT ); $courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER); + $courseTable = Database::get_main_table(TABLE_MAIN_COURSE); + $courseUserSession = Database::get_main_table( TABLE_MAIN_SESSION_COURSE_USER ); @@ -2860,12 +2865,12 @@ class ExerciseLib if (empty($session_id)) { $courseCondition = " INNER JOIN $courseUser cu - ON cu.course_code = a.hotspot_course_code AND cu.user_id = exe_user_id"; + ON cu.c_id = c.id AND cu.user_id = exe_user_id"; $courseConditionWhere = " AND relation_type <> 2 AND cu.status = " . STUDENT; } else { $courseCondition = " INNER JOIN $courseUserSession cu - ON cu.course_code = a.hotspot_course_code AND cu.id_user = exe_user_id"; + ON cu.c_id = c.id AND cu.id_user = exe_user_id"; $courseConditionWhere = " AND cu.status = 0 "; } @@ -2873,6 +2878,8 @@ class ExerciseLib FROM $track_exercises e INNER JOIN $track_hotspot a ON (a.hotspot_exe_id = e.exe_id) + INNER JOIN $courseTable c + ON (hotspot_course_code = c.code) $courseCondition WHERE exe_exo_id = $exercise_id AND @@ -2920,6 +2927,7 @@ class ExerciseLib $track_attempt = Database::get_main_table( TABLE_STATISTIC_TRACK_E_ATTEMPT ); + $courseTable = Database::get_main_table(TABLE_MAIN_COURSE); $courseUser = Database::get_main_table(TABLE_MAIN_COURSE_USER); $courseUserSession = Database::get_main_table( TABLE_MAIN_SESSION_COURSE_USER @@ -2946,7 +2954,7 @@ class ExerciseLib if (empty($session_id)) { $courseCondition = " INNER JOIN $courseUser cu - ON cu.course_code = a.course_code AND cu.user_id = exe_user_id"; + ON cu.c_id = c.id AND cu.user_id = exe_user_id"; $courseConditionWhere = " AND relation_type <> 2 AND cu.status = " . STUDENT; } else { $courseCondition = " @@ -2963,6 +2971,8 @@ class ExerciseLib e.c_id = a.c_id AND e.session_id = a.session_id ) + INNER JOIN $courseTable c + ON c.code = a.course_code $courseCondition WHERE exe_exo_id = $exercise_id AND diff --git a/main/inc/lib/groupmanager.lib.php b/main/inc/lib/groupmanager.lib.php index 7a464caf43..e4b991525b 100755 --- a/main/inc/lib/groupmanager.lib.php +++ b/main/inc/lib/groupmanager.lib.php @@ -1719,7 +1719,6 @@ class GroupManager return $tutors; } - /** * Is user a tutor in current course * @param int $user_id @@ -1732,7 +1731,7 @@ class GroupManager $user_id = intval($user_id); $sql = "SELECT tutor_id FROM ".$course_user_table." - WHERE user_id = '".$user_id."' AND c_id ='".api_get_course_int_id()."'"."AND tutor_id=1"; + WHERE user_id = '".$user_id."' AND c_id ='".api_get_course_int_id()."'"." AND tutor_id=1"; $db_result = Database::query($sql); $result = (Database::num_rows($db_result) > 0); diff --git a/main/inc/lib/login.lib.php b/main/inc/lib/login.lib.php index 7eba78ba27..b2580a0736 100755 --- a/main/inc/lib/login.lib.php +++ b/main/inc/lib/login.lib.php @@ -519,8 +519,10 @@ class Login //Check if user is subscribed in a course $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql = "SELECT * FROM $course_user_table - WHERE user_id = '" . $user_id . "' AND relation_type <> " . COURSE_RELATION_TYPE_RRHH . " - AND course_code = '$course_id'"; + WHERE + user_id = '" . $user_id . "' AND + relation_type <> " . COURSE_RELATION_TYPE_RRHH . " AND + course_code = '$course_id'"; $result = Database::query($sql); $cuData = null; diff --git a/main/inc/lib/myspace.lib.php b/main/inc/lib/myspace.lib.php index f78a878a72..d227f85b25 100644 --- a/main/inc/lib/myspace.lib.php +++ b/main/inc/lib/myspace.lib.php @@ -1215,6 +1215,7 @@ class MySpace { $course_code = $row[0]; $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; // the table header $return = ''; @@ -1228,7 +1229,7 @@ class MySpace FROM $tbl_user AS u INNER JOIN $tbl_course_rel_user AS cu ON cu.user_id = u.user_id - WHERE cu.course_code = '".$course_code."' AND ISNULL(cu.role);"; + WHERE cu.c_id = '".$courseId."' AND ISNULL(cu.role);"; $result = Database::query($sql); $time_spent = 0; $progress = 0; @@ -2070,15 +2071,22 @@ class MySpace while ($row_course = Database::fetch_row($res)) { $course_code = $row_course[0]; $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; $avg_assignments_in_course = $avg_messages_in_course = $nb_students_in_course = $avg_progress_in_course = $avg_score_in_course = $avg_time_spent_in_course = $avg_score_in_exercise = 0; // students directly subscribed to the course if (empty($session_id)) { - $sql = "SELECT user_id FROM $tbl_course_user as course_rel_user - WHERE course_rel_user.status='5' AND course_rel_user.course_code='$course_code'"; + $sql = "SELECT user_id + FROM $tbl_course_user as course_rel_user + WHERE + course_rel_user.status='5' AND + course_rel_user.c_id='$courseId'"; } else { $sql = "SELECT id_user as user_id FROM $tbl_session_course_user srcu - WHERE srcu. course_code='$course_code' AND id_session = '$session_id' AND srcu.status<>2"; + WHERE + srcu.course_code='$course_code' AND + id_session = '$session_id' AND + srcu.status<>2"; } $rs = Database::query($sql); $users = array(); diff --git a/main/inc/lib/sessionmanager.lib.php b/main/inc/lib/sessionmanager.lib.php index 1df2f5d53f..5ef0572a22 100755 --- a/main/inc/lib/sessionmanager.lib.php +++ b/main/inc/lib/sessionmanager.lib.php @@ -816,7 +816,6 @@ class SessionManager //tables $session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); $user = Database::get_main_table(TABLE_MAIN_USER); - $course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $workTable = Database::get_course_table(TABLE_STUDENT_PUBLICATION); $workTableAssignment = Database::get_course_table(TABLE_STUDENT_PUBLICATION_ASSIGNMENT); $forum = Database::get_course_table(TABLE_FORUM); @@ -4543,7 +4542,7 @@ class SessionManager UNION ( $select FROM $tbl_course c - INNER JOIN $tbl_course_user cu ON (cu.course_code = c.code) + INNER JOIN $tbl_course_user cu ON (cu.c_id = c.id) INNER JOIN $tbl_user u ON (u.user_id = cu.user_id) INNER JOIN $tbl_course_rel_access_url url ON (url.course_code = c.code) $where @@ -4821,7 +4820,7 @@ class SessionManager // Select the teachers. $sql = "SELECT DISTINCT(cu.user_id) FROM $course c INNER JOIN $sessionCourse src ON c.code = src.course_code - INNER JOIN $courseUser cu ON (cu.course_code = c.code) + INNER JOIN $courseUser cu ON (cu.c_id = c.id) WHERE src.id_session IN ('$sessionToString') AND cu.status = 1"; $result = Database::query($sql); $teacherListId = array(); diff --git a/main/inc/lib/statistics.lib.php b/main/inc/lib/statistics.lib.php index 50eb4758a7..2af279be04 100644 --- a/main/inc/lib/statistics.lib.php +++ b/main/inc/lib/statistics.lib.php @@ -112,7 +112,7 @@ class Statistics if (isset ($categoryCode)) { $sql = "SELECT COUNT(DISTINCT(cu.user_id)) AS number FROM $course_user_table cu, $course_table c, $access_url_rel_user_table as url - WHERE c.code = cu.course_code + WHERE c.id = cu.c_id AND c.category_code = '".Database::escape_string($categoryCode)."' AND cu.user_id=url.user_id AND access_url_id='".$current_url_id."' $status_filter $active_filter"; diff --git a/main/inc/lib/template.lib.php b/main/inc/lib/template.lib.php index 64e7388f32..93403c40af 100755 --- a/main/inc/lib/template.lib.php +++ b/main/inc/lib/template.lib.php @@ -943,10 +943,10 @@ class Template if (api_get_setting('show_teacher_data') == 'true') { // course manager - $id_course = api_get_course_id(); - if (isset($id_course) && $id_course != -1) { + $courseId = api_get_course_int_id(); + if (!empty($courseId)) { $teacher_data = ''; - $mail = CourseManager::get_emails_of_tutors_to_course($id_course); + $mail= CourseManager::get_emails_of_tutors_to_course($courseId); if (!empty($mail)) { $teachers_parsed = array(); foreach ($mail as $value) { diff --git a/main/inc/lib/tracking.lib.php b/main/inc/lib/tracking.lib.php index 6a8267bc2d..67d12839b0 100755 --- a/main/inc/lib/tracking.lib.php +++ b/main/inc/lib/tracking.lib.php @@ -1565,7 +1565,7 @@ class Tracking $tbl_course_rel_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $tbl_session_course_rel_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER); - $sql = 'SELECT DISTINCT course_code + $sql = 'SELECT DISTINCT c_id FROM ' . $tbl_course_rel_user . ' WHERE user_id = ' . $user_id.' AND relation_type<>'.COURSE_RELATION_TYPE_RRHH; $rs = Database::query($sql); @@ -3457,7 +3457,11 @@ class Tracking $tableCourse = Database :: get_main_table(TABLE_MAIN_COURSE); $inner = ''; $now = api_get_utc_datetime(); - if ($session_id!=0) { + + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + + if ($session_id != 0) { $inner = ' INNER JOIN '.$tbl_session_course_user.' session_course_user ON c.code = session_course_user.course_code AND session_course_user.id_session = '.intval($session_id).' @@ -3479,7 +3483,7 @@ class Tracking INNER JOIN '.$tableCourse.' c ON (c.id = stats_login.c_id) '.$inner.' - WHERE course_user.course_code = \''.Database::escape_string($course_code).'\' + WHERE course_user.c_id = \''.$courseId.'\' AND stats_login.login_course_date IS NULL GROUP BY course_user.user_id'; } @@ -3916,10 +3920,12 @@ class Tracking $user_id = intval($user_id); if (api_is_multiple_url_enabled()) { - $sql = "SELECT cu.course_code as code, title - FROM $tbl_course_user cu INNER JOIN $tbl_access_rel_course a - ON (a.course_code = cu.course_code) - INNER JOIN $tbl_course c ON (cu.course_code = c.code) + $sql = "SELECT c.code, title + FROM $tbl_course_user cu + INNER JOIN $tbl_course c + ON (cu.c_id = c.id) + INNER JOIN $tbl_access_rel_course a + ON (a.course_code = c.code) WHERE user_id = $user_id AND relation_type<> ".COURSE_RELATION_TYPE_RRHH." AND @@ -3928,7 +3934,7 @@ class Tracking } else { $sql = "SELECT course_code as code, title FROM $tbl_course_user u - INNER JOIN $tbl_course c ON (course_code = c.code) + INNER JOIN $tbl_course c ON (c_id = c.id) WHERE u.user_id= $user_id AND relation_type<>".COURSE_RELATION_TYPE_RRHH." diff --git a/main/inc/lib/usermanager.lib.php b/main/inc/lib/usermanager.lib.php index 292b84c20c..041f47a245 100755 --- a/main/inc/lib/usermanager.lib.php +++ b/main/inc/lib/usermanager.lib.php @@ -311,16 +311,18 @@ class UserManager return false; } $table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER); - if ($user_id != strval(intval($user_id))) + if ($user_id != strval(intval($user_id))) { return false; - if ($user_id === false) + } + if ($user_id === false) { return false; + } $sql = "SELECT * FROM $table_course_user WHERE status = '1' AND user_id = '".$user_id."'"; $res = Database::query($sql); while ($course = Database::fetch_object($res)) { $sql = "SELECT user_id FROM $table_course_user - WHERE status='1' AND course_code ='".Database::escape_string($course->course_code)."'"; + WHERE status='1' AND c_id ='".Database::escape_string($course->c_id)."'"; $res2 = Database::query($sql); if (Database::num_rows($res2) == 1) { return false; @@ -369,7 +371,7 @@ class UserManager WHERE cu.user_id = '".$user_id."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH." AND - c.code = cu.course_code"; + c.id = cu.c_id"; $res = Database::query($sql); while ($course = Database::fetch_object($res)) { $sql = "DELETE FROM $table_group @@ -1189,30 +1191,6 @@ class UserManager return false; } - /** - * Get the teacher list - * @param int the course ID - * @param array Content the list ID of user_id selected - */ - //for survey - // TODO: Ivan, 14-SEP-2009: It seems that this method is not used at all (it can be located in a test unit only. To be deprecated? - public static function get_teacher_list($course_id, $sel_teacher = '') - { - $user_course_table = Database :: get_main_table(TABLE_MAIN_COURSE_USER); - $user_table = Database :: get_main_table(TABLE_MAIN_USER); - $course_id = Database::escape_string($course_id); - $sql = "SELECT * FROM $user_table a, $user_course_table b - WHERE a.user_id=b.user_id AND b.status=1 AND b.course_code='$course_id'"; - $sql_result = Database::query($sql); - echo ""; - } - /** * Get user picture URL or path from user ID (returns an array). * The return format is a complete path, enabling recovery of the directory @@ -2660,7 +2638,7 @@ class UserManager 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 + 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 $join_access_url @@ -4000,9 +3978,9 @@ class UserManager $course_list = array(); if (!empty($code_special_courses)) { $course_list_sql = "SELECT course.code k, course.directory d, course.visual_code c, course.db_name db, course.title i, course.tutor_name t, course.course_language l, course_rel_user.status s, course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat - FROM ".$tbl_course_user." course_rel_user + FROM ".$tbl_course_user." course_rel_user LEFT JOIN ".$tbl_course." course - ON course.code = course_rel_user.course_code + 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 $join_access_url @@ -4338,8 +4316,8 @@ class UserManager $select FROM $tbl_user u INNER JOIN $tbl_course_user cu ON (cu.user_id = u.user_id) - WHERE cu.course_code IN ( - SELECT DISTINCT(course_code) FROM $tbl_course_user + WHERE cu.c_id IN ( + SELECT DISTINCT(c_id) FROM $tbl_course_user WHERE user_id = $userId AND status = ".COURSEMANAGER." ) $userConditions @@ -4505,21 +4483,26 @@ class UserManager /** * get user id of teacher or session administrator - * @param string The course id + * @param array $courseInfo + * * @return int The user id */ - public static function get_user_id_of_course_admin_or_session_admin($course_id) + public static function get_user_id_of_course_admin_or_session_admin($courseInfo) { $session = api_get_session_id(); $table_user = Database::get_main_table(TABLE_MAIN_USER); $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $table_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER); + $courseId = $courseInfo['id']; + $courseCode = $courseInfo['code']; + if ($session == 0 || is_null($session)) { $sql = 'SELECT u.user_id FROM '.$table_user.' u - INNER JOIN '.$table_course_user.' ru ON ru.user_id=u.user_id + INNER JOIN '.$table_course_user.' ru + ON ru.user_id=u.user_id WHERE ru.status = 1 AND - ru.course_code = "'.Database::escape_string($course_id).'" '; + ru.c_id = "'.$courseId.'" '; $rs = Database::query($sql); $num_rows = Database::num_rows($rs); if ($num_rows == 1) { @@ -4535,7 +4518,7 @@ class UserManager INNER JOIN '.$table_session_course_user.' sru ON sru.id_user=u.user_id WHERE - sru.course_code="'.Database::escape_string($course_id).'" AND + sru.course_code="'.Database::escape_string($courseCode).'" AND sru.status=2'; $rs = Database::query($sql); $row = Database::fetch_array($rs); diff --git a/main/inc/lib/userportal.lib.php b/main/inc/lib/userportal.lib.php index 40b08772f0..a8fdeadb98 100755 --- a/main/inc/lib/userportal.lib.php +++ b/main/inc/lib/userportal.lib.php @@ -395,7 +395,8 @@ class IndexManager * @author Patrick Cool , Ghent University - refactoring and code cleaning * @author Julio Montoya , Beeznest template modifs */ - function return_courses_in_categories() { + function return_courses_in_categories() + { $result = ''; $stok = Security::get_token(); @@ -650,25 +651,49 @@ class IndexManager * @param int $user_id: the id of the user * @return array an array containing all the information of the courses of the given user */ - function get_courses_of_user($user_id) { - $table_course = Database::get_main_table(TABLE_MAIN_COURSE); - $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); + public function get_courses_of_user($user_id) + { + $table_course = Database::get_main_table(TABLE_MAIN_COURSE); + $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); // Secondly we select the courses that are in a category (user_course_cat <> 0) and sort these according to the sort of the category $user_id = intval($user_id); - $sql_select_courses = "SELECT course.code k, course.visual_code vc, course.subscribe subscr, course.unsubscribe unsubscr, - course.title i, course.tutor_name t, course.db_name db, course.directory dir, course_rel_user.status status, - course_rel_user.sort sort, course_rel_user.user_course_cat user_course_cat - FROM $table_course course, - $table_course_user course_rel_user - WHERE course.code = course_rel_user.course_code - AND course_rel_user.user_id = '".$user_id."' - AND course_rel_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." - ORDER BY course_rel_user.sort ASC"; + $sql_select_courses = "SELECT + course.code k, + course.visual_code vc, + course.subscribe subscr, + course.unsubscribe unsubscr, + course.title i, + course.tutor_name t, + course.db_name db, + course.directory dir, + course_rel_user.status status, + course_rel_user.sort sort, + course_rel_user.user_course_cat user_course_cat + FROM + $table_course course, + $table_course_user course_rel_user + WHERE + course.id = course_rel_user.c_id AND + course_rel_user.user_id = '".$user_id."' AND + course_rel_user.relation_type <> ".COURSE_RELATION_TYPE_RRHH." + ORDER BY course_rel_user.sort ASC"; $result = Database::query($sql_select_courses); $courses = array(); while ($row = Database::fetch_array($result)) { // We only need the database name of the course. - $courses[$row['k']] = array('db' => $row['db'], 'code' => $row['k'], 'visual_code' => $row['vc'], 'title' => $row['i'], 'directory' => $row['dir'], 'status' => $row['status'], 'tutor' => $row['t'], 'subscribe' => $row['subscr'], 'unsubscribe' => $row['unsubscr'], 'sort' => $row['sort'], 'user_course_category' => $row['user_course_cat']); + $courses[$row['k']] = array( + 'db' => $row['db'], + 'code' => $row['k'], + 'visual_code' => $row['vc'], + 'title' => $row['i'], + 'directory' => $row['dir'], + 'status' => $row['status'], + 'tutor' => $row['t'], + 'subscribe' => $row['subscr'], + 'unsubscribe' => $row['unsubscr'], + 'sort' => $row['sort'], + 'user_course_category' => $row['user_course_cat'] + ); } return $courses; } diff --git a/main/inc/local.inc.php b/main/inc/local.inc.php index 99ba1e1696..f6c6a18caa 100755 --- a/main/inc/local.inc.php +++ b/main/inc/local.inc.php @@ -1025,13 +1025,15 @@ if ((isset($uidReset) && $uidReset) || (isset($cidReset) && $cidReset)) { } } - if (isset($user_id) && $user_id && isset($_cid) && $_cid) { + if (isset($user_id) && $user_id && isset($_real_cid) && $_real_cid) { //Check if user is subscribed in a course $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $sql = "SELECT * FROM $course_user_table - WHERE user_id = '".$user_id."' AND relation_type <> ".COURSE_RELATION_TYPE_RRHH." - AND course_code = '$cidReq'"; + WHERE + user_id = '".$user_id."' AND + relation_type <> ".COURSE_RELATION_TYPE_RRHH." AND + c_id = '$_real_cid'"; $result = Database::query($sql); $cuData = null; diff --git a/main/mySpace/coaches.php b/main/mySpace/coaches.php index daffeabc71..dae8ff8df6 100755 --- a/main/mySpace/coaches.php +++ b/main/mySpace/coaches.php @@ -59,9 +59,19 @@ if (isset($_GET["id_student"])) { WHERE srcru.id_user=user_id AND srcru.status=2 ".$order_clause; } else { $sql_coachs = "SELECT DISTINCT id_user as id_coach, $tbl_user.user_id, lastname, firstname - FROM $tbl_user as user, $tbl_session_rel_course_user as srcu, $tbl_course_user as course_rel_user - WHERE course_rel_user.course_code=srcu.course_code AND course_rel_user.status='1' AND course_rel_user.user_id='".intval($_SESSION["_uid"])."' - AND srcu.id_user=user.user_id AND srcu.status=2 ".$order_clause; + FROM + $tbl_user as user, + $tbl_session_rel_course_user as srcu, + $tbl_course_user as course_rel_user, + $tbl_course as c + WHERE + c.id = course_rel_userc_id AND + c.code = srcu.course_code AND + course_rel_user.status='1' AND + course_rel_user.user_id='".intval($_SESSION["_uid"])."' AND + srcu.id_user=user.user_id AND + srcu.status = 2 + ".$order_clause; } } diff --git a/main/mySpace/current_courses.php b/main/mySpace/current_courses.php index ed89a3f78d..fa177f6049 100755 --- a/main/mySpace/current_courses.php +++ b/main/mySpace/current_courses.php @@ -28,9 +28,9 @@ $session_id = 0; if (!empty($my_courses)) { foreach ($my_courses as $course) { - $course_code = $course['course_code']; - $course_id = $course['real_id']; - $course_info = api_get_course_info($course_code); + $course_code = $course['code']; + $course_id = $course['real_id']; + $course_info = api_get_course_info($course_code); //Only show open courses if ($course_info['visibility'] == 0) { diff --git a/main/mySpace/myStudents.php b/main/mySpace/myStudents.php index 9c25bb066b..1044c5a504 100755 --- a/main/mySpace/myStudents.php +++ b/main/mySpace/myStudents.php @@ -237,7 +237,7 @@ if (!empty($sessions_coached_by_user)) { } } -$sql = "SELECT course_code +$sql = "SELECT c_id FROM $tbl_course_user WHERE relation_type <> ".COURSE_RELATION_TYPE_RRHH." AND @@ -246,10 +246,10 @@ $rs = Database::query($sql); while ($row = Database :: fetch_array($rs)) { if ($drh_can_access_all_courses) { - $courses_in_session[0][] = $row['course_code']; + $courses_in_session[0][] = $row['c_id']; } else { - if (isset($courses[$row['course_code']])) { - $courses_in_session[0][] = $row['course_code']; + if (isset($courses[$row['c_id']])) { + $courses_in_session[0][] = $row['c_id']; } } } diff --git a/main/permissions/blog_permissions.inc.php b/main/permissions/blog_permissions.inc.php index a311f32b6b..8a4ec5e48a 100755 --- a/main/permissions/blog_permissions.inc.php +++ b/main/permissions/blog_permissions.inc.php @@ -22,7 +22,9 @@ $course_id = api_get_course_int_id(); // Remove the blog creater because he has all the rights automatically // and we want to keep it that way. $tbl_course_rel_user = $table=Database::get_main_table(TABLE_MAIN_COURSE_USER); -$sql = "SELECT user_id FROM $tbl_course_rel_user WHERE status = '1' AND course_code = '".$_SESSION['_cid']."'"; +$sql = "SELECT user_id + FROM $tbl_course_rel_user + WHERE status = '1' AND c_id = '".api_get_course_int_id()."'"; $result = Database::query($sql); while ($user = Database::fetch_assoc($result)) { unset($blog_users[$user['user_id']]); @@ -170,4 +172,4 @@ echo "
"; echo ''.get_lang('Legend').'
'; echo ' '.get_lang('UserHasPermissionNot').'
'; echo ' '.get_lang('UserHasPermission').'
'; -echo ' '.get_lang('UserHasPermissionByRoleGroup').'
'; \ No newline at end of file +echo ' '.get_lang('UserHasPermissionByRoleGroup').'
'; diff --git a/main/tracking/courseLogCSV.php b/main/tracking/courseLogCSV.php index 4c90b7347a..a1a4c581b4 100755 --- a/main/tracking/courseLogCSV.php +++ b/main/tracking/courseLogCSV.php @@ -97,12 +97,15 @@ if ($is_allowedToTrack) { // BEGIN users in this course $sql = "SELECT $TABLECOURSUSER.user_i, $table_user.lastname, $table_user.firstname FROM $TABLECOURSUSER, $table_user - WHERE $TABLECOURSUSER.course_code = '" . $_cid . "' AND $TABLECOURSUSER.user_id = $table_user.user_id AND $TABLECOURSUSER.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " + WHERE + $TABLECOURSUSER.c_id = '" . api_get_course_int_id() . "' AND + $TABLECOURSUSER.user_id = $table_user.user_id AND + $TABLECOURSUSER.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " ORDER BY $table_user.lastname"; $results = StatsUtils::getManyResults3Col($sql); //BUGFIX: get visual code instead of real course code. Scormpaths use the visual code... (should be fixed in future versions) - $sql = "SELECT visual_code FROM $TABLECOURSE WHERE code = '" . $_cid . "'"; + $sql = "SELECT visual_code FROM $TABLECOURSE WHERE code = '" . api_get_course_id() . "'"; $_course['visual_code'] = StatsUtils::getOneResult($sql); if (is_array($results)) { @@ -167,7 +170,7 @@ if ($is_allowedToTrack) { $sql = "SELECT count(*) FROM $TABLECOURSUSER - WHERE course_code = '" . $_cid . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . ""; + WHERE c_id = '" . api_get_course_int_id() . "' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . ""; $count = StatsUtils::getOneResult($sql); $title_line = get_lang('CountUsers') . " ; " . $count . "\n"; } diff --git a/main/tracking/logins_details.php b/main/tracking/logins_details.php index 456f863437..3e9f4296fc 100755 --- a/main/tracking/logins_details.php +++ b/main/tracking/logins_details.php @@ -70,15 +70,18 @@ $is_allowedToTrackEverybodyInCourse = $is_courseAdmin; // allowed to track all s
" . COURSE_RELATION_TYPE_RRHH . " - AND cu.course_code = '$_cid' - AND u.user_id = '$uInfo'"; + WHERE + cu.user_id = u.user_id AND + cu.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND + cu.c_id = '$courseId' AND + u.user_id = '$uInfo'"; } else { $sql = "SELECT u.firstname,u.lastname, u.email FROM $TABLECOURSE_GROUPSUSER gu , $TABLEUSER u diff --git a/main/tracking/personnalLog.php b/main/tracking/personnalLog.php index a07c8ba6f9..4da7d44fc0 100755 --- a/main/tracking/personnalLog.php +++ b/main/tracking/personnalLog.php @@ -35,11 +35,6 @@ td {border-bottom: thin dashed gray;} /*]]>*/ "; -/* ------------------------------------------------------------ - Constants and variables ------------------------------------------------------------ -*/ //Remove all characters different than 0 and 1 from $view parameter $view = preg_replace('/[^01]/','',$_REQUEST['view']); diff --git a/main/tracking/userLog.php b/main/tracking/userLog.php index 136538f172..908f729048 100755 --- a/main/tracking/userLog.php +++ b/main/tracking/userLog.php @@ -125,7 +125,7 @@ if (( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse )) { $sql = "SELECT count(user_id) FROM $TABLECOURSUSER - WHERE course_code = '".Database::escape_string($_cid)."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH.""; + WHERE c_id = '".$courseId."' AND relation_type<>".COURSE_RELATION_TYPE_RRHH.""; } else { // if user can only track one group : list users of this group @@ -173,15 +173,18 @@ if (( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse )) { // list of users in this course $sql = "SELECT u.user_id, u.firstname,u.lastname FROM $TABLECOURSUSER cu , $TABLEUSER u - WHERE cu.user_id = u.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." - AND cu.course_code = '".Database::escape_string($_cid)."' + WHERE + cu.user_id = u.user_id AND + cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND + cu.c_id = '".$courseId."' LIMIT $offset,$step"; } else { // list of users of this group $sql = "SELECT u.user_id, u.firstname,u.lastname FROM $TABLECOURSE_GROUPSUSER gu , $TABLEUSER u - WHERE gu.user_id = u.user_id - AND gu.group_id = '".intval($_gid)."' + WHERE + gu.user_id = u.user_id AND + gu.group_id = '".intval($_gid)."' LIMIT $offset,$step"; } $list_users = getManyResults3Col($sql); diff --git a/main/tracking/userlogCSV.php b/main/tracking/userlogCSV.php index 4cc5086970..5ebe4c9d96 100755 --- a/main/tracking/userlogCSV.php +++ b/main/tracking/userlogCSV.php @@ -115,8 +115,8 @@ if (($is_allowedToTrack || $is_allowedToTrackEverybodyInCourse)) { if ($is_allowedToTrackEverybodyInCourse) { // if user can track everybody : list user of course $sql = "SELECT count(user_id) - FROM $TABLECOURSUSER - WHERE course_code = '$_cid' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . ""; + FROM $TABLECOURSUSER + WHERE c_id = '$courseId' AND relation_type<>" . COURSE_RELATION_TYPE_RRHH . ""; } else { // if user can only track one group : list users of this group @@ -155,7 +155,7 @@ if (($is_allowedToTrack || $is_allowedToTrackEverybodyInCourse)) { $sql = "SELECT u.user_id, u.firstname,u.lastname FROM $TABLECOURSUSER cu , $TABLEUSER u WHERE cu.user_id = u.user_id AND cu.relation_type<>" . COURSE_RELATION_TYPE_RRHH . " - AND cu.course_code = '$_cid' + AND cu.c_id = '$courseId' LIMIT $offset,$step"; } else { // list of users of this group diff --git a/main/user/subscribe_user.php b/main/user/subscribe_user.php index 3377350a48..1149d81a11 100755 --- a/main/user/subscribe_user.php +++ b/main/user/subscribe_user.php @@ -252,7 +252,10 @@ function get_number_of_users() } } } else { - $sql = "SELECT COUNT(u.user_id) FROM $user_table u LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".api_get_course_id()."' + $sql = "SELECT COUNT(u.user_id) + FROM $user_table u + LEFT JOIN $course_user_table cu + ON u.user_id = cu.user_id and c_id='".api_get_course_int_id()."' WHERE cu.user_id IS NULL AND u.status<>".DRH." "; if (api_is_multiple_url_enabled()) { @@ -260,8 +263,10 @@ function get_number_of_users() if ($url_access_id !=-1) { $tbl_url_rel_user = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); - $sql = "SELECT COUNT(u.user_id) FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id AND course_code='".api_get_course_id()."' + $sql = "SELECT COUNT(u.user_id) + FROM $user_table u + LEFT JOIN $course_user_table cu + ON u.user_id = cu.user_id AND c_id='".api_get_course_int_id()."' INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) WHERE cu.user_id IS NULL AND u.status<>".DRH." AND access_url_id= $url_access_id "; @@ -291,7 +296,7 @@ function get_number_of_users() } else { $sql = "SELECT COUNT(u.user_id) FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."'"; + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and c_id='".api_get_course_int_id()."'"; // we change the SQL when we have a filter if (isset($_GET['subscribe_user_filter_value']) AND @@ -318,7 +323,7 @@ function get_number_of_users() $sql = "SELECT COUNT(u.user_id) FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$_SESSION['_course']['id']."' + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and c_id='".api_get_course_int_id()."' INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) WHERE cu.user_id IS NULL AND access_url_id= $url_access_id AND u.status<>".DRH." "; @@ -367,6 +372,7 @@ function get_user_data($from, $number_of_items, $column, $direction) $url_access_id = api_get_current_access_url_id(); $course_code = api_get_course_id(); $session_id = api_get_session_id(); + $courseId = api_get_course_int_id(); // Database table definitions $user_table = Database::get_main_table(TABLE_MAIN_USER); @@ -430,7 +436,7 @@ function get_user_data($from, $number_of_items, $column, $direction) // adding a teacher NOT through a session $sql = "SELECT $select_fields FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code = '".$course_code."'"; + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id AND c_id = '".$courseId."'"; // applying the filter of the additional user profile fields if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ @@ -450,7 +456,7 @@ function get_user_data($from, $number_of_items, $column, $direction) if ($url_access_id !=-1) { $sql = "SELECT $select_fields FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$course_code."' + LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and c_id='".$courseId."' INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) "; // applying the filter of the additional user profile fields @@ -522,11 +528,11 @@ function get_user_data($from, $number_of_items, $column, $direction) $sql = "SELECT $select_fields FROM $user_table u - LEFT JOIN $course_user_table cu on u.user_id = cu.user_id and course_code='".$course_code."' + LEFT JOIN $course_user_table cu + ON u.user_id = cu.user_id AND c_id='".$courseId."' INNER JOIN $tbl_url_rel_user as url_rel_user ON (url_rel_user.user_id = u.user_id) "; - // applying the filter of the additional user profile fields if (isset($_GET['subscribe_user_filter_value']) AND !empty($_GET['subscribe_user_filter_value']) AND api_get_setting('ProfilingFilterAddingUsers') == 'true'){ $field_identification = explode('*',$_GET['subscribe_user_filter_value']); diff --git a/main/user/user.php b/main/user/user.php index 1ed8d97e00..65d6ff3604 100755 --- a/main/user/user.php +++ b/main/user/user.php @@ -52,6 +52,7 @@ $sort_by_first_name = api_sort_by_first_name(); $course_info = api_get_course_info(); $user_id = api_get_user_id(); $courseCode = api_get_course_id(); +$courseId = api_get_course_int_id(); //Can't auto unregister from a session if (!empty($session_id)) { @@ -281,7 +282,7 @@ if (api_is_allowed_to_edit(null, true)) { $sql_query .= ' , '.Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER).' au '; } $sql_query .= " WHERE - course_code = '$course_code' AND + c_id = '$courseId' AND course_user.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND course_user.user_id = user.user_id "; diff --git a/main/user/userInfo.php b/main/user/userInfo.php index d2e5c9edaf..5851015eed 100755 --- a/main/user/userInfo.php +++ b/main/user/userInfo.php @@ -76,9 +76,9 @@ $userIdViewed = Security::remove_XSS($_REQUEST['uInfo']); */ $courseCode = api_get_course_id(); +$courseId = api_get_course_int_id(); $tbl_coursUser = Database :: get_main_table(TABLE_MAIN_COURSE_USER); $userIdViewer = api_get_user_id(); // id fo the user currently online -//$userIdViewed = $_GET['userIdViewed']; // Id of the user we want to view $allowedToEditContent = ($userIdViewer == $userIdViewed) || $is_platformAdmin; $allowedToEditDef = api_is_allowed_to_edit(null, true); @@ -126,50 +126,12 @@ if ($allowedToEditDef) { $userIdViewed = strval(intval($_GET['editMainUserInfo'])); $displayMode = "viewMainInfoEdit"; } elseif (!empty($_REQUEST['submitMainUserInfo'])) { - /* - if (isset ($_REQUEST['submitMainUserInfo'])) - { - */ $userIdViewed = strval(intval($_REQUEST['submitMainUserInfo'])); - /* - //is teacher - $promoteCourseAdmin=$_REQUEST['promoteCourseAdmin']; - $userProperties['status'] = 5; - if ($promoteCourseAdmin) - { - $userProperties['status'] = 1; - } - - // deprecated feature - - // is coach - if (isset ($_REQUEST['promoteTutor'])) - { - $promoteTutor=$_REQUEST['promoteTutor']; - $userProperties['tutor'] = 0; - if ($promoteTutor) - { - $userProperties['tutor'] = 1; - } - } - - // role is a string - if (isset ($_REQUEST['role'])) - { - $role=$_REQUEST['role']; - $userProperties['role'] = $role; - } - */ - //get information about one user - task #3009 - - if ($current_session_id) { - - $nocoach = isset($_POST['promoteTutor'])?false:true; + $nocoach = isset($_POST['promoteTutor']) ? false : true; $res = SessionManager::set_coach_to_course_session($userIdViewed, $current_session_id, $courseCode, $nocoach); - } else { if (!empty($_POST['promoteCourseAdmin']) && $_POST['promoteCourseAdmin']){ $userProperties['status'] = 1; @@ -183,7 +145,7 @@ if ($allowedToEditDef) { } $userProperties['role'] = $_POST['role']; - update_user_course_properties($userIdViewed, $courseCode, $userProperties); + update_user_course_properties($userIdViewed, $courseId, $userProperties); } $displayMode = "viewContentList"; @@ -321,7 +283,7 @@ elseif ($displayMode == "viewContentEdit") { /* CATEGORIES MAIN INFO : EDIT */ - $mainUserInfo = get_main_user_info($userIdViewed, $courseCode); + $mainUserInfo = get_main_user_info($userIdViewed, $courseId); if ($mainUserInfo) { ($mainUserInfo['status'] == COURSEMANAGER) ? $courseAdminChecked = "checked" : $courseAdminChecked = ""; @@ -384,11 +346,8 @@ elseif ($displayMode == "viewContentEdit") { } } else { echo "\n"; - - } - echo "\n", "", "
", get_lang('CourseManager'), "
", "\n"; if (api_get_setting('show_email_addresses') == 'true') { @@ -419,7 +378,7 @@ elseif ($displayMode == "viewContentEdit") { $allowedToEditDef = false; } - $mainUserInfo = get_main_user_info($userIdViewed, $courseCode); + $mainUserInfo = get_main_user_info($userIdViewed, $courseId); if ($mainUserInfo) { $image_array=UserManager::get_user_picture_path_by_id($userIdViewed,'web',false,true); @@ -579,7 +538,4 @@ elseif ($displayMode == "viewContentEdit") { } } -// Back button for each display mode (bottom) -//echo "
".get_lang('BackUser')."
\n"; -/* FOOTER */ Display :: display_footer(); diff --git a/main/user/userInfoLib.php b/main/user/userInfoLib.php index 4384eef96b..d3d6a73c23 100755 --- a/main/user/userInfoLib.php +++ b/main/user/userInfoLib.php @@ -220,33 +220,34 @@ function move_cat_rank_by_rank($rank, $direction) // up & down. return true; } - /** * @author Hugues Peeters - peeters@ipm.ucl.ac.be * @param int $user_id * @param string $course_code * @param array $properties - should contain 'role', 'status', 'tutor_id' + * @depracated * @return boolean true if succeed false otherwise */ -function update_user_course_properties($user_id, $course_code, $properties) +function update_user_course_properties($user_id, $courseId, $properties) { - global $tbl_coursUser,$_user; + global $tbl_coursUser; + $_user = api_get_user_info(); $sqlChangeStatus = ""; - $user_id = strval(intval($user_id));//filter integer - $course_code = Database::escape_string($course_code); - if ($user_id != $_user['user_id']) - { + $user_id = strval(intval($user_id)); + if ($user_id != $_user['user_id']) { $sqlChangeStatus = "status = '".Database::escape_string($properties['status'])."',"; } + $courseId = intval($courseId); - //feature deprecated tutor_id = '".Database::escape_string($properties['tutor'])."' - $sql = "UPDATE $tbl_coursUser - SET ".$sqlChangeStatus." - role = '".Database::escape_string($properties['role'])."', - tutor_id = '".Database::escape_string($properties['tutor'])."' - WHERE user_id = '".$user_id."' - AND course_code = '".$course_code."'"; + //feature deprecated tutor_id = '".Database::escape_string($properties['tutor'])."' + $sql = "UPDATE $tbl_coursUser + SET ".$sqlChangeStatus." + role = '".Database::escape_string($properties['role'])."', + tutor_id = '".Database::escape_string($properties['tutor'])."' + WHERE + user_id = '".$user_id."' AND + c_id = '".$courseId."'"; $result = Database::query($sql); @@ -440,30 +441,28 @@ function get_course_user_info($user_id) * 'email', 'role' */ -function get_main_user_info($user_id, $courseCode) +function get_main_user_info($user_id, $courseId) { $user_id = strval(intval($user_id)); - $courseCode = Database::escape_string($courseCode); - if (0 == $user_id) - { + $courseId = intval($courseId); + if (0 == $user_id) { return false; } - $table_course_user = Database::get_main_table(TABLE_MAIN_COURSE_USER); $table_user = Database::get_main_table(TABLE_MAIN_USER); $sql = "SELECT u.*, u.lastname lastName, u.firstname firstName, u.email, u.picture_uri picture, cu.role, cu.status status, cu.tutor_id - FROM $table_user u, $table_course_user cu - WHERE u.user_id = cu.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." - AND u.user_id = '$user_id' - AND cu.course_code = '$courseCode'"; + FROM $table_user u, $table_course_user cu + WHERE + u.user_id = cu.user_id AND cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." AND + u.user_id = '$user_id' AND + cu.c_id = '$courseId'"; $result = Database::query($sql); - if (Database::num_rows($result) > 0) - { + if (Database::num_rows($result) > 0) { $userInfo = Database::fetch_array($result, 'ASSOC'); $userInfo['password']=''; return $userInfo; diff --git a/main/webservices/registration.soap.php b/main/webservices/registration.soap.php index 325be32402..da9fc75762 100755 --- a/main/webservices/registration.soap.php +++ b/main/webservices/registration.soap.php @@ -2733,7 +2733,6 @@ function WSEditCourse($params){ } $course_table = Database::get_main_table(TABLE_MAIN_COURSE); - $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $table_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); @@ -2891,7 +2890,6 @@ function WSCourseDescription($params) { } $course_table = Database::get_main_table(TABLE_MAIN_COURSE); - $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $table_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); @@ -3056,7 +3054,6 @@ function WSEditCourseDescription($params) { } $course_table = Database::get_main_table(TABLE_MAIN_COURSE); - $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER); $t_cfv = Database::get_main_table(TABLE_MAIN_COURSE_FIELD_VALUES); $table_field = Database::get_main_table(TABLE_MAIN_COURSE_FIELD); @@ -4242,7 +4239,7 @@ function WSUnsubscribeUserFromCourse($params) { $results = array(); $orig_user_id_value = array(); $orig_course_id_value = array(); - foreach($userscourses_params as $usercourse_param) { + foreach ($userscourses_params as $usercourse_param) { $original_user_id_values = $usercourse_param['original_user_id_values']; $original_user_id_name = $usercourse_param['original_user_id_name']; @@ -4271,12 +4268,16 @@ function WSUnsubscribeUserFromCourse($params) { // Get course code from original course id - $sql_course = "SELECT course_code FROM $table_field cf,$t_cfv cfv WHERE cfv.field_id=cf.id AND field_variable='$original_course_id_name' AND field_value='$original_course_id_value'"; - $res_course = Database::query($sql_course); - $row_course = Database::fetch_row($res_course); + $sql_course = "SELECT course_code FROM $table_field cf,$t_cfv cfv + WHERE cfv.field_id=cf.id AND field_variable='$original_course_id_name' AND field_value='$original_course_id_value'"; + $res_course = Database::query($sql_course); + $row_course = Database::fetch_row($res_course); $course_code = $row_course[0]; + $courseInfo = api_get_course_info($course_code); + $courseId = $courseInfo['id']; + if (empty($course_code)) { $results[] = 0; continue; @@ -4295,9 +4296,8 @@ function WSUnsubscribeUserFromCourse($params) { continue; } - foreach($usersList as $user_id) { - $course_code = Database::escape_string($course_code); - $sql = "DELETE FROM $table_course_user WHERE user_id = '$user_id' AND course_code = '".$course_code."'"; + foreach ($usersList as $user_id) { + $sql = "DELETE FROM $table_course_user WHERE user_id = '$user_id' AND c_id = '".$courseId."'"; $result = Database::query($sql); $return = Database::affected_rows($result); } @@ -4308,7 +4308,11 @@ function WSUnsubscribeUserFromCourse($params) { $count_results = count($results); $output = array(); for($i = 0; $i < $count_results; $i++) { - $output[] = array('original_user_id_values' => $orig_user_id_value[$i],'original_course_id_value' => $orig_course_id_value[$i], 'result' => $results[$i]); + $output[] = array( + 'original_user_id_values' => $orig_user_id_value[$i], + 'original_course_id_value' => $orig_course_id_value[$i], + 'result' => $results[$i] + ); } return $output; diff --git a/main/work/work.lib.php b/main/work/work.lib.php index c9061ecce6..234c4bdec6 100755 --- a/main/work/work.lib.php +++ b/main/work/work.lib.php @@ -2741,8 +2741,9 @@ function get_list_users_without_publication($task_id, $studentId = null) } if ($session_id == 0) { - $sql_users = "SELECT cu.user_id, u.lastname, u.firstname, u.email FROM $table_course_user AS cu, $table_user AS u - WHERE u.status != 1 and cu.course_code='".api_get_course_id()."' AND u.user_id = cu.user_id"; + $sql_users = "SELECT cu.user_id, u.lastname, u.firstname, u.email + FROM $table_course_user AS cu, $table_user AS u + WHERE u.status != 1 and cu.c_id='".api_get_course_int_id()."' AND u.user_id = cu.user_id"; } else { $sql_users = "SELECT cu.id_user, u.lastname, u.firstname, u.email FROM $session_course_rel_user AS cu, $table_user AS u WHERE u.status != 1 and cu.course_code='".api_get_course_id()."' AND u.user_id = cu.id_user and cu.id_session = '".$session_id."'"; diff --git a/plugin/buycourses/src/buy_course.lib.php b/plugin/buycourses/src/buy_course.lib.php index 3d723ad3ce..4365d34eca 100644 --- a/plugin/buycourses/src/buy_course.lib.php +++ b/plugin/buycourses/src/buy_course.lib.php @@ -244,24 +244,26 @@ function userCourseList() $currentUserId = api_get_user_id(); $sql = "SELECT a.course_id, a.visible, a.price, b.* - FROM $tableBuyCourse a, $tableCourse b - WHERE a.course_id = b.id AND a.session_id = 0 AND a.visible = 1;"; + FROM $tableBuyCourse a, $tableCourse b + WHERE a.course_id = b.id AND a.session_id = 0 AND a.visible = 1;"; $res = Database::query($sql); $aux = array(); while ($row = Database::fetch_assoc($res)) { //check teacher $sql = "SELECT lastname, firstname - FROM course_rel_user a, user b - WHERE a.course_code='" . $row['code'] . "' - AND a.role<>'' AND a.role<>'NULL' - AND a.user_id=b.user_id;"; + FROM $tableCourseRelUser a, user b + WHERE + a.c_id='" . $row['id'] . "' AND + a.role<>'' AND + a.role<>'NULL' AND + a.user_id=b.user_id;"; $tmp = Database::query($sql); $rowTmp = Database::fetch_assoc($tmp); $row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname']; //check if the user is enrolled if ($currentUserId > 0) { $sql = "SELECT 1 FROM $tableCourseRelUser - WHERE course_code='" . $row['code'] . "' + WHERE c_id='" . $row['id'] . "' AND user_id='" . $currentUserId . "';"; $result = Database::query($sql); if (Database::affected_rows($result) > 0) { @@ -305,6 +307,7 @@ function userCourseList() * @param string Session id or course code * @param int User id * @param string What has to be checked + * @todo fix this function because TABLE_MAIN_COURSE_USER needs a c_id not a course_code * @return boolean True if it is already bought, and false otherwise */ function checkUserBuy($parameter, $user, $type = 'COURSE') @@ -563,26 +566,30 @@ function courseInfo($code) $currentUserId = api_get_user_id(); $code = Database::escape_string($code); $sql = "SELECT a.course_id, a.visible, a.price, b.* - FROM $tableBuyCourse a, course b - WHERE a.course_id=b.id - AND a.visible = 1 - AND b.id = '" . $code . "';"; + FROM $tableBuyCourse a, course b + WHERE + a.course_id=b.id AND + a.visible = 1 AND + b.id = '" . $code . "'"; $res = Database::query($sql); $row = Database::fetch_assoc($res); // Check teacher $sql = "SELECT lastname, firstname FROM $tableCourseRelUser a, $tableUser b - WHERE a.course_code = '" . $row['code'] . "' - AND a.role <> '' AND a.role <> 'NULL' - AND a.user_id = b.user_id;"; + WHERE + a.c_id = '" . $row['id'] . "' AND + a.role <> '' AND + a.role <> 'NULL' AND + a.user_id = b.user_id;"; $tmp = Database::query($sql); $rowTmp = Database::fetch_assoc($tmp); $row['teacher'] = $rowTmp['firstname'] . ' ' . $rowTmp['lastname']; //Check if student is enrolled if ($currentUserId > 0) { $sql = "SELECT 1 FROM $tableCourseRelUser - WHERE course_code='" . $row['code'] . "' - AND user_id='" . $currentUserId . "';"; + WHERE + c_id ='" . $row['id'] . "' AND + user_id='" . $currentUserId . "';"; $result = Database::query($sql); if (Database::affected_rows($result) > 0) { $row['enrolled'] = "YES"; diff --git a/plugin/dashboard/block_course/block_course.class.php b/plugin/dashboard/block_course/block_course.class.php index cfa6f6ae8b..4fb8c8f550 100755 --- a/plugin/dashboard/block_course/block_course.class.php +++ b/plugin/dashboard/block_course/block_course.class.php @@ -163,7 +163,7 @@ class BlockCourse extends Block // students directly subscribed to the course $sql = "SELECT user_id FROM $tbl_course_user as course_rel_user - WHERE course_rel_user.status=" . STUDENT . " AND course_rel_user.course_code='$course_code'"; + WHERE course_rel_user.status=" . STUDENT . " AND course_rel_user.c_id='$courseId'"; $rs = Database::query($sql); $users = array(); while ($row = Database::fetch_array($rs)) { diff --git a/plugin/dashboard/block_daily/block_daily.class.php b/plugin/dashboard/block_daily/block_daily.class.php index 54f9b41cab..4676cde964 100755 --- a/plugin/dashboard/block_daily/block_daily.class.php +++ b/plugin/dashboard/block_daily/block_daily.class.php @@ -198,10 +198,8 @@ class BlockDaily extends Block } } - // quantidade de alunos - $sql = "SELECT user_id FROM $tbl_course_user as course_rel_user - WHERE course_rel_user.status=" . STUDENT . " AND course_rel_user.course_code='$course_code'"; + WHERE course_rel_user.status=" . STUDENT . " AND course_rel_user.c_id='".$course_info['real_id']."'"; $rs = Database::query($sql); $users = array(); while ($row = Database::fetch_array($rs)) { @@ -212,11 +210,8 @@ class BlockDaily extends Block } if (!empty($tematic_advance)) { - $tematic_advance_progress = '' . $tematic_advance . '%'; + $tematic_advance_progress = '' . + $tematic_advance . '%'; } else { $tematic_advance_progress = '0%'; } diff --git a/plugin/search_course/lib/search_course_widget.class.php b/plugin/search_course/lib/search_course_widget.class.php index 8c16580a3b..dec7af4b55 100755 --- a/plugin/search_course/lib/search_course_widget.class.php +++ b/plugin/search_course/lib/search_course_widget.class.php @@ -3,9 +3,9 @@ require_once dirname(__FILE__) . '/register_course_widget.class.php'; /** - * Search course widget. + * Search course widget. * Display a search form and a list of courses that matches the search. - * + * * @copyright (c) 2011 University of Geneva * @license GNU General Public License - http://www.gnu.org/copyleft/gpl.html * @author Laurent Opprecht @@ -18,10 +18,10 @@ class SearchCourseWidget /** * Returns $_POST data for $key is it exists or $default otherwise. - * + * * @param string $key * @param object $default - * @return string + * @return string */ public static function post($key, $default = '') { @@ -30,10 +30,10 @@ class SearchCourseWidget /** * Returns $_GET data for $key is it exists or $default otherwise. - * + * * @param string $key * @param object $default - * @return string + * @return string */ public static function get($key, $default = '') { @@ -91,7 +91,7 @@ class SearchCourseWidget } /** - * + * */ function accept() { @@ -100,10 +100,10 @@ class SearchCourseWidget /** * Display the search course widget: - * + * * Title * Search form - * + * * Search results */ function run() @@ -216,7 +216,7 @@ EOT; /** * * @param array $courses - * @return bool + * @return bool */ function display_list($courses) { @@ -262,13 +262,13 @@ EOT; } /** - * Displays the subscribe icon if subscribing is allowed and + * Displays the subscribe icon if subscribing is allowed and * if the user is not yet subscribed to this course - * + * * @global type $stok * @param array $current_course * @param array $user_courses - * @return bool + * @return bool */ function display_subscribe_icon($current_course, $user_courses) { @@ -289,7 +289,7 @@ EOT; return false; } - //Subscribe form + //Subscribe form $self = $_SERVER['PHP_SELF']; echo << @@ -323,9 +323,9 @@ EOT; /** * Search courses that match the search term. * Search is done on the code, title and tutor fields. - * - * @param string $search_term - * @return array + * + * @param string $search_term + * @return array */ function retrieve_courses($search_term) { @@ -348,9 +348,9 @@ EOT; } $sql = <<'TEST', + 'c_id'=>'1', 'user_id'=>'1'); - $res=api_get_status_of_user_in_course($id['course_code'],$id['user_id']); + $res=api_get_status_of_user_in_course($id['user_id'], $id['c_id']); $this->assertTrue(is_null($res)); //var_dump($res); } diff --git a/tests/main/inc/lib/usermanager.lib.test.php b/tests/main/inc/lib/usermanager.lib.test.php index 9d7a603f6d..018c8dc797 100755 --- a/tests/main/inc/lib/usermanager.lib.test.php +++ b/tests/main/inc/lib/usermanager.lib.test.php @@ -205,14 +205,6 @@ class TestUserManager extends UnitTestCase { $this->assertFalse(!(bool)$res); } - function testGetTeacherList() { - ob_start(); - UserManager::get_teacher_list(1212,null); - $res =ob_get_contents(); - ob_end_clean(); - $this->assertFalse(!(bool)$res); - } - function testGetUserIdFromUsername() { $res=UserManager::get_user_id_from_username('arthur3'); $this->assertTrue(!(bool)$res); diff --git a/tests/main/user/userInfoLib.test.php b/tests/main/user/userInfoLib.test.php index 6e3d6a8b20..37a66fcf18 100755 --- a/tests/main/user/userInfoLib.test.php +++ b/tests/main/user/userInfoLib.test.php @@ -105,7 +105,7 @@ class TestUserInfoLib extends UnitTestCase { function testget_main_user_info() { $user_id=1; - $courseCode='TEST'; + $courseCode='1'; $res=get_main_user_info($user_id,$courseCode); if(!is_bool($res))$this->assertTrue(is_array($res)); //var_dump($res); diff --git a/tests/scripts/course2session.php b/tests/scripts/course2session.php index 55c1370474..ec0e631c5a 100644 --- a/tests/scripts/course2session.php +++ b/tests/scripts/course2session.php @@ -172,7 +172,7 @@ foreach ($res as $course) { echo "Session $sessionTitle created with ID $id" . $eol; } SessionManager::add_courses_to_session($id, array($course['code'])); - $resultUsers = Database::query("SELECT user_id FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER). " WHERE course_code = '" . $course['code'] . "'"); + $resultUsers = Database::query("SELECT user_id FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER). " WHERE c_id = '" . $course['id'] . "'"); $users = array(); while ($row = Database::fetch_assoc($resultUsers)) { $users[] = $row['user_id']; @@ -202,7 +202,7 @@ foreach ($res as $course) { continue; } $table = Database::get_main_table(TABLE_MAIN_COURSE_USER); - $sql = "DELETE FROM $table WHERE user_id = $user AND course_code = '" . $course['code'] . "'"; + $sql = "DELETE FROM $table WHERE user_id = $user AND c_id = '" . $course['id'] . "'"; if ($debug) { echo $sql . $eol; } diff --git a/tests/scripts/move_users.php b/tests/scripts/move_users.php index 142a29487f..cbafbdd296 100644 --- a/tests/scripts/move_users.php +++ b/tests/scripts/move_users.php @@ -53,7 +53,7 @@ function moveUserFromCourseToCourse($originCourse, $destinationCourse, $debug = if (PHP_SAPI != 'cli') { $eol = "
".$eol; } - + if (empty($originCourse)) { return $output; } else { @@ -81,8 +81,8 @@ function moveUserFromCourseToCourse($originCourse, $destinationCourse, $debug = // Now get the list of users subscribed to the course of origin $sql = "SELECT user_id FROM $tableCRU - WHERE status = ".STUDENT." - AND course_code = '$originCourse'"; + WHERE status = ".STUDENT." + AND c_id = '$courseId'"; $output .= "$sql".$eol; $res = Database::query($sql); $numUsers = Database::num_rows($res); @@ -92,7 +92,7 @@ function moveUserFromCourseToCourse($originCourse, $destinationCourse, $debug = // Now get the list of users subscribed to the course of origin $sqlDestination = "SELECT user_id FROM $tableCRU - WHERE status = ".STUDENT." + WHERE status = ".STUDENT." AND course_code = '$destinationCourse'"; $output .= "$sqlDestination".$eol; $resDestination = Database::query($sqlDestination);