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