diff --git a/main/admin/course_edit.php b/main/admin/course_edit.php index 00eda78e06..1674a9b53f 100644 --- a/main/admin/course_edit.php +++ b/main/admin/course_edit.php @@ -23,8 +23,6 @@ $tool_name = get_lang('ModifyCourseInfo'); $interbreadcrumb[] = array ("url" => 'index.php', "name" => get_lang('PlatformAdmin')); $interbreadcrumb[] = array ("url" => "course_list.php", "name" => get_lang('CourseList')); -/* Libraries */ -/* MAIN CODE */ // Get all course categories $table_user = Database :: get_main_table(TABLE_MAIN_USER); @@ -32,8 +30,8 @@ $table_user = Database :: get_main_table(TABLE_MAIN_USER); $sql = "SELECT * FROM $course_table WHERE code='".Database::escape_string($course_code)."'"; $result = Database::query($sql); if (Database::num_rows($result) != 1) { - header('Location: course_list.php'); - exit(); + header('Location: course_list.php'); + exit(); } $course = Database::fetch_array($result,'ASSOC'); @@ -63,14 +61,14 @@ $teachers = array(); $platform_teachers[0] = '-- '.get_lang('NoManager').' --'; while ($obj = Database::fetch_object($res)) { - if (!array_key_exists($obj->user_id,$course_teachers)) { + if (!array_key_exists($obj->user_id, $course_teachers)) { $teachers[$obj->user_id] = api_get_person_name($obj->firstname, $obj->lastname); } if ($course['tutor_name'] == $course_teachers[$obj->user_id]) { $course['tutor_name'] = $obj->user_id; } - //We add in the array platform teachers + // We add in the array platform teachers $platform_teachers[$obj->user_id] = api_get_person_name($obj->firstname, $obj->lastname); } @@ -78,8 +76,8 @@ while ($obj = Database::fetch_object($res)) { if (count($course_teachers) == 0) { $sql='SELECT tutor_name FROM '.$course_table.' WHERE code="'.$course_code.'"'; $res = Database::query($sql); - $tutor_name=Database::result($res,0,0); - $course['tutor_name']=array_search($tutor_name,$platform_teachers); + $tutor_name = Database::result($res, 0, 0); + $course['tutor_name'] = array_search($tutor_name, $platform_teachers); } // Build the form @@ -126,17 +124,19 @@ $form->addGroup($group,'group',get_lang('CourseTeachers'),'

