Replace course_rel_user.course_code with course_rel_user.c_id

1.10.x
Julio Montoya 10 years ago
parent a2f08ce50e
commit 065e4863a4
  1. 20
      main/admin/course_edit.php
  2. 7
      main/admin/course_information.php
  3. 12
      main/admin/course_user_import.php
  4. 10
      main/admin/course_user_import_by_email.php
  5. 2
      main/admin/dashboard_add_courses_to_user.php
  6. 2
      main/admin/subscribe_user2course.php
  7. 9
      main/admin/user_export.php
  8. 19
      main/admin/user_information.php
  9. 5
      main/auth/courses_controller.php
  10. 3
      main/chat/chat_whoisonline.php
  11. 3
      main/course_info/infocours.php
  12. 7
      main/coursecopy/copy_course.php
  13. 3
      main/exercice/question_pool.php
  14. 2
      main/forum/viewthread_flat.inc.php
  15. 2
      main/forum/viewthread_nested.inc.php
  16. 2
      main/forum/viewthread_threaded.inc.php
  17. 18
      main/gradebook/lib/GradebookUtils.php
  18. 75
      main/gradebook/lib/be/category.class.php
  19. 15
      main/gradebook/lib/be/evaluation.class.php
  20. 7
      main/gradebook/lib/be/exerciselink.class.php
  21. 6
      main/gradebook/lib/be/result.class.php
  22. 8
      main/gradebook/lib/fe/displaygradebook.php
  23. 2
      main/gradebook/lib/fe/gradebooktable.class.php
  24. 2
      main/gradebook/lib/gradebook_data_generator.class.php
  25. 2
      main/inc/ajax/social.ajax.php
  26. 70
      main/inc/lib/add_course.lib.inc.php
  27. 36
      main/inc/lib/api.lib.php
  28. 48
      main/inc/lib/auth.lib.php
  29. 1
      main/inc/lib/blog.lib.php
  30. 4
      main/inc/lib/classmanager.lib.php
  31. 220
      main/inc/lib/course.lib.php
  32. 2
      main/inc/lib/document.lib.php
  33. 20
      main/inc/lib/exercise.lib.php
  34. 3
      main/inc/lib/groupmanager.lib.php
  35. 6
      main/inc/lib/login.lib.php
  36. 16
      main/inc/lib/myspace.lib.php
  37. 5
      main/inc/lib/sessionmanager.lib.php
  38. 2
      main/inc/lib/statistics.lib.php
  39. 6
      main/inc/lib/template.lib.php
  40. 22
      main/inc/lib/tracking.lib.php
  41. 59
      main/inc/lib/usermanager.lib.php
  42. 53
      main/inc/lib/userportal.lib.php
  43. 8
      main/inc/local.inc.php
  44. 16
      main/mySpace/coaches.php
  45. 6
      main/mySpace/current_courses.php
  46. 8
      main/mySpace/myStudents.php
  47. 6
      main/permissions/blog_permissions.inc.php
  48. 9
      main/tracking/courseLogCSV.php
  49. 11
      main/tracking/logins_details.php
  50. 5
      main/tracking/personnalLog.php
  51. 13
      main/tracking/userLog.php
  52. 6
      main/tracking/userlogCSV.php
  53. 24
      main/user/subscribe_user.php
  54. 3
      main/user/user.php
  55. 54
      main/user/userInfo.php
  56. 49
      main/user/userInfoLib.php
  57. 26
      main/webservices/registration.soap.php
  58. 5
      main/work/work.lib.php
  59. 39
      plugin/buycourses/src/buy_course.lib.php
  60. 2
      plugin/dashboard/block_course/block_course.class.php
  61. 11
      plugin/dashboard/block_daily/block_daily.class.php
  62. 52
      plugin/search_course/lib/search_course_widget.class.php
  63. 6
      plugin/ticket/src/tutor_report.lib.php
  64. 4
      tests/main/inc/lib/main_api.lib.test.php
  65. 8
      tests/main/inc/lib/usermanager.lib.test.php
  66. 2
      tests/main/user/userInfoLib.test.php
  67. 4
      tests/scripts/course2session.php
  68. 8
      tests/scripts/move_users.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);
}

@ -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) {

@ -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);

@ -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);

@ -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');
}

@ -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

@ -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;

