user_import.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. $language_file = array('registration', 'admin', 'userInfo');
  4. require_once '../inc/global.inc.php';
  5. require_once api_get_path(LIBRARY_PATH).'import.lib.php';
  6. $this_section = SECTION_COURSES;
  7. // notice for unauthorized people.
  8. api_protect_course_script(true);
  9. $tool_name = get_lang('ImportUsersToACourse');
  10. $interbreadcrumb[] = array ("url" => "user.php", "name" => get_lang("Users"));
  11. $interbreadcrumb[] = array ("url" => "#", "name" => get_lang("ImportUsersToACourse"));
  12. $form = new FormValidator('user_import','post','user_import.php');
  13. $form->addElement('header', '', $tool_name);
  14. $form->addElement('file', 'import_file', get_lang('ImportCSVFileLocation'));
  15. $form->addElement('style_submit_button', 'submit', get_lang('Import'), 'class="save"');
  16. $course_code = api_get_course_id();
  17. if (empty($course_code)) {
  18. api_not_allowed(true);
  19. }
  20. $session_id = api_get_session_id();
  21. $message = '';
  22. $user_to_show = array();
  23. $type = '';
  24. if ($form->validate()) {
  25. if (isset($_FILES['import_file']['size']) && $_FILES['import_file']['size'] !== 0) {
  26. $users = Import::csv_to_array($_FILES['import_file']['tmp_name']);
  27. $invalid_users = array();
  28. $clean_users = array();
  29. $users_in_file = array();
  30. if (!empty($users)) {
  31. foreach ($users as $user) {
  32. $user_info = api_get_user_info($user['id']);
  33. if (!empty($user_info)) {
  34. $clean_users[$user['id']] = $user_info;
  35. $users_in_file[$user['id']] = $user;
  36. } else {
  37. $invalid_users[] = $user['id'];
  38. }
  39. }
  40. if (empty($invalid_users)) {
  41. $type = 'confirmation';
  42. $message = get_lang('ListOfUsersSubscribedToCourse');
  43. foreach ($users as $user) {
  44. CourseManager :: subscribe_user($user['id'], $course_code, STUDENT, $session_id);
  45. if (empty($session_id)) {
  46. //just to make sure
  47. if (CourseManager :: is_user_subscribed_in_course($user['id'], $course_code)) {
  48. $user_to_show[]= $clean_users[$user['id']]['complete_name'];
  49. }
  50. } else {
  51. //just to make sure
  52. if (CourseManager :: is_user_subscribed_in_course($user['id'], $course_code, true, $session_id)) {
  53. $user_to_show[]= $clean_users[$user['id']]['complete_name'];
  54. }
  55. }
  56. }
  57. } else {
  58. $message = get_lang('CheckUsersWithId');
  59. $type = 'warning';
  60. foreach ($invalid_users as $invalid_user) {
  61. $user_to_show[]= $invalid_user;
  62. }
  63. }
  64. }
  65. }
  66. }
  67. Display::display_header();
  68. if (!empty($message)) {
  69. if (!empty($user_to_show)) {
  70. if ($type == 'confirmation') {
  71. Display::display_confirmation_message($message.': <br />'.implode(', ', $user_to_show), false);
  72. } else {
  73. Display::display_warning_message($message.': '.implode(', ', $user_to_show));
  74. }
  75. } else {
  76. Display::display_error_message(get_lang('ErrorsWhenImportingFile'));
  77. }
  78. }
  79. $form->display();
  80. echo get_lang('CSVMustLookLike');
  81. echo '<blockquote>';
  82. echo '<pre>
  83. "id";
  84. "x";
  85. "y";
  86. </pre>
  87. ';
  88. echo '</blockquote>';
  89. Display::display_footer();