' . ''); -$form->addElement('checkbox', 'add_teachers_to_sessions', null, get_lang('TeachersWillBeAddedAsCoachInAllCourseSessions')); +if (array_key_exists('add_teachers_to_sessions_courses', $course)) { + $form->addElement('checkbox', 'add_teachers_to_sessions_courses', null, get_lang('TeachersWillBeAddedAsCoachInAllCourseSessions')); +} $categories_select = $form->addElement('select', 'category_code', get_lang('CourseFaculty'), $categories , array('style'=>'width:350px','id'=>'category_code_id', 'class'=>'chzn-select')); $categories_select->addOption('-', ''); CourseManager::select_and_sort_categories($categories_select); -$form->add_textfield('department_name', get_lang('CourseDepartment'), false,array ('size' => '60')); +$form->add_textfield('department_name', get_lang('CourseDepartment'), false, array('size' => '60')); $form->applyFilter('department_name','html_filter'); $form->applyFilter('department_name','trim'); -$form->add_textfield('department_url', get_lang('CourseDepartmentURL'),false, array ('size' => '60')); +$form->add_textfield('department_url', get_lang('CourseDepartmentURL'), false, array('size' => '60')); $form->applyFilter('department_url','html_filter'); $form->applyFilter('department_url','trim'); @@ -181,12 +181,11 @@ foreach ($list_course_extra_field as $extra_field) { $form->addElement('style_submit_button', 'button', get_lang('ModifyCourseInfo'),'onclick="valide()"; class="save"'); // Set some default values -//$course['disk_quota'] = round($course['disk_quota']/1024/1024, 1); $course['disk_quota'] = round(DocumentManager::get_course_quota($course_code) /1024/1024, 1); $course['title'] = api_html_entity_decode($course['title'], ENT_QUOTES, $charset); $course['real_code'] = $course['code']; -$course['add_teachers_to_sessions'] = empty($course_teachers) || count($course_teachers) == 1 ? null : '1'; +$course['add_teachers_to_sessions_courses'] = isset($course['add_teachers_to_sessions_courses']) ? $course['add_teachers_to_sessions_courses'] : 0; $form->setDefaults($course); @@ -258,14 +257,21 @@ if ($form->validate()) { WHERE code='".Database::escape_string($course_code)."'"; Database::query($sql); - //update the extra fields + // update the extra fields if (count($extras) > 0) { foreach ($extras as $key => $value) { CourseManager::update_course_extra_field_value($course_code, $key, $value); } } - CourseManager::updateTeachers($course_code, $teachers, true, $course['add_teachers_to_sessions'], true); + $addTeacherToSessionCourses = isset($course['add_teachers_to_sessions_courses']) && !empty($course['add_teachers_to_sessions_courses']) ? 1 : 0; + + if ($addTeacherToSessionCourses) { + CourseManager::updateTeachers($course_code, $teachers, false, true, false); + } else { + // Normal behaviour + CourseManager::updateTeachers($course_code, $teachers); + } $sql = "INSERT IGNORE INTO ".$course_user_table . " SET course_code = '".Database::escape_string($course_code). "', @@ -278,6 +284,13 @@ if ($form->validate()) { Database::query($sql); $course_info = api_get_course_info($course_code); + + if (array_key_exists('add_teachers_to_sessions_courses', $course_info)) { + $sql = "UPDATE $course_table SET add_teachers_to_sessions_courses = '$addTeacherToSessionCourses' + WHERE id = ".$course_info['real_id']; + Database::query($sql); + } + $course_id = $course_info['real_id']; $forum_config_table = Database::get_course_table(TOOL_FORUM_CONFIG_TABLE); diff --git a/main/cron/import_csv.php b/main/cron/import_csv.php index 4a12bfc50d..1a837f025e 100644 --- a/main/cron/import_csv.php +++ b/main/cron/import_csv.php @@ -550,9 +550,15 @@ class ImportCsv $params = array( 'title' => $row['title'], ); + $result = CourseManager::update_attributes($courseInfo['real_id'], $params); - CourseManager::updateTeachers($courseInfo['id'], $row['teachers'], false, true, false); + $addTeacherToSession = isset($courseInfo['add_teachers_to_sessions_courses']) && !empty($courseInfo['add_teachers_to_sessions_courses']) ? true : false; + if ($addTeacherToSession) { + CourseManager::updateTeachers($courseInfo['id'], $row['teachers'], false, true, false); + } else { + CourseManager::updateTeachers($courseInfo['id'], $row['teachers']); + } if ($result) { $this->logger->addInfo("Courses - Course updated ".$courseInfo['code']); diff --git a/main/inc/lib/course.lib.php b/main/inc/lib/course.lib.php index 48eb221d70..a5782b6877 100644 --- a/main/inc/lib/course.lib.php +++ b/main/inc/lib/course.lib.php @@ -3999,9 +3999,14 @@ class CourseManager { * @param bool $editTeacherInSessions * @return bool */ - public static function updateTeachers($course_code, $teachers, $deleteTeachersNotInList = true, $editTeacherInSessions = false, $deleteSessionTeacherNotInList = false) + public static function updateTeachers( + $course_code, + $teachers, + $deleteTeachersNotInList = true, + $editTeacherInSessions = false, + $deleteSessionTeacherNotInList = false + ) { - if (empty($teachers)) { return false; } diff --git a/main/inc/lib/main_api.lib.php b/main/inc/lib/main_api.lib.php index 7e0ea2b87a..b3fbed5515 100644 --- a/main/inc/lib/main_api.lib.php +++ b/main/inc/lib/main_api.lib.php @@ -1424,11 +1424,13 @@ function api_format_course_array($course_data) { //Course password $_course['registration_code'] = !empty($course_data['registration_code']) ? sha1($course_data['registration_code']) : null; - $_course['disk_quota'] = $course_data['disk_quota']; - $_course['course_public_url'] = api_get_path(WEB_COURSE_PATH).$course_data['directory'].'/index.php'; + if (array_key_exists('add_teachers_to_sessions_courses', $course_data)) { + $_course['add_teachers_to_sessions_courses'] = $course_data['add_teachers_to_sessions_courses']; + } + if (file_exists(api_get_path(SYS_COURSE_PATH).$course_data['directory'].'/course-pic85x85.png')) { $url_image = api_get_path(WEB_COURSE_PATH).$course_data['directory'].'/course-pic85x85.png'; } else {