@ -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 = '<a href="course_information.php?code='.$course->code.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
$tools = '<a href="course_information.php?code='.$courseCode.'">'.Display::return_icon('synthese_view.gif', get_lang('Overview')).'</a>'.
'<a href="'.api_get_path(WEB_COURSE_PATH).$course->directory.'">'.Display::return_icon('course_home.gif', get_lang('CourseHomepage')).'</a>' .
'<a href="course_edit.php?course_code='.$course->code.'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>';
'<a href="course_edit.php?course_code='.$courseCode.'">'.Display::return_icon('edit.gif', get_lang('Edit')).'</a>';
if ($course->status == STUDENT) {
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$course->code.'&user_id='.$user['user_id'].'">'.
$tools .= '<a href="user_information.php?action=unsubscribe&course_code='.$courseCode.'&user_id='.$user['user_id'].'">'.
Display::return_icon('delete.png', get_lang('Delete')).'</a>';
}
@ -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,

@ -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');

@ -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);

@ -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);

@ -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());

@ -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 {

@ -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') {

@ -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) {

@ -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) {

@ -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 . '

@ -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);
}

@ -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;
}

@ -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();

@ -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();

@ -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 .= '<a href="gradebook_add_cat.php?'.api_get_cidreq().'&selectcat=0"><img src="../img/folder_new.gif" alt="' . get_lang('AddGradebook') . '" /></a></td>';
@ -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 .= '<a href="gradebook_add_cat.php?' . api_get_cidreq() . '&selectcat=' . $catobj->get_id() . '">' .

@ -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;

@ -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;

@ -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;

@ -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',

@ -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;
}

@ -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) {

@ -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 '<legend>'.get_lang('SubscribeMembers').'</legend>';

@ -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)."'";

@ -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 <carlos.vargas@dokeos.com>, 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 = '',

@ -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'];

@ -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

@ -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);

@ -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;

@ -1215,6 +1215,7 @@ class MySpace
{
$course_code = $row[0];
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['id'];
// the table header
$return = '<table class="data_table" style="width: 100%;border:0;padding:0;border-collapse:collapse;table-layout: fixed">';
@ -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();

@ -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();

@ -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";

@ -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) {

@ -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."

@ -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 "<select name=\"author\">";
while ($result = Database::fetch_array($sql_result)) {
if ($sel_teacher == $result['user_id'])
$selected = "selected";
echo "\n<option value=\"".$result['user_id']."\" $selected>".$result['firstname']."</option>";
}
echo "</select>";
}
/**
* 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);

@ -395,7 +395,8 @@ class IndexManager
* @author Patrick Cool <patrick.cool@UGent.be>, Ghent University - refactoring and code cleaning
* @author Julio Montoya <gugli100@gmail.com>, 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;
}

@ -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;

@ -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;
}
}

@ -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) {

@ -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'];
}
}
}

@ -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 "</form><br />";
echo '<strong>'.get_lang('Legend').'</strong><br />';
echo '<img src="../img/wrong.gif" /> '.get_lang('UserHasPermissionNot').'<br />';
echo '<img src="../img/checkbox_on2.gif" /> '.get_lang('UserHasPermission').'<br />';
echo '<img src="../img/checkbox_on3.gif" /> '.get_lang('UserHasPermissionByRoleGroup').'<br />';
echo '<img src="../img/checkbox_on3.gif" /> '.get_lang('UserHasPermissionByRoleGroup').'<br />';

@ -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";
}

@ -70,15 +70,18 @@ $is_allowedToTrackEverybodyInCourse = $is_courseAdmin; // allowed to track all s
</h3>
<table width="100%" cellpadding="2" cellspacing="3" border="0">
<?php
// check if uid is tutor of this group
// check if uid is tutor of this group
$courseId = api_get_course_int_id();
if (( $is_allowedToTrack || $is_allowedToTrackEverybodyInCourse)) {
if ($is_allowedToTrackEverybodyInCourse) {
$sql = "SELECT u.firstname,u.lastname, u.email
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 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

@ -35,11 +35,6 @@ td {border-bottom: thin dashed gray;}
/*]]>*/
</style>";
/*
-----------------------------------------------------------
Constants and variables
-----------------------------------------------------------
*/
//Remove all characters different than 0 and 1 from $view parameter
$view = preg_replace('/[^01]/','',$_REQUEST['view']);

@ -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);

@ -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

@ -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']);

@ -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 ";

