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