Replace course_code with c_id

1.10.x
Julio Montoya 11 years ago
parent dc56c87bfd
commit 83e3494c02
  1. 31
      main/admin/add_courses_to_session.php
  2. 18
      main/admin/add_users_to_session.php
  3. 8
      main/admin/course_edit.php
  4. 5
      main/admin/course_information.php
  5. 20
      main/admin/resume_session.php
  6. 17
      main/admin/session_course_edit.php
  7. 2
      main/admin/session_import.php
  8. 6
      main/admin/teacher_time_report.php
  9. 2
      main/admin/user_information.php
  10. 2
      main/attendance/attendance_controller.php
  11. 2
      main/attendance/attendance_sheet.php
  12. 2
      main/course_info/legal.php
  13. 2
      main/cron/create_course_sessions.php
  14. 9
      main/cron/import_csv.php
  15. 4
      main/document/document_quota.php
  16. 2
      main/exercice/exercise_show.php
  17. 3
      main/gradebook/lib/fe/displaygradebook.php
  18. 2
      main/inc/ajax/course.ajax.php
  19. 7
      main/inc/lib/AnnouncementEmail.php
  20. 2
      main/inc/lib/AnnouncementManager.php
  21. 271
      main/inc/lib/add_course.lib.inc.php
  22. 92
      main/inc/lib/api.lib.php
  23. 3
      main/inc/lib/attendance.lib.php
  24. 144
      main/inc/lib/course.lib.php
  25. 10
      main/inc/lib/document.lib.php
  26. 2
      main/inc/lib/pdf.lib.php
  27. 366
      main/inc/lib/sessionmanager.lib.php
  28. 8
      main/inc/lib/template.lib.php
  29. 182
      main/inc/lib/tracking.lib.php
  30. 29
      main/inc/lib/usermanager.lib.php
  31. 2
      main/inc/lib/userportal.lib.php
  32. 2
      main/mySpace/myStudents.php
  33. 6
      main/session/index.php
  34. 4
      main/tracking/courseLog.php
  35. 2
      main/tracking/exams.php
  36. 3
      main/webservices/webservice_session.php
  37. 2
      main/work/work.lib.php
  38. 2
      tests/scripts/course2session.php