@ -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 "<td>", get_lang('CourseManager'), "</td>\n";
}
echo "<td><button class=\"save\" type=\"submit\" name=\"submit\">".get_lang('SaveChanges')."</button></td>\n", "</tr>", "</table>", "</form>\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 "<div class=\"actions\"><a href=\"user.php?".api_get_cidreq()."&amp;origin=".$origin."\">".get_lang('BackUser')."</a></div>\n";
/* FOOTER */
Display :: display_footer();

@ -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;

@ -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;

@ -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."'";

@ -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";

@ -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)) {

@ -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 = '<a title="' . get_lang(
'GoToThematicAdvance'
) . '" href="' . api_get_path(
WEB_CODE_PATH
) . 'attendance/index.php?cidReq=' . $course_code . '&action=attendance_sheet_print&attendance_id=">' . $tematic_advance . '%</a>';
$tematic_advance_progress = '<a title="' . get_lang('GoToThematicAdvance') . '" href="' . api_get_path(WEB_CODE_PATH) . 'attendance/index.php?cidReq=' . $course_code . '&action=attendance_sheet_print&attendance_id=">' .
$tematic_advance . '%</a>';
} else {
$tematic_advance_progress = '0%';
}

@ -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 <<<EOT
<form action="$self?action=subscribe" method="post">
@ -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 = <<<EOT
SELECT * FROM $course_table
WHERE ($course_fiter) AND (code LIKE '%$search_term%' OR visual_code LIKE '%$search_term%' OR title LIKE '%$search_term%' OR tutor_name LIKE '%$search_term%')
ORDER BY title, visual_code ASC
SELECT * FROM $course_table
WHERE ($course_fiter) AND (code LIKE '%$search_term%' OR visual_code LIKE '%$search_term%' OR title LIKE '%$search_term%' OR tutor_name LIKE '%$search_term%')
ORDER BY title, visual_code ASC
EOT;
$result = array();
@ -374,9 +374,9 @@ EOT;
/**
* Retrieves courses that the user is subscribed to
*
*
* @param int $user_id
* @return array
* @return array
*/
function retrieve_user_courses($user_id = null)
{
@ -393,7 +393,7 @@ EOT;
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 $course_table course, $user_course_table course_rel_user
WHERE course.code = course_rel_user.course_code
WHERE course.id = course_rel_user.c_id
AND course_rel_user.user_id = $user_id
ORDER BY course_rel_user.sort ASC";
$result = array();
@ -418,15 +418,15 @@ EOT;
}
/*
* Utility functions - Utility functions - Utility functions
* Utility functions - Utility functions - Utility functions
*/
/**
* Removes from $courses all courses the user is subscribed to.
*
*
* @global array $_user
* @param array $courses
* @return array
* @return array
*/
function filter_out_user_courses($courses)
{

@ -16,6 +16,7 @@ function initializeReport($course_code)
$table_reporte_semanas = Database::get_main_table('rp_reporte_semanas');
$table_students_report = Database::get_main_table('rp_students_report');
$table_semanas_curso = Database::get_main_table('rp_semanas_curso');
$courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
$table_course_rel_user = Database::get_main_table(TABLE_MAIN_COURSE_USER);
$table_post = Database::get_course_table(TABLE_FORUM_POST, $course_info['dbName']);
$table_work = Database::get_course_table(TABLE_STUDENT_PUBLICATION, $course_info['dbName']);
@ -43,10 +44,13 @@ function initializeReport($course_code)
}
}
$sql = "REPLACE INTO $table_students_report (user_id, week_report_id, work_ok , thread_ok , quiz_ok , pc_ok)
SELECT cu.user_id, rs.id, 0, 0, 0, 0
FROM $table_course_rel_user cu
LEFT JOIN $table_reporte_semanas rs ON cu.course_code = rs.course_code
INNER JOIN $courseTable c
ON (c.id = cu.c_id)
LEFT JOIN $table_reporte_semanas rs ON c.code = rs.course_code
WHERE cu.status = 5 AND rs.course_code = '$course_code'
ORDER BY cu.user_id, rs.id";
if (!Database::query($sql)) {

@ -747,9 +747,9 @@ class TestMainApi extends UnitTestCase {
function testApiGetStatusOfUserInCourse(){
$id = array(
'course_code'=>'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);
}

@ -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);

@ -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);

@ -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;
}

@ -53,7 +53,7 @@ function moveUserFromCourseToCourse($originCourse, $destinationCourse, $debug =
if (PHP_SAPI != 'cli') {
$eol = "<br />".$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);

Loading…
Cancel
Save