Skip to content

Commit 503d9d0

Browse files
committed
Admin: Add visibility to course import/export/update through CSV/XML - refs BT#21415
1 parent bef68ff commit 503d9d0

File tree

3 files changed

+26
-12
lines changed

3 files changed

+26
-12
lines changed

main/admin/course_export.php

+3
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
'CourseCategoryName',
6464
'Teacher',
6565
'Language',
66+
'Visibility',
6667
];
6768
if ($includeUsers) {
6869
$listToExport[0][] = 'Users';
@@ -88,6 +89,8 @@
8889
}
8990
$dataToExport['tutor_name'] = str_replace(';', ',', $course['tutor_name']);
9091
$dataToExport['course_language'] = str_replace(';', ',', $course['course_language']);
92+
$dataToExport['visibility'] = str_replace(';', ',', $course['visibility']);
93+
9194
if ($includeUsers) {
9295
$dataToExport['students'] = '';
9396
$dataToExport['teachers'] = '';

main/admin/course_import.php

+7-4
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,9 @@ function save_courses_data($courses)
126126
$params['user_id'] = $creatorId;
127127
$addMeAsTeacher = isset($_POST['add_me_as_teacher']) ? $_POST['add_me_as_teacher'] : false;
128128
$params['add_user_as_teacher'] = $addMeAsTeacher;
129+
if (isset($course['Visibility'])) {
130+
$params['visibility'] = $course['Visibility'];
131+
}
129132

130133
// Check if there is a course template stated for this course. In that case, we check if that code exists in DB:
131134
if (array_key_exists('CourseTemplate', $course) && $course['CourseTemplate'] != '') {
@@ -267,10 +270,10 @@ function parse_csv_courses_data($file)
267270

268271
<blockquote>
269272
<pre>
270-
<strong>Code</strong>;<strong>Title</strong>;<strong>CourseCategory</strong>;<strong>CourseCategoryName</strong>;Teacher;Language;CourseTemplate;CloneHomepageTools
271-
BIO0015;Biology;BIO;Science;teacher1;english;TEMPLATE1;true
272-
BIO0016;Maths;MATH;Engineerng;teacher2|teacher3;english;;
273-
BIO0017;Language;LANG;;;english;;
273+
<strong>Code</strong>;<strong>Title</strong>;<strong>CourseCategory</strong>;<strong>CourseCategoryName</strong>;Teacher;Language;Visibility;CourseTemplate;CloneHomepageTools
274+
BIO0015;Biology;BIO;Science;teacher1;english;1;TEMPLATE1;true
275+
BIO0016;Maths;MATH;Engineerng;teacher2|teacher3;english;1;;
276+
BIO0017;Language;LANG;;;english;1;;
274277
</pre>
275278
</blockquote>
276279

main/admin/course_update_import.php

+16-8
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
*/
1212
function generateCsvModel(array $fields): string
1313
{
14-
$headerCsv = "<strong>Code</strong>;Title;CourseCategory;Language;";
14+
$headerCsv = "<strong>Code</strong>;Title;CourseCategory;Language;Visibility;";
1515

16-
$exampleCsv = "<b>COURSE001</b>;Introduction to Biology;BIO;english;";
16+
$exampleCsv = "<b>COURSE001</b>;Introduction to Biology;BIO;english;1;";
1717

1818
foreach ($fields as $field) {
1919
$fieldType = (int) $field['field_type'];
@@ -50,6 +50,7 @@ function generateXmlModel(array $fields): string
5050
$modelXml .= " &lt;Title&gt;Introduction to Biology&lt;/Title&gt;\n";
5151
$modelXml .= " &lt;CourseCategory&gt;BIO&lt;/CourseCategory&gt;\n";
5252
$modelXml .= " &lt;Language&gt;english&lt;/Language&gt;\n";
53+
$modelXml .= " &lt;Visibility&gt;1&lt;/Visibility&gt;\n";
5354
foreach ($fields as $field) {
5455
switch ($field['field_type']) {
5556
case ExtraField::FIELD_TYPE_CHECKBOX:
@@ -102,12 +103,19 @@ function validateCourseData(array $courses): array
102103
function updateCourse(array $courseData, int $courseId): void
103104
{
104105
$courseTable = Database::get_main_table(TABLE_MAIN_COURSE);
105-
$params = [
106-
'title' => $courseData['Title'],
107-
'course_language' => $courseData['Language'],
108-
'category_code' => $courseData['CourseCategory'],
109-
'visual_code' => $courseData['Code'],
110-
];
106+
$params = [];
107+
if (isset($courseData['Title'])) {
108+
$params['title'] = $courseData['Title'];
109+
}
110+
if (isset($courseData['Language'])) {
111+
$params['course_language'] = $courseData['Language'];
112+
}
113+
if (isset($courseData['CourseCategory'])) {
114+
$params['category_code'] = $courseData['CourseCategory'];
115+
}
116+
if (isset($courseData['Visibility'])) {
117+
$params['visibility'] = $courseData['Visibility'];
118+
}
111119
Database::update($courseTable, $params, ['id = ?' => $courseId]);
112120
$courseData['code'] = $courseData['Code'];
113121
$courseData['item_id'] = $courseId;

0 commit comments

Comments
 (0)