diff --git a/main/admin/user_export.php b/main/admin/user_export.php index c9c74018cc..d2414b5cd1 100755 --- a/main/admin/user_export.php +++ b/main/admin/user_export.php @@ -68,7 +68,7 @@ if ($form->validate()) { $file_type = $export['file_type']; $course_code = Database::escape_string($export['course_code']); $courseInfo = api_get_course_info($course_code); - $courseId = $courseInfo['real_id']; + $courseId = isset($courseInfo['real_id']) ? $courseInfo['real_id'] : 0; $courseSessionValue = explode(':', $export['course_session']); $courseSessionCode = ''; diff --git a/main/session/resume_session.php b/main/session/resume_session.php index 57bbe49383..931f4d89ce 100644 --- a/main/session/resume_session.php +++ b/main/session/resume_session.php @@ -248,9 +248,11 @@ if ($sessionInfo['nbr_courses'] == 0) { Display::return_icon('course_home.gif', get_lang('Course')).' '.$orderButtons.' '. - Display::return_icon('user.png', get_lang('Edit'), '', ICON_SIZE_SMALL).' - '. + Display::return_icon('user.png', get_lang('Users'), '', ICON_SIZE_SMALL).' + '. Display::return_icon('import_csv.png', get_lang('ImportUsersToACourse'), null, ICON_SIZE_SMALL).' + '. + Display::return_icon('export_csv.png', get_lang('ExportUsersToACourse'), null, ICON_SIZE_SMALL).' '. Display::return_icon('statistics.gif', get_lang('Tracking')).'  '. @@ -273,6 +275,11 @@ $url .= Display::url( Display::return_icon('import_csv.png', get_lang('ImportUsers'), array(), ICON_SIZE_SMALL), "session_user_import.php?id_session=$sessionId" ); +$url .= Display::url( + Display::return_icon('export_csv.png', get_lang('ExportUsers'), array(), ICON_SIZE_SMALL), + "/main/user/user_export.php?file_type=csv&session=$sessionId&addcsvheader=1" +); + $userListToShow = Display::page_subheader(get_lang('UserList').$url); diff --git a/main/user/user_export.php b/main/user/user_export.php new file mode 100644 index 0000000000..3cb155bf48 --- /dev/null +++ b/main/user/user_export.php @@ -0,0 +1,163 @@ + 0) { + $sql .= " FROM $user_table u, $course_user_table cu + WHERE + u.user_id = cu.user_id AND + cu.c_id = $courseId AND + cu.relation_type<>".COURSE_RELATION_TYPE_RRHH." + ORDER BY lastname,firstname"; + $filename = 'export_users_'.$course_code.'_'.api_get_local_time(); +} else if (strlen($courseSessionCode) > 0) { + $sql .= " FROM $user_table u, $session_course_user_table scu + WHERE + u.user_id = scu.user_id AND + scu.c_id = $courseSessionId AND + scu.session_id = $sessionId + ORDER BY lastname,firstname"; + $filename = 'export_users_'.$courseSessionCode.'_'.$sessionInfo['name'].'_'.api_get_local_time(); +} else if ($sessionId > 0) { + $sql .= " FROM $user_table u, $session_user_table su + WHERE + u.user_id = su.user_id AND + su.session_id = $sessionId + ORDER BY lastname,firstname"; + $filename = 'export_users_'.$sessionInfo['name'].'_'.api_get_local_time(); +} else { + if (api_is_multiple_url_enabled()) { + $tbl_user_rel_access_url= Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER); + $access_url_id = api_get_current_access_url_id(); + if ($access_url_id != -1) { + $sql.= " FROM $user_table u + INNER JOIN $tbl_user_rel_access_url as user_rel_url + ON (u.user_id= user_rel_url.user_id) + WHERE access_url_id = $access_url_id + ORDER BY lastname,firstname"; + } + } else { + $sql .= " FROM $user_table u ORDER BY lastname,firstname"; + } + $filename = 'export_users_'.api_get_local_time(); +} +$data = array(); +$extra_fields = UserManager::get_extra_fields(0, 0, 5, 'ASC',false); +if ($export['addcsvheader']=='1' AND $export['file_type']=='csv') { + if ($_configuration['password_encryption'] != 'none') { + $data[] = array( + 'UserId', + 'LastName', + 'FirstName', + 'Email', + 'UserName', + 'AuthSource', + 'Status', + 'OfficialCode', + 'PhoneNumber', + ); + } else { + $data[] = array( + 'UserId', + 'LastName', + 'FirstName', + 'Email', + 'UserName', + 'Password', + 'AuthSource', + 'Status', + 'OfficialCode', + 'PhoneNumber', + ); + } + + foreach($extra_fields as $extra) { + $data[0][]=$extra[1]; + } +} + +$res = Database::query($sql); +while($user = Database::fetch_array($res,'ASSOC')) { + $student_data = UserManager:: get_extra_user_data( + $user['UserId'], + true, + false + ); + foreach($student_data as $key=>$value) { + $key = substr($key, 6); + if (is_array($value)) { + $user[$key] = $value['extra_' . $key]; + } else { + $user[$key] = $value; + } + } + $data[] = $user ; +} + +switch ($file_type) { + case 'xml': + Export::arrayToXml($data, $filename, 'Contact', 'Contacts'); + exit; + break; + case 'csv': + Export::arrayToCsv($data, $filename); + exit; + case 'xls': + Export::arrayToXls($data, $filename); + exit; + break; +} \ No newline at end of file