Skip to content

Commit 815c684

Browse files
authored
Merge pull request #6280 from christianbeeznest/conti2-22533-2
Session: Use config-defined headers and order for Excel export - refs BT#22533
2 parents e4f9239 + 13ae075 commit 815c684

File tree

2 files changed

+38
-26
lines changed

2 files changed

+38
-26
lines changed

main/inc/lib/sessionmanager.lib.php

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -10159,6 +10159,10 @@ public static function exportCourseSessionReport(int $sessionId, string $courseC
1015910159
}
1016010160

1016110161
$config = api_get_configuration_value('session_course_excel_export');
10162+
if (empty($config)) {
10163+
die('Configuration not set.');
10164+
}
10165+
1016210166
$sessionFields = $config['session_fields'] ?? [];
1016310167
$userFieldsBefore = $config['user_fields_before'] ?? [];
1016410168
$userFieldsAfter = $config['user_fields_after'] ?? [];
@@ -10168,14 +10172,8 @@ public static function exportCourseSessionReport(int $sessionId, string $courseC
1016810172
$header1[] = get_lang('StartDate');
1016910173
$header1[] = get_lang('EndDate');
1017010174

10171-
$extraField = new ExtraFieldModel('session');
10172-
$extraDefs = $extraField->get_all();
10173-
$extraDefsByVariable = array_column($extraDefs, null, 'variable');
10174-
10175-
foreach ($sessionFields as $field) {
10176-
if (isset($extraDefsByVariable[$field])) {
10177-
$header1[] = $extraDefsByVariable[$field]['display_text'] ?? $field;
10178-
}
10175+
foreach ($sessionFields as $entry) {
10176+
$header1[] = $entry['header'] ?? '';
1017910177
}
1018010178

1018110179
// 2. SESSION DATA
@@ -10187,24 +10185,27 @@ public static function exportCourseSessionReport(int $sessionId, string $courseC
1018710185
$sessionExtra = $extraValuesObj->getAllValuesByItem($sessionId);
1018810186
$sessionExtraMap = array_column($sessionExtra, 'value', 'variable');
1018910187

10190-
foreach ($sessionFields as $field) {
10191-
$value = $sessionExtraMap[$field] ?? '';
10188+
foreach ($sessionFields as $entry) {
10189+
if (!empty($entry['field'])) {
10190+
$value = $sessionExtraMap[$entry['field']] ?? '';
10191+
} else {
10192+
$value = '';
10193+
}
1019210194
$row2[] = $value;
1019310195
}
1019410196

1019510197
// 3. USER HEADER
10196-
$header3 = [''];
10197-
$extraFieldUser = new ExtraFieldModel('user');
10198-
$extraDefsUser = $extraFieldUser->get_all();
10199-
$extraDefsByVariableUser = array_column($extraDefsUser, null, 'variable');
10198+
$header3 = [''];
1020010199

10201-
foreach ($userFieldsBefore as $field) {
10202-
$header3[] = $extraDefsByVariableUser[$field]['display_text'] ?? $field;
10200+
foreach ($userFieldsBefore as $entry) {
10201+
$header3[] = $entry['header'] ?? '';
1020310202
}
10203+
1020410204
$header3[] = get_lang('FirstName');
1020510205
$header3[] = get_lang('LastName');
10206-
foreach ($userFieldsAfter as $field) {
10207-
$header3[] = $extraDefsByVariableUser[$field]['display_text'] ?? $field;
10206+
10207+
foreach ($userFieldsAfter as $entry) {
10208+
$header3[] = $entry['header'] ?? '';
1020810209
}
1020910210

1021010211
// 4. USERS WITH CERTIFICATE
@@ -10239,16 +10240,24 @@ public static function exportCourseSessionReport(int $sessionId, string $courseC
1023910240
$userExtra = $userExtraObj->getAllValuesByItem($userId);
1024010241
$userExtraMap = array_column($userExtra, 'value', 'variable');
1024110242

10242-
foreach ($userFieldsBefore as $field) {
10243-
$value = $userExtraMap[$field] ?? '';
10243+
foreach ($userFieldsBefore as $entry) {
10244+
if (!empty($entry['field'])) {
10245+
$value = $userExtraMap[$entry['field']] ?? '';
10246+
} else {
10247+
$value = '';
10248+
}
1024410249
$row[] = $value;
1024510250
}
1024610251

1024710252
$row[] = $userInfo['firstname'];
1024810253
$row[] = $userInfo['lastname'];
1024910254

10250-
foreach ($userFieldsAfter as $field) {
10251-
$value = $userExtraMap[$field] ?? '';
10255+
foreach ($userFieldsAfter as $entry) {
10256+
if (!empty($entry['field'])) {
10257+
$value = $userExtraMap[$entry['field']] ?? '';
10258+
} else {
10259+
$value = '';
10260+
}
1025210261
$row[] = $value;
1025310262
}
1025410263

main/session/resume_session.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,13 @@
300300
$codePath."user/user_export.php?file_type=csv&course_session={$course->getCode()}:$sessionId&addcsvheader=1"
301301
);
302302

303-
$courseItem .= Display::url(
304-
Display::return_icon('excel.png', get_lang('ExportCertifiedUsersExcel')),
305-
api_get_self()."?id_session=$sessionId&action=export_certified_course_users&course_code=".$course->getCode()
306-
);
303+
$config = api_get_configuration_value('session_course_excel_export');
304+
if (!empty($config)) {
305+
$courseItem .= Display::url(
306+
Display::return_icon('excel.png', get_lang('ExportCertifiedUsersExcel')),
307+
api_get_self()."?id_session=$sessionId&action=export_certified_course_users&course_code=".$course->getCode()
308+
);
309+
}
307310

308311
$courseItem .= Display::url(
309312
Display::return_icon('statistics.gif', get_lang('Tracking')),

0 commit comments

Comments
 (0)