@ -115,7 +115,7 @@ $ajax_search = $add_type == 'unique' ? true : false;
$nosessionCourses = $sessionCourses = array();
if ($ajax_search) {
$sql="SELECT code, title, visual_code, id_session
$sql="SELECT course.id, code, title, visual_code, id_session
FROM $tbl_course course
INNER JOIN $tbl_session_rel_course session_rel_course
ON course.id = session_rel_course.c_id
@ -126,7 +126,7 @@ if ($ajax_search) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql="SELECT code, title, visual_code, id_session
$sql="SELECT course.id, code, title, visual_code, id_session
FROM $tbl_course course
INNER JOIN $tbl_session_rel_course session_rel_course
ON course.id = session_rel_course.c_id
@ -141,25 +141,27 @@ if ($ajax_search) {
$Courses = Database::store_result($result);
foreach ($Courses as $course) {
$sessionCourses[$course['code']] = $course ;
$sessionCourses[$course['id']] = $course ;
}
} else {
$sql = "SELECT code, title, visual_code, id_session
$sql = "SELECT course.id, code, title, visual_code, id_session
FROM $tbl_course course
LEFT JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = ".intval($sessionId)."
ON
course.id = session_rel_course.c_id AND
session_rel_course.id_session = ".intval($sessionId)."
ORDER BY ".(sizeof($courses)?"(code IN(".implode(',',$courses).")) DESC,":"")." title";
if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql="SELECT code, title, visual_code, id_session
$sql="SELECT course.id, code, title, visual_code, id_session
FROM $tbl_course course
LEFT JOIN $tbl_session_rel_course session_rel_course
ON course.code = session_rel_course.course_code
AND session_rel_course.id_session = ".intval($sessionId)."
ON
course.id = session_rel_course.c_id AND
session_rel_course.id_session = ".intval($sessionId)."
INNER JOIN $tbl_course_rel_access_url url_course ON (url_course.c_id = course.id)
WHERE access_url_id = $access_url_id
ORDER BY ".(sizeof($courses)?"(code IN(".implode(',',$courses).")) DESC,":"")." title";
@ -169,9 +171,9 @@ if ($ajax_search) {
$Courses = Database::store_result($result);
foreach ($Courses as $course) {
if ($course['id_session'] == $sessionId) {
$sessionCourses[$course['code']] = $course ;
$sessionCourses[$course['id']] = $course ;
} else {
$nosessionCourses[$course['code']] = $course ;
$nosessionCourses[$course['id']] = $course ;
}
}
}
@ -199,9 +201,10 @@ unset($Courses);
?>
<div id="ajax_list_courses_multiple">
<select id="origin" name="NoSessionCoursesList[]" multiple="multiple" size="20" class="form-control"> <?php
foreach($nosessionCourses as $enreg) {
foreach ($nosessionCourses as $enreg) {
?>
<option value="<?php echo $enreg['code']; ?>" <?php echo 'title="'.htmlspecialchars($enreg['title'].' ('.$enreg['visual_code'].')',ENT_QUOTES).'"'; if(in_array($enreg['code'],$CourseList)) echo 'selected="selected"'; ?>>
<option value="<?php echo $enreg['id']; ?>" <?php echo 'title="'.htmlspecialchars($enreg['title'].' ('.$enreg['visual_code'].')',ENT_QUOTES).'"'; if(in_array($enreg['code'],$CourseList)) echo 'selected="selected"'; ?>>
<?php echo $enreg['title'].' ('.$enreg['visual_code'].')'; ?>
</option>
<?php
@ -266,7 +269,7 @@ unset($Courses);
<?php
foreach($sessionCourses as $enreg) {
?>
<option value="<?php echo $enreg['code']; ?>" title="<?php echo htmlspecialchars($enreg['title'].' ('.$enreg['visual_code'].')',ENT_QUOTES); ?>">
<option value="<?php echo $enreg['id']; ?>" title="<?php echo htmlspecialchars($enreg['title'].' ('.$enreg['visual_code'].')',ENT_QUOTES); ?>">
<?php echo $enreg['title'].' ('.$enreg['visual_code'].')'; ?>
</option>
<?php

@ -82,6 +82,7 @@ function search_users($needle, $type)
$needle = Database::escape_string($needle);
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username';
$showOfficialCode = false;
global $_configuration;
if (isset($_configuration['order_user_list_by_official_code']) &&
$_configuration['order_user_list_by_official_code']
@ -114,6 +115,7 @@ function search_users($needle, $type)
$cond_user_id = ' AND user.user_id NOT IN('.implode(",",$user_ids).')';
}
}
switch ($type) {
case 'single':
// search users where username or firstname or lastname begins likes $needle
@ -292,13 +294,13 @@ $sessions = array();
$noPHP_SELF = true;
if (isset($_POST['form_sent']) && $_POST['form_sent']) {
$form_sent = $_POST['form_sent'];
$firstLetterUser = $_POST['firstLetterUser'];
$firstLetterSession = $_POST['firstLetterSession'];
$UserList = $_POST['sessionUsersList'];
$form_sent = $_POST['form_sent'];
$firstLetterUser = isset($_POST['firstLetterUser']) ? $_POST['firstLetterUser'] : '';
$firstLetterSession = isset($_POST['firstLetterSession']) ? $_POST['firstLetterSession'] : '';
$UserList = $_POST['sessionUsersList'];
if (!is_array($UserList)) {
$UserList=array();
$UserList = array();
}
if ($form_sent == 1) {
@ -366,14 +368,14 @@ if ($ajax_search) {
if ($sessionUser['status_in_session'] != 0) {
continue;
}
if (!array_key_exists($sessionUser['user_id'], $sessionUsersList)) {
continue;
}
if ($sessionUser['count'] != $countSessionCoursesList) {
/*if ($sessionUser['count'] != $countSessionCoursesList) {
unset($sessionUsersList[$sessionUser['user_id']]);
}
}*/
}
unset($users); //clean to free memory

@ -123,11 +123,11 @@ if (array_key_exists('add_teachers_to_sessions_courses', $courseInfo)) {
$form->addElement('checkbox', 'add_teachers_to_sessions_courses', null, get_lang('TeachersWillBeAddedAsCoachInAllCourseSessions'));
}
$coursesInSession = SessionManager::get_session_by_course($courseInfo['code']);
$coursesInSession = SessionManager::get_session_by_course($courseInfo['real_id']);
if (!empty($coursesInSession)) {
foreach ($coursesInSession as $session) {
$sessionId = $session['id'];
$coaches = SessionManager::getCoachesByCourseSession($sessionId, $courseInfo['code']);
$coaches = SessionManager::getCoachesByCourseSession($sessionId, $courseInfo['real_id']);
$teachers = $allTeachers;
$sessionTeachers = array();
@ -344,7 +344,7 @@ if ($form->validate()) {
if (!empty($sessionCoaches)) {
foreach ($sessionCoaches as $sessionId => $teacherInfo) {
$coachesToSubscribe = $teacherInfo['coaches_by_session'];
SessionManager::updateCoaches($sessionId, $course['code'], $coachesToSubscribe, true);
SessionManager::updateCoaches($sessionId, $courseId, $coachesToSubscribe, true);
}
}
@ -361,7 +361,7 @@ if ($form->validate()) {
if (!empty($coachesToSubscribe)) {
SessionManager::updateCoaches(
$sessionId,
$course['code'],
$courseId,
$coachesToSubscribe,
true
);

@ -105,7 +105,7 @@ $table->display();
echo Display::page_header(get_lang('Users'));
$table_course_user = Database :: get_main_table(TABLE_MAIN_COURSE_USER);
$table_user = Database :: get_main_table(TABLE_MAIN_USER);
$sql = "SELECT *,cu.status as course_status
$sql = "SELECT *, cu.status as course_status
FROM $table_course_user cu, $table_user u";
if (api_is_multiple_url_enabled()) {
$sql .= " INNER JOIN ".Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER)." url_rel_user
@ -153,8 +153,9 @@ if (Database::num_rows($res) > 0) {
} else {
echo get_lang('NoUsersInCourse');
}
$courseInfo = api_get_course_info($course->code);
$session_list = SessionManager::get_session_by_course($course->code);
$session_list = SessionManager::get_session_by_course($courseInfo['real_id']);
$url = api_get_path(WEB_CODE_PATH);
if (!empty($session_list)) {

@ -1,9 +1,11 @@
<?php
/* For licensing terms, see /license.txt */
/**
* @author Bart Mollet, Julio Montoya lot of fixes
* @package chamilo.admin
*/
$cidReset = true;
require_once '../inc/global.inc.php';
@ -76,12 +78,12 @@ $url_id = api_get_current_access_url_id();
switch ($action) {
case 'move_up':
SessionManager::moveUp($sessionId, $_GET['course_code']);
SessionManager::moveUp($sessionId, $_GET['course_id']);
header('Location: resume_session.php?id_session='.$sessionId);
exit;
break;
case 'move_down':
SessionManager::moveDown($sessionId, $_GET['course_code']);
SessionManager::moveDown($sessionId, $_GET['course_id']);
header('Location: resume_session.php?id_session='.$sessionId);
exit;
break;
@ -288,12 +290,14 @@ if ($session['nbr_courses'] == 0) {
} else {
// select the courses
$orderBy = "ORDER BY position";
//$orderBy = "ORDER BY position";
$orderBy = '';
$sql = "SELECT c.id, code,title, visual_code, nbr_users
FROM $tbl_course c , $tbl_session_rel_course
$sql = "SELECT c.id, code, title, visual_code, nbr_users
FROM $tbl_course c INNER JOIN $tbl_session_rel_course sc
ON (c.id = sc.c_id)
WHERE
c_id = c.id AND
sc.c_id = c.id AND
id_session='$sessionId'
$orderBy";
@ -346,7 +350,7 @@ if ($session['nbr_courses'] == 0) {
$orderButtons = null;
$upIcon = 'up.png';
$urlUp = api_get_self().'?id_session='.$sessionId.'&course_code='.$course['code'].'&action=move_up';
$urlUp = api_get_self().'?id_session='.$sessionId.'&course_id='.$course['id'].'&action=move_up';
if ($count == 0) {
$upIcon = 'up_na.png';
@ -359,7 +363,7 @@ if ($session['nbr_courses'] == 0) {
);
$downIcon = 'down.png';
$downUrl = api_get_self().'?id_session='.$sessionId.'&course_code='.$course['code'].'&action=move_down';
$downUrl = api_get_self().'?id_session='.$sessionId.'&course_id='.$course['id'].'&action=move_down';
if ($count +1 == count($courses)) {
$downIcon = 'down_na.png';

@ -29,9 +29,9 @@ $sql = "SELECT s.name, c.title
FROM $tbl_session_course sc,$tbl_session s,$tbl_course c
WHERE
sc.id_session=s.id AND
sc.course_code = c.code AND
sc.c_id = c.id AND
sc.id_session='$id_session' AND
sc.c_id ='".intval($courseId)."'";
sc.c_id ='".$courseId."'";
$result = Database::query($sql);
if (!list($session_name,$course_title) = Database::fetch_row($result)) {
@ -46,11 +46,12 @@ $interbreadcrumb[]=array('url' => "session_course_list.php?id_session=$id_sessio
$arr_infos = array();
if (isset($_POST['formSent']) && $_POST['formSent']) {
$formSent=1;
$formSent = 1;
// get all tutor by course_code in the session
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user
WHERE id_session = '$id_session' AND c_id = '".intval($courseId)."' AND status = 2";
$sql = "SELECT id_user
FROM $tbl_session_rel_course_rel_user
WHERE id_session = '$id_session' AND c_id = '".$courseId."' AND status = 2";
$rs_coachs = Database::query($sql);
$coachs_course_session = array();
@ -66,7 +67,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
foreach ($id_coachs as $id_coach) {
$id_coach = intval($id_coach);
$rs1 = SessionManager::set_coach_to_course_session($id_coach, $id_session, $course_code);
$rs1 = SessionManager::set_coach_to_course_session($id_coach, $id_session, $courseId);
}
// set status to 0 other tutors from multiple list
@ -76,7 +77,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$rs2 = SessionManager::set_coach_to_course_session(
$nocoach_user_id,
$id_session,
$course_code,
$courseId,
true
);
}
@ -87,7 +88,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
}
} else {
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user
WHERE id_session = '$id_session' AND course_code = '".Database::escape_string($course_code)."' AND status = 2 ";
WHERE id_session = '$id_session' AND c_id = '".$courseId."' AND status = 2 ";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {

@ -317,7 +317,7 @@ if (isset($_POST['formSent']) && $_POST['formSent']) {
$course_info = CourseManager::get_course_information($course_code);
$courseId = $course_info['c_id'];
$session_course_relation = SessionManager::relation_session_course_exist($session_id, $course_code);
$session_course_relation = SessionManager::relation_session_course_exist($session_id, $courseId);
if (!$session_course_relation) {
$sql_course = "INSERT INTO $tbl_session_course SET
c_id = '$courseId',

@ -80,10 +80,10 @@ if (!empty($selectedCourse)) {
);
}
$sessionsByCourse = SessionManager::get_session_by_course($selectedCourse);
$sessionsByCourse = SessionManager::get_session_by_course($course['real_id']);
foreach ($sessionsByCourse as $session) {
$coaches = CourseManager::get_coachs_from_course($session['id'], $selectedCourse);
$coaches = CourseManager::get_coachs_from_course($session['id'], $course['real_id']);
if ($coaches) {
foreach ($coaches as $coach) {
@ -138,7 +138,7 @@ if (!empty($selectedSession)) {
'name' => $course['title']
);
$coaches = CourseManager::get_coachs_from_course($selectedSession, $course['code']);
$coaches = CourseManager::get_coachs_from_course($selectedSession, $course['id']);
if ($coaches) {
foreach ($coaches as $coach) {

@ -159,7 +159,7 @@ if (count($sessions) > 0) {
$courseInfo = api_get_course_info($my_course['code']);
$sessionStatus = SessionManager::get_user_status_in_session(
$user['user_id'],
$my_course['code'],
$courseInfo['real_id'],
$id_session
);
$status = null;

@ -289,7 +289,7 @@ class AttendanceController
}
if (api_is_allowed_to_edit(null, true) ||
api_is_coach(api_get_session_id(), api_get_course_id()) ||
api_is_coach(api_get_session_id(), api_get_course_int_id()) ||
$isDrhOfCourse
) {
$data['users_presence'] = $attendance->get_users_attendance_sheet($attendance_id);

@ -17,7 +17,7 @@ $isDrhOfCourse = CourseManager::isUserSubscribedInCourseAsDrh(
);
if (api_is_allowed_to_edit(null, true) ||
api_is_coach(api_get_session_id(), api_get_course_id()) ||
api_is_coach(api_get_session_id(), api_get_course_int_id()) ||
$isDrhOfCourse
) {
$param_gradebook = '';

@ -120,7 +120,7 @@ if (empty($session_id)) {
header('Location: '.$url);
}
$userStatus = SessionManager::get_user_status_in_session($user_id, $course_code, $session_id);
$userStatus = SessionManager::get_user_status_in_session($user_id, $course_info['real_id'], $session_id);
if (isset($userStatus) || api_check_user_access_to_legal($course_info['visibility'])) {
$user_accepted_legal = CourseManager::is_user_accepted_legal(

@ -62,7 +62,7 @@ function createCourseSessions($courses, $administratorId, $startDate, $endDate)
0,
SESSION_INVISIBLE
);
SessionManager::add_courses_to_session($sessionId, array($course['code']));
SessionManager::add_courses_to_session($sessionId, array($course['id']));
echo "Session '".$sessionName."' created.\nCourse '".$course['title']."' added.\n\n";
}
}

@ -704,7 +704,7 @@ class ImportCsv
if (!empty($sessionId) && !empty($courseInfo)) {
$courseIncluded = SessionManager::relation_session_course_exist(
$sessionId,
$courseInfo['code']
$courseInfo['real_id']
);
if ($courseIncluded == false) {
@ -1129,6 +1129,8 @@ class ImportCsv
foreach ($courses as $course) {
$courseArray = bracketsToArray($course);
$courseCode = $courseArray[0];
$courseInfo = api_get_course_info($courseCode);
if (CourseManager::course_exists($courseCode)) {
// Coaches
$courseCoaches = isset($courseArray[1]) ? $courseArray[1] : null;
@ -1145,7 +1147,7 @@ class ImportCsv
}
SessionManager::updateCoaches(
$sessionId,
$courseCode,
$courseInfo['real_id'],
$coachList,
true
);
@ -1154,6 +1156,7 @@ class ImportCsv
// Students
$courseUsers = isset($courseArray[2]) ? $courseArray[2] : null;
$courseUsers = explode(',', $courseUsers);
if (!empty($courseUsers)) {
$userList = array();
foreach ($courseUsers as $username) {
@ -1279,7 +1282,7 @@ class ImportCsv
SessionManager::set_coach_to_course_session(
$userId,
$chamiloSessionId,
$courseInfo['code']
$courseInfo['real_id']
);
break;
}

@ -32,8 +32,8 @@ $user_info = api_get_user_info($user_id);
$session = array();
$user_name = $user_info['complete_name'];
$course_list = SessionManager::get_course_list_by_session_id ($session_id);
$session_list = SessionManager::get_session_by_course($course_code);
$course_list = SessionManager::get_course_list_by_session_id ($session_id);
$session_list = SessionManager::get_session_by_course($course_id);
$total_quota_bytes = DocumentManager::get_course_quota();
$quota_bytes = DocumentManager::documents_total_space($course_id, 0 , 0);
$quota_percentage = round($quota_bytes/$total_quota_bytes, 2)*100;

@ -59,7 +59,7 @@ if (api_is_course_session_coach(
api_get_course_id(),
api_get_session_id()
)) {
if (!api_coach_can_edit_view_results(api_get_course_id(), api_get_session_id())) {
if (!api_coach_can_edit_view_results(api_get_course_int_id(), api_get_session_id())) {
api_not_allowed(true);
}
}

@ -399,6 +399,7 @@ class DisplayGradebook
$userId = api_get_user_id();
$courseCode = api_get_course_id();
$courseId = api_get_course_int_id();
$sessionId = api_get_session_id();
// Student.
@ -407,7 +408,7 @@ class DisplayGradebook
if (!empty($sessionId)) {
$sessionStatus = SessionManager::get_user_status_in_course_session(
$userId,
$courseCode,
$courseId,
$sessionId
);
}

@ -232,7 +232,7 @@ switch ($action) {
$courses = array();
foreach ($coursesData as $courseId => $course) {
$coachData = SessionManager::getCoachesByCourseSession($sessionId, $course['code']);
$coachData = SessionManager::getCoachesByCourseSession($sessionId, $courseId);
$coachName = '';

@ -311,12 +311,15 @@ class AnnouncementEmail
}
if ($sendToUsersInSession) {
$sessionList = SessionManager::get_session_by_course($this->course['code']);
$sessionList = SessionManager::get_session_by_course($this->course['real_id']);
if (!empty($sessionList)) {
foreach ($sessionList as $sessionInfo) {
$sessionId = $sessionInfo['id'];
$message = $this->message(null, $sessionId);
$userList = CourseManager::get_user_list_from_course_code($this->course['code'], $sessionId);
$userList = CourseManager::get_user_list_from_course_code(
$this->course['code'],
$sessionId
);
if (!empty($userList)) {
foreach ($userList as $user) {
MessageManager::send_message_simple(

@ -592,7 +592,7 @@ class AnnouncementManager
$courseCode = api_get_course_id();
$_course = api_get_course_info();
$sessionList = SessionManager::get_session_by_course(api_get_course_id());
$sessionList = SessionManager::get_session_by_course(api_get_course_int_id());
if (!empty($sessionList)) {
foreach ($sessionList as $sessionInfo) {

@ -485,7 +485,7 @@ class AddCourse
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_COURSE_DESCRIPTION . "','course_description/','info.gif','" . self::string2binary(
VALUES ($course_id, 1, '" . TOOL_COURSE_DESCRIPTION . "','course_description/','info.gif','" . self::string2binary(
api_get_setting(
'course_create_active_tools',
'course_description'
@ -494,73 +494,73 @@ class AddCourse
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_CALENDAR_EVENT . "','calendar/agenda.php','agenda.gif','" . self::string2binary(
VALUES ($course_id, 2, '" . TOOL_CALENDAR_EVENT . "','calendar/agenda.php','agenda.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'agenda')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_DOCUMENT . "','document/document.php','folder_document.gif','" . self::string2binary(
VALUES ($course_id, 3, '" . TOOL_DOCUMENT . "','document/document.php','folder_document.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'documents')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_LEARNPATH . "','newscorm/lp_controller.php','scorms.gif','" . self::string2binary(
VALUES ($course_id, 4, '" . TOOL_LEARNPATH . "','newscorm/lp_controller.php','scorms.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'learning_path')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_LINK . "','link/link.php','links.gif','" . self::string2binary(
VALUES ($course_id, 5, '" . TOOL_LINK . "','link/link.php','links.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'links')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_QUIZ . "','exercice/exercice.php','quiz.gif','" . self::string2binary(
VALUES ($course_id, 6, '" . TOOL_QUIZ . "','exercice/exercice.php','quiz.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'quiz')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_ANNOUNCEMENT . "','announcements/announcements.php','valves.gif','" . self::string2binary(
VALUES ($course_id, 7, '" . TOOL_ANNOUNCEMENT . "','announcements/announcements.php','valves.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'announcements')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_FORUM . "','forum/index.php','forum.gif','" . self::string2binary(
VALUES ($course_id, 8, '" . TOOL_FORUM . "','forum/index.php','forum.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'forums')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_DROPBOX . "','dropbox/index.php','dropbox.gif','" . self::string2binary(
VALUES ($course_id, 9, '" . TOOL_DROPBOX . "','dropbox/index.php','dropbox.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'dropbox')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_USER . "','user/user.php','members.gif','" . self::string2binary(
VALUES ($course_id, 10, '" . TOOL_USER . "','user/user.php','members.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'users')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_GROUP . "','group/group.php','group.gif','" . self::string2binary(
VALUES ($course_id, 11, '" . TOOL_GROUP . "','group/group.php','group.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'groups')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_CHAT . "','chat/chat.php','chat.gif','" . self::string2binary(
VALUES ($course_id, 12, '" . TOOL_CHAT . "','chat/chat.php','chat.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'chat')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_STUDENTPUBLICATION . "','work/work.php','works.gif','" . self::string2binary(
VALUES ($course_id, 13, '" . TOOL_STUDENTPUBLICATION . "','work/work.php','works.gif','" . self::string2binary(
api_get_setting(
'course_create_active_tools',
'student_publications'
@ -569,43 +569,43 @@ class AddCourse
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_SURVEY . "','survey/survey_list.php','survey.gif','" . self::string2binary(
VALUES ($course_id, 14, '" . TOOL_SURVEY . "','survey/survey_list.php','survey.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'survey')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_WIKI . "','wiki/index.php','wiki.gif','" . self::string2binary(
VALUES ($course_id, 15, '" . TOOL_WIKI . "','wiki/index.php','wiki.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'wiki')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_GRADEBOOK . "','gradebook/index.php','gradebook.gif','" . self::string2binary(
VALUES ($course_id, 16, '" . TOOL_GRADEBOOK . "','gradebook/index.php','gradebook.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'gradebook')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_GLOSSARY . "','glossary/index.php','glossary.gif','" . self::string2binary(
VALUES ($course_id, 17, '" . TOOL_GLOSSARY . "','glossary/index.php','glossary.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'glossary')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_NOTEBOOK . "','notebook/index.php','notebook.gif','" . self::string2binary(
VALUES ($course_id, 18, '" . TOOL_NOTEBOOK . "','notebook/index.php','notebook.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'notebook')
) . "','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_ATTENDANCE . "','attendance/index.php','attendance.gif','" . self::string2binary(
VALUES ($course_id, 19, '" . TOOL_ATTENDANCE . "','attendance/index.php','attendance.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'attendances')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_COURSE_PROGRESS . "','course_progress/index.php','course_progress.gif','" . self::string2binary(
VALUES ($course_id, 20, '" . TOOL_COURSE_PROGRESS . "','course_progress/index.php','course_progress.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'course_progress')
) . "','0','squaregrey.gif','NO','_self','authoring','0')"
);
@ -615,11 +615,11 @@ class AddCourse
if (!empty($mycheck)) {
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_VISIO_CONFERENCE . "','conference/index.php?type=conference','visio_meeting.gif','1','0','squaregrey.gif','NO','_self','interaction','0')"
VALUES ($course_id, 21, '" . TOOL_VISIO_CONFERENCE . "','conference/index.php?type=conference','visio_meeting.gif','1','0','squaregrey.gif','NO','_self','interaction','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_VISIO_CLASSROOM . "','conference/index.php?type=classroom','visio.gif','1','0','squaregrey.gif','NO','_self','authoring','0')"
VALUES ($course_id, 22, '" . TOOL_VISIO_CLASSROOM . "','conference/index.php?type=classroom','visio.gif','1','0','squaregrey.gif','NO','_self','authoring','0')"
);
}
}
@ -627,7 +627,7 @@ class AddCourse
if (api_get_setting('search_enabled') == 'true') {
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_SEARCH . "','search/','info.gif','" . self::string2binary(
VALUES ($course_id, 23, '" . TOOL_SEARCH . "','search/','info.gif','" . self::string2binary(
api_get_setting(
'course_create_active_tools',
'enable_search'
@ -638,7 +638,7 @@ class AddCourse
// Smartblogs (Kevin Van Den Haute :: kevin@develop-it.be)
$sql = "INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL,'" . TOOL_BLOGS . "','blog/blog_admin.php','blog_admin.gif','" . self::string2binary(
VALUES ($course_id, 24,'" . TOOL_BLOGS . "','blog/blog_admin.php','blog_admin.gif','" . self::string2binary(
api_get_setting('course_create_active_tools', 'blogs')
) . "','1','squaregrey.gif','NO','_self','admin','0')";
Database::query($sql);
@ -648,15 +648,15 @@ class AddCourse
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_TRACKING . "','tracking/courseLog.php','statistics.gif','$visible_for_course_admin','1','', 'NO','_self','admin','0')"
VALUES ($course_id, 25, '" . TOOL_TRACKING . "','tracking/courseLog.php','statistics.gif','$visible_for_course_admin','1','', 'NO','_self','admin','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_COURSE_SETTING . "','course_info/infocours.php','reference.gif','$visible_for_course_admin','1','', 'NO','_self','admin','0')"
VALUES ($course_id, 26, '" . TOOL_COURSE_SETTING . "','course_info/infocours.php','reference.gif','$visible_for_course_admin','1','', 'NO','_self','admin','0')"
);
Database::query(
"INSERT INTO $tbl_course_homepage (c_id, id, name, link, image, visibility, admin, address, added_tool, target, category, session_id)
VALUES ($course_id, NULL, '" . TOOL_COURSE_MAINTENANCE . "','course_info/maintenance.php','backup.gif','$visible_for_course_admin','1','','NO','_self', 'admin','0')"
VALUES ($course_id, 27, '" . TOOL_COURSE_MAINTENANCE . "','course_info/maintenance.php','backup.gif','$visible_for_course_admin','1','','NO','_self', 'admin','0')"
);
$defaultEmailExerciseAlert = 1;
@ -667,69 +667,42 @@ class AddCourse
}
/* course_setting table (courseinfo tool) */
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'email_alert_manager_on_new_doc',0,'work')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'email_alert_on_new_doc_dropbox',0,'dropbox')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_user_edit_agenda',0,'agenda')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_user_edit_announcement',0,'announcement')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'email_alert_manager_on_new_quiz', $defaultEmailExerciseAlert,'quiz')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_user_image_forum',1,'forum')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'course_theme','','theme')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_learning_path_theme','1','theme')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_open_chat_window',1,'chat')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'email_alert_to_teacher_on_new_user_in_course',0,'registration')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_user_view_user_list',1,'user')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'display_info_advance_inside_homecourse',1,'thematic_advance')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'email_alert_students_on_new_homework',0,'work')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'enable_lp_auto_launch',0,'learning_path')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'pdf_export_watermark_text','','learning_path')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable,value,category) VALUES ($course_id, 'allow_public_certificates','','certificates')"
);
Database::query(
"INSERT INTO $TABLESETTING (c_id, variable, value) VALUES ($course_id, 'documents_default_visibility', 'visible')"
);
$settings = [
'email_alert_manager_on_new_doc' => ['default' => 0, 'category' => 'work'],
'email_alert_on_new_doc_dropbox' => ['default' => 0, 'category' => 'dropbox'],
'allow_user_edit_agenda' => ['default' => 0, 'category' => 'agenda'],
'allow_user_edit_announcement' => ['default' => 0, 'category' => 'announcement'],
'email_alert_manager_on_new_quiz' => ['default' => $defaultEmailExerciseAlert, 'category' => 'quiz'],
'allow_user_image_forum' => ['default' => 1, 'category' => 'forum'],
'course_theme' => ['default' => '', 'category' => 'theme'],
'allow_learning_path_theme' => ['default' => 1, 'category' => 'theme'],
'allow_open_chat_window' => ['default' => 1, 'category' => 'chat'],
'email_alert_to_teacher_on_new_user_in_course' => ['default' => 0, 'category' =>'registration'],
'allow_user_view_user_list' => ['default' =>1, 'category' =>'user'],
'display_info_advance_inside_homecourse' => ['default' => 1, 'category' =>'thematic_advance'],
'email_alert_students_on_new_homework' => ['default' => 0, 'category' =>'work'],
'enable_lp_auto_launch' => ['default' => 0, 'category' =>'learning_path'],
'pdf_export_watermark_text' => ['default' =>'', 'category' =>'learning_path'],
'allow_public_certificates' => ['default' => '', 'category' =>'certificates'],
'documents_default_visibility' => ['default' =>'visible', 'category' =>'document']
];
$counter = 1;
foreach ($settings as $setting) {
Database::query(
"INSERT INTO $TABLESETTING (id, c_id, variable,value,category)
VALUES ($counter, $course_id, '".$setting."', '".$setting['default']."', '".$setting['category']."')"
);
$counter++;
}
/* Course homepage tools for platform admin only */
/* Group tool */
Database::query(
"INSERT INTO $TABLEGROUPCATEGORIES (c_id, id , title , description , max_student , self_reg_allowed , self_unreg_allowed , groups_per_user , display_order )
VALUES ($course_id, '2', '" . self::lang2db(
get_lang('DefaultGroupCategory')
) . "', '', '8', '0', '0', '0', '0');"
"INSERT INTO $TABLEGROUPCATEGORIES (c_id, id, title , description, max_student, self_reg_allowed, self_unreg_allowed, groups_per_user, display_order)
VALUES ($course_id, '2', '" . self::lang2db(get_lang('DefaultGroupCategory')) . "', '', '8', '0', '0', '0', '0');"
);
/* Example Material */
@ -744,27 +717,16 @@ class AddCourse
$language_interface = $language;
$now = api_get_utc_datetime();
//Share folder
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/shared_folder','" . get_lang(
'UserFolders'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
$files = [
['path' => '/shared_folder', 'title' => get_lang('UserFolders'), 'filetype' => 'folder', 'size' => 0],
['path' => '/chat_files', 'title' => get_lang('ChatFiles'), 'filetype' => 'folder', 'size' => 0],
];
//Chat folder
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/chat_files','" . get_lang(
'ChatFiles'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
$counter = 1;
foreach ($files as $file) {
self::insertDocument($course_id, $counter, $file);
$counter++;
}
$sys_course_path = api_get_path(SYS_COURSE_PATH);
$perm = api_get_permissions_for_new_directories();
@ -779,68 +741,21 @@ class AddCourse
/* Documents */
if ($fill_with_exemplary_content) {
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id,path,title,filetype,size) VALUES ($course_id,'/images','" . get_lang(
'Images'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/images/gallery','" . get_lang(
'DefaultCourseImages'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/audio','" . get_lang(
'Audio'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/flash','" . get_lang(
'Flash'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/video','" . get_lang(
'Video'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
Database::query(
"INSERT INTO $TABLETOOLDOCUMENT (c_id, path,title,filetype,size) VALUES ($course_id,'/certificates','" . get_lang(
'Certificates'
) . "','folder','0')"
);
$example_doc_id = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility) VALUES ($course_id,'document',1,'$now','$now',$example_doc_id,'DocumentAdded',1,0,NULL,0)"
);
$files = [
['path' => '/images', 'title' => get_lang('Images'), 'filetype' => 'folder', 'size' => 0],
['path' => '/images/gallery', 'title' => get_lang('DefaultCourseImages'), 'filetype' => 'folder', 'size' => 0],
['path' => '/audio', 'title' => get_lang('Audio'), 'filetype' => 'folder', 'size' => 0],
['path' => '/flash', 'title' => get_lang('Flash'), 'filetype' => 'folder', 'size' => 0],
['path' => '/video', 'title' => get_lang('Video'), 'filetype' => 'folder', 'size' => 0],
['path' => '/certificates', 'title' => get_lang('Certificates'), 'filetype' => 'folder', 'size' => 0]
];
foreach ($files as $file) {
self::insertDocument($course_id, $counter, $file);
$counter++;
}
// FILL THE COURSE DOCUMENT WITH DEFAULT COURSE PICTURES
$folders_to_copy_from_default_course = array(
'images',
'audio',
@ -920,11 +835,7 @@ class AddCourse
if (is_array($array_media) && count($array_media) > 0) {
foreach ($array_media as $key => $value) {
if (isset($value['dir']) && !empty($value['dir'])) {
if (!is_dir(
$course_documents_folder . $value['dir']
)
) {
if (!is_dir($course_documents_folder . $value['dir'])) {
//Creating folder
mkdir(
$course_documents_folder . $value['dir'],
@ -1215,6 +1126,28 @@ class AddCourse
$language_interface = $language_interface_original;
return true;
}
/**
* @param int $course_id
* @param int $counter
* @param array $file
*/
function insertDocument($course_id, $counter, $file)
{
$TABLEITEMPROPERTY = Database::get_course_table(TABLE_ITEM_PROPERTY);
$TABLETOOLDOCUMENT = Database::get_course_table(TABLE_DOCUMENT);
$sql = "INSERT INTO $TABLETOOLDOCUMENT (id, c_id, path,title,filetype,size)
VALUES ($counter, $course_id, '".$file['path']."', '".$file['title']."', '".$file['filetype']."', '".$file['size']."')";
Database::query($sql);
$docId = Database:: insert_id();
Database::query(
"INSERT INTO $TABLEITEMPROPERTY (id, c_id, tool,insert_user_id,insert_date,lastedit_date,ref,lastedit_type,lastedit_user_id,to_group_id,to_user_id,visibility)
VALUES ($counter, $course_id,'document',1,'$now', '$now', $docId, 'DocumentAdded', 1, 0, NULL, 0)"
);
}
/**
* string2binary converts the string "true" or "false" to the boolean true false (0 or 1)
* This is used for the Chamilo Config Settings as these store true or false as string

@ -1783,8 +1783,8 @@ function api_format_course_array($course_data) {
//@todo should be deprecated
// Use as key in db list.
$_course['dbName'] = $course_data['db_name'];
$_course['db_name'] = $course_data['db_name'];
//$_course['dbName'] = $course_data['db_name'];
//$_course['db_name'] = $course_data['db_name'];
// Use in all queries.
$_course['titular'] = $course_data['tutor_name'];
@ -2147,7 +2147,7 @@ function api_get_session_info($session_id) {
/**
* Gets the session visibility by session id
* @param int $session_id
* @param string $course_code
* @param int $courseId
* @param bool $ignore_visibility_for_admins
* @return int
* 0 = session still available,
@ -2157,7 +2157,7 @@ function api_get_session_info($session_id) {
*/
function api_get_session_visibility(
$session_id,
$course_code = null,
$courseId = null,
$ignore_visibility_for_admins = true
) {
// Means that the session is still available.
@ -2259,7 +2259,7 @@ function api_get_session_visibility(
/* If I'm a coach the visibility can change in my favor depending in
the nb_days_access_after_end and nb_days_access_before_beginning */
$is_coach = api_is_coach($session_id, $course_code);
$is_coach = api_is_coach($session_id, $courseId);
if ($is_coach) {
// Test end date.
@ -2358,12 +2358,12 @@ function api_get_session_condition(
/**
* This function returns information about coaches from a course in session
* @param int - optional, session id
* @param string - optional, course code
* @return array - array containing user_id, lastname, firstname, username
* @param int optional, session id
* @param int $courseId
* @return array array containing user_id, lastname, firstname, username
* @deprecated use CourseManager::get_coaches_from_course
*/
function api_get_coachs_from_course($session_id=0,$course_code='')
function api_get_coachs_from_course($session_id = 0, $courseId = '')
{
if (!empty($session_id)) {
$session_id = intval($session_id);
@ -2371,22 +2371,26 @@ function api_get_coachs_from_course($session_id=0,$course_code='')
$session_id = api_get_session_id();
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
if (!empty($courseId)) {
$courseId = intval($courseId);
} else {
$course_code = api_get_course_id();
$courseId = api_get_course_int_id();
}
$tbl_user = Database:: get_main_table(TABLE_MAIN_USER);
$tbl_session_course_user = Database:: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$coaches = array();
$sql = "SELECT u.user_id,u.lastname,u.firstname,u.username
FROM $tbl_user u,$tbl_session_course_user scu
$sql = "SELECT
u.user_id,
u.lastname,
u.firstname,
u.username
FROM $tbl_user u, $tbl_session_course_user scu
WHERE
u.user_id = scu.id_user AND
scu.id_session = '$session_id' AND
scu.course_code = '$course_code' AND
scu.c_id = '$courseId' AND
scu.status = 2";
$rs = Database::query($sql);
@ -2394,8 +2398,10 @@ function api_get_coachs_from_course($session_id=0,$course_code='')
while ($row = Database::fetch_array($rs)) {
$coaches[] = $row;
}
return $coaches;
} else {
return false;
}
}
@ -2639,9 +2645,10 @@ function api_get_user_platform_status($user_id = null) {
$session_status = array('id' => $session_id, 'course_id' => $course_id);
$session_user_status = SessionManager::get_user_status_in_course_session(
$user_id,
$course_code,
$course_id,
$session_id
);
switch ($session_user_status) {
case 0:
$session_status['status'] = 'student';
@ -2716,11 +2723,13 @@ function api_is_course_session_coach($user_id, $course_code, $session_id)
/**
* Checks whether the current user is a course or session coach
* @param int - optional, session id
* @param string - optional, course code
* @param int $courseId
* @return boolean True if current user is a course or session coach
*/
function api_is_coach($session_id = 0, $course_code = null, $check_student_view = true)
function api_is_coach($session_id = 0, $courseId = null, $check_student_view = true)
{
$userId = api_get_user_id();
if (!empty($session_id)) {
$session_id = intval($session_id);
} else {
@ -2734,22 +2743,22 @@ function api_is_coach($session_id = 0, $course_code = null, $check_student_view
return false;
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
if (!empty($courseId)) {
$courseId = intval($courseId);
} else {
$course_code = api_get_course_id();
$courseId = api_get_course_int_id();
}
$session_table = Database::get_main_table(TABLE_MAIN_SESSION);
$session_rel_course_rel_user_table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sessionIsCoach = null;
if (!empty($course_code)) {
$sql = "SELECT DISTINCT id, name, date_start, date_end
FROM $session_table
$sql = "SELECT DISTINCT s.id, name, date_start, date_end
FROM $session_table s
INNER JOIN $session_rel_course_rel_user_table session_rc_ru
ON session_rc_ru.id_session = id AND session_rc_ru.id_user = '".api_get_user_id()."'
ON session_rc_ru.id_session = s.id AND session_rc_ru.id_user = '".$userId."'
WHERE
session_rc_ru.course_code = '$course_code' AND
session_rc_ru.c_id = '$courseId' AND
session_rc_ru.status = 2 AND
session_rc_ru.id_session = '$session_id'";
$result = Database::query($sql);
@ -2759,7 +2768,7 @@ function api_is_coach($session_id = 0, $course_code = null, $check_student_view
if (!empty($session_id)) {
$sql = "SELECT DISTINCT id, name, date_start, date_end
FROM $session_table
WHERE session.id_coach = '".api_get_user_id()."' AND id = '$session_id'
WHERE session.id_coach = '".$userId."' AND id = '$session_id'
ORDER BY date_start, date_end, name";
$result = Database::query($sql);
if (!empty($sessionIsCoach)) {
@ -6966,10 +6975,19 @@ function api_get_security_key() {
return $_configuration['security_key'];
}
function api_detect_user_roles($user_id, $course_code, $session_id = 0) {
/**
* @param int $user_id
* @param int $courseId
* @param int $session_id
* @return array
*/
function api_detect_user_roles($user_id, $courseId, $session_id = 0)
{
$user_roles = array();
/*$user_info = api_get_user_info($user_id);
$user_roles[] = $user_info['status'];*/
$courseInfo = api_get_course_info_by_id($courseId);
$course_code = $courseInfo['code'];
$url_id = api_get_current_access_url_id();
if (api_is_platform_admin_by_id($user_id, $url_id)) {
@ -6999,7 +7017,11 @@ function api_detect_user_roles($user_id, $course_code, $session_id = 0) {
$user_roles[] = COURSE_STUDENT;
}
} else {
$user_status_in_session = SessionManager::get_user_status_in_course_session($user_id, $course_code, $session_id);
$user_status_in_session = SessionManager::get_user_status_in_course_session(
$user_id,
$courseId,
$session_id
);
if (!empty($user_status_in_session)) {
if ($user_status_in_session == 0) {
@ -7048,11 +7070,17 @@ function role_actions() {
);
}
function api_coach_can_edit_view_results($course_code = null, $session_id = null) {
/**
* @param int $courseId
* @param int $session_id
* @return bool
*/
function api_coach_can_edit_view_results($courseId = null, $session_id = null)
{
$user_id = api_get_user_id();
if (empty($course_code)) {
$course_code = api_get_course_id();
if (empty($courseId)) {
$courseId = api_get_course_int_id();
}
if (empty($session_id)) {
@ -7063,7 +7091,7 @@ function api_coach_can_edit_view_results($course_code = null, $session_id = null
return true;
}
$roles = api_detect_user_roles($user_id, $course_code, $session_id);
$roles = api_detect_user_roles($user_id, $courseId, $session_id);
if (in_array(SESSION_COURSE_COACH, $roles)) {
//return api_get_setting('session_tutor_reports_visibility') == 'true';

@ -569,6 +569,7 @@ class Attendance
{
$current_session_id = api_get_session_id();
$current_course_id = api_get_course_id();
$currentCourseIntId = api_get_course_int_id();
$studentInGroup = array();
@ -616,7 +617,7 @@ class Attendance
if (api_get_session_id()) {
$user_status_in_session = SessionManager::get_user_status_in_course_session(
$uid,
$current_course_id,
$currentCourseIntId,
$current_session_id
);
} else {

@ -446,7 +446,7 @@ class CourseManager
// Delete in table session_rel_course_rel_user
$sql = "DELETE FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . "
WHERE id_session ='" . $session_id . "' AND
course_code = '" . Database::escape_string($course_info['code']) . "' AND
c_id = '" . $course_id . "' AND
id_user IN ($user_ids)";
Database::query($sql);
@ -479,14 +479,14 @@ class CourseManager
// Update the table session_rel_course
$sql = "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";
WHERE id_session = '$session_id' AND c_id = '$course_id' AND status<>2";
$row = Database::fetch_array(@Database::query($sql));
$count = $row[0];
// number of users by session and course
$sql = "UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE) . "
SET nbr_users = '$count'
WHERE id_session = '$session_id' AND course_code = '$course_code'";
WHERE id_session = '$session_id' AND c_id = '$course_id'";
Database::query($sql);
} else {
@ -499,6 +499,7 @@ class CourseManager
// add event to system log
$user_id = api_get_user_id();
Event::addEvent(
LOG_UNSUBSCRIBE_USER_FROM_COURSE,
LOG_COURSE_CODE,
@ -586,7 +587,7 @@ class CourseManager
if (Database::num_rows(@Database::query("
SELECT * FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . "
WHERE
course_code = '" . $course_code . "' AND
c_id = '" . $courseId . "' AND
id_session ='" . $session_id . "' AND
id_user = '" . $user_id . "'")) > 0
) {
@ -611,7 +612,7 @@ class CourseManager
@Database::query(
"INSERT INTO " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . "
SET id_session ='" . $session_id . "',
course_code = '" . $course_code . "',
c_id = '" . $courseId . "',
id_user = '" . $user_id . "'"
);
@ -628,9 +629,9 @@ class CourseManager
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 c_id = '$courseId' 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 c_id = '$courseId' ");
} else {
$course_sort = self::userCourseSort($user_id, $course_code);
@ -1328,11 +1329,11 @@ class CourseManager
$sessionCondition = " session_course_user.id_session IN ('$sessionIdListTostring') ";
}
$courseCondition = " session_course_user.course_code = '".$course_code."' AND ";
$courseCondition = " course.code = '".$course_code."' AND ";
if (!empty($courseCodeList)) {
$courseCodeListForSession = array_map(array('Database', 'escape_string'), $courseCodeList);
$courseCodeListForSession = implode('","', $courseCodeListForSession);
$courseCondition = ' session_course_user.course_code IN ("' . $courseCodeListForSession . '") AND ';
$courseCondition = ' course.code IN ("' . $courseCodeListForSession . '") AND ';
}
$sql .= ' FROM ' . Database::get_main_table(TABLE_MAIN_USER) . ' as user ';
@ -1341,10 +1342,10 @@ class CourseManager
user.user_id = session_course_user.id_user AND
$courseCondition
$sessionCondition
INNER JOIN $course_table course ON session_course_user.course_code = course.code
INNER JOIN $sessionTable session ON session_course_user.id_session = session.id
INNER JOIN $course_table course ON session_course_user.c_id = course.id
INNER JOIN $sessionTable session ON session_course_user.id_session = session.id
";
$where[] = ' session_course_user.course_code IS NOT NULL ';
$where[] = ' session_course_user.c_id IS NOT NULL ';
// 2 = coach
// 0 = student
@ -1678,16 +1679,16 @@ class CourseManager
if (!empty($session_id)) {
$sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . ' as session_course_user
ON user.user_id = session_course_user.id_user
AND session_course_user.course_code = "' . $course_code . '"
AND session_course_user.c_id = "' . $courseId . '"
AND session_course_user.id_session = ' . $session_id;
$where[] = ' session_course_user.course_code IS NOT NULL ';
$where[] = ' session_course_user.c_id 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.c_id= ' . $courseId ;
course_rel_user.c_id = ' . $courseId ;
$where[] = ' course_rel_user.c_id IS NOT NULL ';
}
@ -1708,6 +1709,7 @@ class CourseManager
$user = Database::fetch_array($rs);
$count = $user['count'];
}
return $count;
}
@ -1724,12 +1726,15 @@ class CourseManager
}
$course_code = Database::escape_string($course_code);
$courseInfo = api_get_course_info($course_code);
$courseId = $courseInfo['real_id'];
$session_id = intval($session_id);
$users = array();
// We get the coach for the given course in a given session.
$sql = 'SELECT id_user FROM ' . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) .
' WHERE id_session="' . $session_id . '" AND course_code="' . $course_code . '" AND status = 2';
' WHERE id_session="' . $session_id . '" AND c_id="' . $courseId . '" AND status = 2';
$rs = Database::query($sql);
while ($user = Database::fetch_array($rs)) {
$user_info = api_get_user_info($user['id_user']);
@ -1787,7 +1792,8 @@ class CourseManager
if ($session_id == 0) {
// 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
INNER JOIN user u
ON cu.user_id = u.user_id
WHERE c_id = '$courseId' AND cu.status = " . STUDENT;
if (!$includeInvitedUsers) {
@ -1813,7 +1819,7 @@ class CourseManager
$sql_query = "SELECT * FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . " scu
$joinSession
INNER JOIN $userTable u ON scu.id_user = u.user_id
WHERE scu.course_code = '$course_code' AND scu.status <> 2";
WHERE scu.c_id = '$courseId' AND scu.status <> 2";
if (!empty($date_from) && !empty($date_to)) {
$date_from = Database::escape_string($date_from);
@ -1848,9 +1854,15 @@ class CourseManager
public static function get_teacher_list_from_course_code($course_code)
{
$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
$courseId = $courseInfo['real_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)
@ -1906,12 +1918,12 @@ class CourseManager
/**
* This function returns information about coachs from a course in session
* @param int - optional, session id
* @param string - optional, course code
* @param int $session_id
* @param int $courseId
* @return array - array containing user_id, lastname, firstname, username
*
*/
public static function get_coachs_from_course($session_id = 0, $course_code = '')
public static function get_coachs_from_course($session_id = 0, $courseId = '')
{
if (!empty($session_id)) {
$session_id = intval($session_id);
@ -1919,44 +1931,51 @@ class CourseManager
$session_id = api_get_session_id();
}
if (!empty($course_code)) {
$course_code = Database::escape_string($course_code);
if (!empty($courseId)) {
$courseId = intval($courseId);
} else {
$course_code = api_get_course_id();
$courseId = api_get_course_int_id();
}
$tbl_user = Database:: get_main_table(TABLE_MAIN_USER);
$tbl_session_course_user = Database:: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$coaches = array();
$sql = "SELECT DISTINCT u.user_id,u.lastname,u.firstname,u.username FROM $tbl_user u,$tbl_session_course_user scu
WHERE u.user_id = scu.id_user AND scu.id_session = '$session_id' AND scu.course_code = '$course_code' AND scu.status = 2";
$sql = "SELECT DISTINCT u.user_id,u.lastname,u.firstname,u.username
FROM $tbl_user u, $tbl_session_course_user scu
WHERE
u.user_id = scu.id_user AND
scu.id_session = '$session_id' AND
scu.c_id = '$courseId' AND
scu.status = 2";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {
while ($row = Database::fetch_array($rs)) {
$coaches[] = $row;
}
return $coaches;
} else {
return false;
}
}
/**
* @param int $session_id
* @param string $course_code
* @param int $courseId
* @param string $separator
* @param bool $add_link_to_profile
* @return null|string
*/
public static function get_coachs_from_course_to_string(
$session_id = 0,
$course_code = null,
$courseId = null,
$separator = self::USER_SEPARATOR,
$add_link_to_profile = false
) {
$coachs_course = self::get_coachs_from_course($session_id, $course_code);
$coachs_course = self::get_coachs_from_course($session_id, $courseId);
$course_coachs = array();
if (is_array($coachs_course)) {
@ -1977,15 +1996,16 @@ class CourseManager
}
/**
* @param string $course_code
* @param int $courseId
* @param int $session_id
* @return string
* @deprecated seem not to be use
*/
public static function get_coach_list_from_course_code_to_string($course_code, $session_id)
public static function get_coach_list_from_course_code_to_string($courseId, $session_id)
{
$tutor_data = '';
if ($session_id != 0) {
$coaches = self::get_email_of_tutor_to_session($session_id, $course_code);
$coaches = self::get_email_of_tutor_to_session($session_id, $courseId);
$coach_list = array();
foreach ($coaches as $coach) {
$coach_list[] = $coach['complete_name'];
@ -2205,9 +2225,9 @@ class CourseManager
$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 . "'";
$sql = "DELETE FROM $table_session_course WHERE c_id='" . $courseId . "'";
Database::query($sql);
$sql = "DELETE FROM $table_session_course_user WHERE course_code='" . $codeFiltered . "'";
$sql = "DELETE FROM $table_session_course_user WHERE c_id='" . $courseId . "'";
Database::query($sql);
// Delete from Course - URL
@ -2647,7 +2667,7 @@ class CourseManager
if ($include_sessions === true) {
$sql = "SELECT DISTINCT(c.code), c.id as real_id
FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . " s, " . Database::get_main_table(TABLE_MAIN_COURSE) . " c
WHERE id_user = $user_id AND s.course_code=c.code";
WHERE id_user = $user_id AND s.c_id = c.id";
$r = Database::query($sql);
while ($row = Database::fetch_array($r, 'ASSOC')) {
if (!in_array($row['real_id'], $codes)) {
@ -2721,21 +2741,26 @@ class CourseManager
/**
* Get coaches emails by session
* @param int session id
* @param string course code
* @param int $courseId
* @return array array(email => name_tutor) by coach
* @author Carlos Vargas <carlos.vargas@dokeos.com>
*/
public static function get_email_of_tutor_to_session($session_id, $course_code)
public static function get_email_of_tutor_to_session($session_id, $courseId)
{
$tbl_session_course_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_user = Database::get_main_table(TABLE_MAIN_USER);
$coachs_emails = array();
$course_code = Database::escape_string($course_code);
$courseId = intval($courseId);
$session_id = intval($session_id);
$sql = "SELECT id_user FROM $tbl_session_course_user
WHERE id_session='$session_id' AND course_code='$course_code' AND status = 2";
$sql = "SELECT id_user
FROM $tbl_session_course_user
WHERE
id_session = '$session_id' AND
c_id = '$courseId' AND
status = 2
";
$rs = Database::query($sql);
if (Database::num_rows($rs) > 0) {
@ -4056,7 +4081,8 @@ class CourseManager
) {
global $nosession;
$user_id = api_get_user_id();
$course_info = api_get_course_info($course['code']);
$course_info = api_get_course_info_by_id($course['real_id']);
$status_course = CourseManager::get_user_in_course_status($user_id, $course_info['code']);
$course_info['status'] = empty($session_id) ? $status_course : STUDENT;
$course_info['id_session'] = $session_id;
@ -4093,7 +4119,7 @@ class CourseManager
$course_info['code']
);
$is_coach = api_is_coach($course_info['id_session'], $course['code']);
$is_coach = api_is_coach($course_info['id_session'], $course_info['real_id']);
// Display course entry.
// Show a hyperlink to the course, unless the course is closed and user is not course admin.
@ -4122,7 +4148,7 @@ class CourseManager
}
$sessionCourseAvailable = false;
$sessionCourseStatus = api_get_session_visibility($session_id, $course_info['code']);
$sessionCourseStatus = api_get_session_visibility($session_id, $course_info['id']);
if (in_array($sessionCourseStatus,
array(SESSION_VISIBLE_READ_ONLY, SESSION_VISIBLE, SESSION_AVAILABLE))) {
$sessionCourseAvailable = true;
@ -4188,7 +4214,7 @@ class CourseManager
);
$course_coachs = CourseManager::get_coachs_from_course_to_string(
$course_info['id_session'],
$course['code'],
$course_info['real_id'],
self::USER_SEPARATOR,
true
);
@ -4409,7 +4435,7 @@ class CourseManager
} else {
$table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = "SELECT legal_agreement FROM $table
WHERE id_user = $user_id AND course_code ='$course_code' AND id_session = $session_id";
WHERE id_user = $user_id AND c_id ='$courseId' AND id_session = $session_id";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$result = Database::fetch_array($result);
@ -4449,12 +4475,12 @@ class CourseManager
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 c_id ='$courseId' ";
WHERE user_id = $user_id AND c_id = '$courseId' ";
Database::query($sql);
} else {
$table = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = "UPDATE $table SET legal_agreement = '1'
WHERE id_user = $user_id AND course_code = '$course_code' AND id_session = $session_id";
WHERE id_user = $user_id AND c_id = '$courseId' AND id_session = $session_id";
Database::query($sql);
}
}
@ -5124,14 +5150,14 @@ class CourseManager
}
if ($editTeacherInSessions) {
$sessions = SessionManager::get_session_by_course($course_code);
$sessions = SessionManager::get_session_by_course($courseId);
if (!empty($sessions)) {
foreach ($sessions as $session) {
// Remove old and add new
if ($deleteSessionTeacherNotInList) {
foreach ($teachers as $userId) {
SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code);
SessionManager::set_coach_to_course_session($userId, $session['id'], $courseId);
}
$teachersToDelete = array();
@ -5141,14 +5167,14 @@ class CourseManager
if (!empty($teachersToDelete)) {
foreach ($teachersToDelete as $userId) {
SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code,
SessionManager::set_coach_to_course_session($userId, $session['id'], $courseId,
true);
}
}
} else {
// Add new teachers only
foreach ($teachers as $userId) {
SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code);
SessionManager::set_coach_to_course_session($userId, $session['id'], $courseId);
}
}
}
@ -5700,11 +5726,11 @@ class CourseManager
null;
$visibility = ($includeClosed ? '' : 'visibility NOT IN (0, 4) AND ');
$query = "SELECT id, code, title FROM " . Database::get_main_table(TABLE_MAIN_COURSE)
. " WHERE $visibility
code NOT IN
(SELECT DISTINCT course_code FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE) . $dateConditional . ")
ORDER BY id";
$query = "SELECT id, code, title
FROM " . Database::get_main_table(TABLE_MAIN_COURSE). "
WHERE $visibility code NOT IN (
SELECT DISTINCT course_code FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE) . $dateConditional . ")
ORDER BY id";
$result = Database::query($query);
$courses = array();

@ -1626,7 +1626,7 @@ class DocumentManager
} else {
$user_status = SessionManager::get_user_status_in_course_session(
$user_id,
$course_info['code'],
$course_info['real_id'],
$session_id
);
@ -3214,7 +3214,11 @@ class DocumentManager
$user_in_course = true;
}
} else {
$user_status = SessionManager::get_user_status_in_course_session($user_id, $course_info['code'], $session_id);
$user_status = SessionManager::get_user_status_in_course_session(
$user_id,
$course_info['real_id'],
$session_id
);
//is true if is an student, course session teacher or coach
if (in_array($user_status, array('0', '2', '6'))) {
$user_in_course = true;
@ -4234,7 +4238,7 @@ class DocumentManager
*/
public static function updateVisibilityFromAllSessions($courseInfo, $id, $visibility, $userId)
{
$sessionList = SessionManager::get_session_by_course($courseInfo['code']);
$sessionList = SessionManager::get_session_by_course($courseInfo['real_id']);
if (!empty($sessionList)) {
foreach ($sessionList as $session) {

@ -112,7 +112,7 @@ class PDF
) {
$teacher_list = SessionManager::getCoachesByCourseSessionToString(
$this->params['session_info']['id'],
$this->params['course_code']
$this->params['course_info']['real_id']
);
} else {

File diff suppressed because it is too large Load Diff

@ -946,13 +946,13 @@ class Template
//Tutor name
if (api_get_setting('show_tutor_data') == 'true') {
// Course manager
$id_course = api_get_course_id();
$courseId = api_get_course_int_id();
$id_session = api_get_session_id();
if (isset($id_course) && $id_course != -1) {
if (!empty($courseId)) {
$tutor_data = '';
if ($id_session != 0) {
$coachs_email = CourseManager::get_email_of_tutor_to_session($id_session, $id_course);
$email_link = array();
$coachs_email = CourseManager::get_email_of_tutor_to_session($id_session, $courseId);
$email_link = array();
foreach ($coachs_email as $coach) {
$email_link[] = Display::encrypted_mailto_link($coach['email'], $coach['complete_name']);
}

@ -1572,7 +1572,7 @@ class Tracking
$nb_courses = Database::num_rows($rs);
if ($include_sessions) {
$sql = 'SELECT DISTINCT course_code
$sql = 'SELECT DISTINCT c_id
FROM ' . $tbl_session_course_rel_user . '
WHERE id_user = ' . $user_id;
$rs = Database::query($sql);
@ -1878,9 +1878,9 @@ class Tracking
scu.id_session = s.id
AND scu.status = 2
AND scu.visibility = 1
AND scu.course_code = '%s'
AND scu.c_id = '%s'
AND scu.id_session = %s";
$query = sprintf($sql,$course['code'], $sessionId);
$query = sprintf($sql, intval($courseId), $sessionId);
$rs = Database::query($query);
$teachers = array();
while ($teacher = Database::fetch_array($rs,'ASSOC')) {
@ -2660,7 +2660,7 @@ class Tracking
$a_students = array ();
// At first, courses where $coach_id is coach of the course //
$sql = 'SELECT id_session, course_code
$sql = 'SELECT id_session, c_id
FROM ' . $tbl_session_course_user . '
WHERE id_user=' . $coach_id.' AND status=2';
@ -2668,7 +2668,7 @@ class Tracking
$tbl_session_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_SESSION);
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1) {
$sql = 'SELECT scu.id_session, scu.course_code
$sql = 'SELECT scu.id_session, scu.c_id
FROM ' . $tbl_session_course_user . ' scu
INNER JOIN '.$tbl_session_rel_access_url.' sru
ON (scu.id_session=sru.session_id)
@ -2682,16 +2682,16 @@ class Tracking
$result = Database::query($sql);
while ($a_courses = Database::fetch_array($result)) {
$course_code = $a_courses["course_code"];
$courseId = $a_courses["c_id"];
$id_session = $a_courses["id_session"];
$sql = "SELECT distinct srcru.id_user
$sql = "SELECT DISTINCT srcru.id_user
FROM $tbl_session_course_user AS srcru, $tbl_session_user sru
WHERE
srcru.id_user = sru.id_user AND
sru.relation_type<>".SESSION_RELATION_TYPE_RRHH." AND
srcru.id_session = sru.id_session AND
srcru.course_code='$course_code' AND
srcru.c_id = '$courseId' AND
srcru.id_session='$id_session'";
$rs = Database::query($sql);
@ -2705,9 +2705,10 @@ class Tracking
$sql = 'SELECT session_course_user.id_user
FROM ' . $tbl_session_course_user . ' as session_course_user
INNER JOIN '.$tbl_session_user.' sru ON session_course_user.id_user = sru.id_user AND session_course_user.id_session = sru.id_session
INNER JOIN '.$tbl_session_user.' sru
ON session_course_user.id_user = sru.id_user AND session_course_user.id_session = sru.id_session
INNER JOIN ' . $tbl_session_course . ' as session_course
ON session_course.course_code = session_course_user.course_code
ON session_course.c_id = session_course_user.c_id
AND session_course_user.id_session = session_course.id_session
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session
@ -2717,24 +2718,26 @@ class Tracking
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1){
$sql = 'SELECT session_course_user.id_user
FROM ' . $tbl_session_course_user . ' as session_course_user
INNER JOIN '.$tbl_session_user.' sru
ON session_course_user.id_user = sru.id_user AND
session_course_user.id_session = sru.id_session
INNER JOIN ' . $tbl_session_course . ' as session_course
ON session_course.course_code = session_course_user.course_code AND
session_course_user.id_session = session_course.id_session
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session AND
session.id_coach = ' . $coach_id.'
INNER JOIN '.$tbl_session_rel_access_url.' session_rel_url
ON session.id = session_rel_url.session_id WHERE access_url_id = '.$access_url_id;
FROM ' . $tbl_session_course_user . ' as session_course_user
INNER JOIN '.$tbl_session_user.' sru
ON session_course_user.id_user = sru.id_user AND
session_course_user.id_session = sru.id_session
INNER JOIN ' . $tbl_session_course . ' as session_course
ON session_course.c_id = session_course_user.c_id AND
session_course_user.id_session = session_course.id_session
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session AND
session.id_coach = ' . $coach_id.'
INNER JOIN '.$tbl_session_rel_access_url.' session_rel_url
ON session.id = session_rel_url.session_id WHERE access_url_id = '.$access_url_id;
}
}
$result = Database::query($sql);
while ($row = Database::fetch_array($result)) {
$a_students[$row['id_user']] = $row['id_user'];
}
return $a_students;
}
@ -2752,16 +2755,17 @@ class Tracking
$a_students = array ();
// At first, courses where $coach_id is coach of the course //
$sql = 'SELECT course_code FROM ' . $tbl_session_course_user . ' WHERE id_session="' . $id_session . '" AND id_user=' . $coach_id.' AND status=2';
$sql = 'SELECT c_id FROM ' . $tbl_session_course_user . '
WHERE id_session="' . $id_session . '" AND id_user=' . $coach_id.' AND status=2';
$result = Database::query($sql);
while ($a_courses = Database::fetch_array($result)) {
$course_code = $a_courses["course_code"];
$courseId = $a_courses["c_id"];
$sql = "SELECT distinct srcru.id_user
$sql = "SELECT DISTINCT srcru.id_user
FROM $tbl_session_course_user AS srcru
WHERE
course_code='$course_code' AND
c_id = '$courseId' AND
id_session = '" . $id_session . "'";
$rs = Database::query($sql);
while ($row = Database::fetch_array($rs)) {
@ -2783,6 +2787,7 @@ class Tracking
$a_students[$row['id_user']] = $row['id_user'];
}
}
return $a_students;
}
@ -2808,11 +2813,12 @@ class Tracking
if (Database::num_rows($result) > 0) {
return true;
}
// Then, courses where $coach_id is coach of the session
$sql = 'SELECT session_course_user.id_user
FROM ' . $tbl_session_course_user . ' as session_course_user
INNER JOIN ' . $tbl_session_course . ' as session_course
ON session_course.course_code = session_course_user.course_code
ON session_course.c_id = session_course_user.c_id
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session
AND session.id_coach = ' . $coach_id . '
@ -2845,8 +2851,10 @@ class Tracking
// At first, courses where $coach_id is coach of the course.
$sql = 'SELECT DISTINCT course_code
FROM ' . $tbl_session_course_user . '
$sql = 'SELECT DISTINCT c.code
FROM ' . $tbl_session_course_user . ' sc
INNER JOIN '.$tbl_course.' c
ON (c.id = sc.c_id)
WHERE id_user = ' . $coach_id.' AND status = 2';
if (api_is_multiple_url_enabled()) {
$access_url_id = api_get_current_access_url_id();
@ -2854,7 +2862,7 @@ class Tracking
$sql = 'SELECT DISTINCT c.code
FROM ' . $tbl_session_course_user . ' scu
INNER JOIN '.$tbl_course.' c
ON (c.code = scu.course_code)
ON (c.code = scu.c_id)
INNER JOIN '.$tbl_course_rel_access_url.' cru
ON (c.id = cru.c_id)
WHERE
@ -2871,18 +2879,18 @@ class Tracking
$courseList = array();
$result = Database::query($sql);
while ($row = Database::fetch_array($result)) {
$courseList[$row['course_code']] = $row['course_code'];
$courseList[$row['code']] = $row['code'];
}
// Then, courses where $coach_id is coach of the session
$sql = 'SELECT DISTINCT session_course.course_code
$sql = 'SELECT DISTINCT course.code
FROM ' . $tbl_session_course . ' as session_course
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session
AND session.id_coach = ' . $coach_id . '
INNER JOIN ' . $tbl_course . ' as course
ON course.code = session_course.course_code';
ON course.id = session_course.c_id';
if (api_is_multiple_url_enabled()) {
$tbl_course_rel_access_url = Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_COURSE);
@ -2891,12 +2899,12 @@ class Tracking
$sql = 'SELECT DISTINCT c.code
FROM ' . $tbl_session_course . ' as session_course
INNER JOIN '.$tbl_course.' c
ON (c.code = session_course.course_code)
ON (c.id = session_course.c_id)
INNER JOIN ' . $tbl_session . ' as session
ON session.id = session_course.id_session
AND session.id_coach = ' . $coach_id . '
INNER JOIN ' . $tbl_course . ' as course
ON course.code = session_course.course_code
ON course.id = session_course.c_id
INNER JOIN '.$tbl_course_rel_access_url.' course_rel_url
ON (course_rel_url.c_id = c.id)';
}
@ -2913,7 +2921,7 @@ class Tracking
$result = Database::query($sql);
while ($row = Database::fetch_array($result)) {
$courseList[$row['course_code']] = $row['course_code'];
$courseList[$row['code']] = $row['code'];
}
return $courseList;
@ -3041,24 +3049,31 @@ class Tracking
// table definition
$tbl_session_course = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE);
$courseTable = Database :: get_main_table(TABLE_MAIN_COURSE);
$sql = 'SELECT DISTINCT course_code
FROM ' . $tbl_session_course . '
WHERE id_session=' . $session_id;
$sql = "SELECT DISTINCT code, c_id
FROM $tbl_session_course sc
INNER JOIN $courseTable c
sc.c_id = c.id
WHERE id_session= $session_id";
$rs = Database::query($sql);
$a_courses = array ();
while ($row = Database::fetch_array($rs)) {
$a_courses[$row['course_code']] = $row;
$result = Database::query($sql);
$courses = array();
while ($row = Database::fetch_array($result)) {
$courses[$row['code']] = $row;
}
return $a_courses;
return $courses;
}
/**
* Count the number of documents that an user has uploaded to a course
* @param int|array Student id(s)
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) return count of assignments including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default)
* return count of assignments including sessions, 0 = session is not filtered
* @return int Number of documents
*/
public static function count_student_uploaded_documents($student_id, $course_code, $session_id = null)
@ -3103,7 +3118,9 @@ class Tracking
* Count assignments per student
* @param int|array Student id(s)
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) return count of assignments including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default) return count of assignments
* including sessions, 0 = session is not filtered
* @return int Count of assignments
*/
public static function count_student_assignments($student_id, $course_code = null, $session_id = null)
@ -3203,7 +3220,9 @@ class Tracking
/**
* This function counts the number of post by course
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) it'll return results including sessions, 0 = session is not filtered
* @param int Session id (optional), if param $session_id is
* null(default) it'll return results including sessions,
* 0 = session is not filtered
* @return int The number of post by course
*/
public static function count_number_of_posts_by_course($course_code, $session_id = null)
@ -3239,7 +3258,9 @@ class Tracking
/**
* This function counts the number of threads by course
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) it'll return results including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default) it'll return results including
* sessions, 0 = session is not filtered
* @return int The number of threads by course
*/
public static function count_number_of_threads_by_course($course_code, $session_id = null)
@ -3272,7 +3293,9 @@ class Tracking
/**
* This function counts the number of forums by course
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) it'll return results including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default) it'll return results
* including sessions, 0 = session is not filtered
* @return int The number of forums by course
*/
public static function count_number_of_forums_by_course($course_code, $session_id = null)
@ -3433,17 +3456,21 @@ class Tracking
$user_id = intval($user_id);
$id_session = intval($id_session);
$tbl_session_course_user = Database :: get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$sql = 'SELECT course_code
FROM ' . $tbl_session_course_user . '
$courseTable = Database :: get_main_table(TABLE_MAIN_COURSE);
$sql = "SELECT c.code
FROM $tbl_session_course_user sc
INNER JOIN $courseTable c
WHERE
id_user="' . $user_id . '" AND
id_session="' . $id_session . '"';
id_user= $user_id AND
id_session= $id_session";
$result = Database::query($sql);
$a_courses = array ();
$courses = array();
while ($row = Database::fetch_array($result)) {
$a_courses[$row['course_code']] = $row['course_code'];
$courses[$row['code']] = $row['code'];
}
return $a_courses;
return $courses;
}
/**
@ -3467,7 +3494,7 @@ class Tracking
if ($session_id != 0) {
$inner = ' INNER JOIN '.$tbl_session_course_user.' session_course_user
ON c.code = session_course_user.course_code
ON c.id = session_course_user.c_id
AND session_course_user.id_session = '.intval($session_id).'
AND session_course_user.id_user = stats_login.user_id ';
}
@ -3668,7 +3695,9 @@ class Tracking
/**
* get count clicks about tools most used by course
* @param int $courseId
* @param int Session id (optional), if param $session_id is null(default) it'll return results including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default) it'll return results
* including sessions, 0 = session is not filtered
* @return array tools data
*/
public static function get_tools_most_used_by_course($courseId, $session_id = null)
@ -3828,7 +3857,9 @@ class Tracking
/**
* get documents most downloaded by course
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) it'll return results including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default) it'll return results including
* sessions, 0 = session is not filtered
* @param int Limit (optional, default = 0, 0 = without limit)
* @return array documents downloaded
*/
@ -3864,7 +3895,9 @@ class Tracking
/**
* get links most visited by course
* @param string Course code
* @param int Session id (optional), if param $session_id is null(default) it'll return results including sessions, 0 = session is not filtered
* @param int Session id (optional),
* if param $session_id is null(default) it'll
* return results including sessions, 0 = session is not filtered
* @return array links most visited
*/
public static function get_links_most_visited_by_course($course_code, $session_id = null)
@ -3936,7 +3969,7 @@ class Tracking
access_url_id = ".api_get_current_access_url_id()."
ORDER BY title";
} else {
$sql = "SELECT course_code as code, title
$sql = "SELECT c.code, title
FROM $tbl_course_user u
INNER JOIN $tbl_course c ON (c_id = c.id)
WHERE
@ -3947,7 +3980,7 @@ class Tracking
$rs = Database::query($sql);
$courses = $course_in_session = $temp_course_in_session = array();
while($row = Database :: fetch_array($rs, 'ASSOC')) {
while ($row = Database :: fetch_array($rs, 'ASSOC')) {
$courses[$row['code']] = $row['title'];
}
@ -3957,25 +3990,32 @@ class Tracking
if (!empty($session_id)) {
$orderBy = " ORDER BY s.id, position ";
$tableSessionRelCourse = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$extraInnerJoin = " INNER JOIN $tableSessionRelCourse src ON (cu.course_code = src.course_code AND src.id_session = $session_id) ";
$extraInnerJoin = " INNER JOIN $tableSessionRelCourse src
ON (cu.c_id = src.c_id AND src.id_session = $session_id) ";
}
// Get the list of sessions where the user is subscribed as student
if (api_is_multiple_url_enabled()) {
$sql = "SELECT DISTINCT cu.course_code, s.id as session_id, name
$sql = "SELECT DISTINCT c.code, s.id as session_id, name
FROM $tbl_session_course_user cu
INNER JOIN $tbl_access_rel_session a
ON (a.session_id = cu.id_session)
INNER JOIN $tbl_session s ON (s.id = a.session_id)
INNER JOIN $tbl_session s
ON (s.id = a.session_id)
INNER JOIN $tbl_course c
ON (c.id = cu.c_id)
$extraInnerJoin
WHERE
id_user = $user_id AND
access_url_id = ".api_get_current_access_url_id()."
$orderBy ";
} else {
$sql = "SELECT DISTINCT cu.course_code, s.id as session_id, name
$sql = "SELECT DISTINCT c.code, s.id as session_id, name
FROM $tbl_session_course_user cu
INNER JOIN $tbl_session s ON (s.id = cu.id_session)
INNER JOIN $tbl_session s
ON (s.id = cu.id_session)
INNER JOIN $tbl_course c
ON (c.id = cu.c_id)
$extraInnerJoin
WHERE id_user = $user_id
$orderBy ";
@ -3984,7 +4024,7 @@ class Tracking
$rs = Database::query($sql);
$simple_session_array = array();
while ($row = Database :: fetch_array($rs)) {
$course_info = CourseManager::get_course_information($row['course_code']);
$course_info = CourseManager::get_course_information($row['code']);
$temp_course_in_session[$row['session_id']]['course_list'][$course_info['id']] = $course_info;
$temp_course_in_session[$row['session_id']]['name'] = $row['name'];
$simple_session_array[$row['session_id']] = $row['name'];
@ -4360,7 +4400,7 @@ class Tracking
$weighting = 0;
$last_connection = Tracking :: get_last_connection_date_on_the_course($user_id, $courseId, $session_id_from_get);
$progress = Tracking :: get_avg_student_progress($user_id, $course_code,array(), $session_id_from_get);
$progress = Tracking :: get_avg_student_progress($user_id, $course_code, array(), $session_id_from_get);
$total_time_login = Tracking :: get_time_spent_on_the_course($user_id, $courseId, $session_id_from_get);
$time = api_time_to_hms($total_time_login);
$percentage_score = Tracking :: get_avg_student_score($user_id, $course_code, array(), $session_id_from_get);
@ -4373,7 +4413,7 @@ class Tracking
}
$url = api_get_course_url($course_code, $session_id_from_get);
$course_url = Display::url($course_title, $url, array('target'=>SESSION_LINK_TARGET));
$course_url = Display::url($course_title, $url, array('target' => SESSION_LINK_TARGET));
$html .= Display::tag('td', $course_url);
$html .= Display::tag('td', $stats_array[$course_code]['exercises']);
@ -5233,7 +5273,7 @@ class Tracking
// if, to the contrary, course is defined but not sessions, get the sessions that include this course
// $sessions is an array like: [0] => ('id' => 3, 'name' => 'Session 35'), [1] => () etc;
$course = api_get_course_info_by_id($courseId);
$sessionsTemp = SessionManager::get_session_by_course($course['code']);
$sessionsTemp = SessionManager::get_session_by_course($courseId);
$courses[$courseId] = $course;
foreach ($sessionsTemp as $sessionItem) {
$sessions[$sessionItem['id']] = $sessionItem;

@ -2573,7 +2573,7 @@ class UserManager
// Checking session visibility
$visibility = api_get_session_visibility(
$session_id,
$course['code'],
$course['real_id'],
$ignore_visibility_for_admins
);
@ -2859,12 +2859,12 @@ class UserManager
to our user or not */
$sql = "SELECT DISTINCT
scu.course_code as code, c.visibility, c.id as real_id
c.visibility, c.id as real_id
FROM $tbl_session_course_user as scu
INNER JOIN $tbl_session_course sc
ON (scu.id_session = sc.id_session AND scu.course_code = sc.course_code)
ON (scu.id_session = sc.id_session AND scu.c_id = sc.c_id)
INNER JOIN $tableCourse as c
ON (scu.course_code = c.code)
ON (scu.c_id = c.id)
$join_access_url
WHERE
scu.id_user = $user_id AND
@ -2875,25 +2875,25 @@ class UserManager
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
while ($result_row = Database::fetch_array($result)) {
while ($result_row = Database::fetch_array($result, 'ASSOC')) {
$result_row['status'] = 5;
if (!in_array($result_row['code'], $courses)) {
if (!in_array($result_row['real_id'], $courses)) {
$personal_course_list[] = $result_row;
$courses[] = $result_row['code'];
$courses[] = $result_row['real_id'];
}
}
}
if (api_is_allowed_to_create_course()) {
$sql = "SELECT DISTINCT
scu.course_code as code, c.visibility, c.id as real_id
c.visibility, c.id as real_id
FROM $tbl_session_course_user as scu
INNER JOIN $tbl_session as s
ON (scu.id_session = s.id)
INNER JOIN $tbl_session_course sc
ON (scu.id_session = sc.id_session AND scu.course_code = sc.course_code)
ON (scu.id_session = sc.id_session AND scu.c_id = sc.c_id)
INNER JOIN $tableCourse as c
ON (scu.course_code = c.code)
ON (scu.c_id = c.id)
$join_access_url
WHERE
s.id = $session_id AND
@ -2906,11 +2906,11 @@ class UserManager
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
while ($result_row = Database::fetch_array($result)) {
while ($result_row = Database::fetch_array($result, 'ASSOC')) {
$result_row['status'] = 2;
if (!in_array($result_row['code'], $courses)) {
if (!in_array($result_row['real_id'], $courses)) {
$personal_course_list[] = $result_row;
$courses[] = $result_row['code'];
$courses[] = $result_row['real_id'];
}
}
}
@ -2932,9 +2932,10 @@ class UserManager
$s = api_get_session_info($session_id);
if ($s['id_coach'] == $user_id) {
$course_list = SessionManager::get_course_list_by_session_id($session_id);
if (!empty($course_list)) {
foreach ($course_list as $course) {
if (!in_array($course['code'], $courses)) {
if (!in_array($course['id'], $courses)) {
$personal_course_list[] = $course;
}
}

@ -1117,7 +1117,7 @@ class IndexManager
$atLeastOneCourseIsVisible = false;
foreach ($session['courses'] as $course) {
$is_coach_course = api_is_coach($session_id, $course['code']);
$is_coach_course = api_is_coach($session_id, $course['real_id']);
$allowed_time = 0;
$dif_time_after = 0;
if ($date_session_start != '0000-00-00') {

@ -436,7 +436,7 @@ if (!empty($student_id)) {
if ($session_id > 0) {
$session_info = api_get_session_info($session_id);
$course_coachs = api_get_coachs_from_course($session_id, $course_code);
$course_coachs = api_get_coachs_from_course($session_id, $info_course['real_id']);
$nb_login = '';
if (!empty($course_coachs)) {
$info_tutor_name = array();

@ -57,7 +57,11 @@ foreach ($new_session_list as $session_item) {
$user_course_list = array();
foreach ($course_list as $course) {
$status = SessionManager::get_user_status_in_course_session($userId, $course['code'], $session_id);
$status = SessionManager::get_user_status_in_course_session(
$userId,
$course['real_id'],
$session_id
);
if ($status || api_is_platform_admin()) {
$user_course_list[] = $course['code'];
}

@ -302,7 +302,7 @@ $coaches = null;
if (!empty($session_id)) {
$coaches = CourseManager::get_coachs_from_course_to_string(
$session_id,
$courseInfo['code'],
$courseInfo['real_id'],
',',
false
);
@ -318,7 +318,7 @@ if (!empty($coaches)) {
echo $coaches;
}
$sessionList = SessionManager::get_session_by_course($courseInfo['code']);
$sessionList = SessionManager::get_session_by_course($courseInfo['real_id']);
if (!empty($sessionList)) {
echo Display::page_subheader2(get_lang('SessionList'));
$sessionToShow = array();

@ -173,7 +173,7 @@ $s_css_class = null;
if (!empty($courseList) && is_array($courseList)) {
foreach ($courseList as $courseInfo) {
$sessionList = SessionManager::get_session_by_course($courseInfo['code']);
$sessionList = SessionManager::get_session_by_course($courseInfo['real_id']);
$newSessionList = array();
if (!empty($sessionList)) {

@ -315,8 +315,7 @@ class WSSession extends WS
return $course_id;
} else {
if($state == 1) {
$course_code = CourseManager::get_course_code_from_course_id($course_id);
SessionManager::add_courses_to_session($session_id, array($course_code));
SessionManager::add_courses_to_session($session_id, array($course_id));
return true;
} else {
$result = SessionManager::unsubscribe_course_from_session($session_id, $course_id);

@ -4966,7 +4966,7 @@ function exportAllStudentWorkFromPublication(
$header .= '<br />' . $sessionInfo['description'];
$teachers = SessionManager::getCoachesByCourseSessionToString(
$sessionId,
$courseCode
$courseInfo['real_id']
);
}
}

@ -171,7 +171,7 @@ foreach ($res as $course) {
if ($debug) {
echo "Session $sessionTitle created with ID $id" . $eol;
}
SessionManager::add_courses_to_session($id, array($course['code']));
SessionManager::add_courses_to_session($id, array($course['id']));
$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)) {

Loading…
Cancel
Save