]> git.mjollnir.org Git - moodle.git/commitdiff
Cleaned up the script to fit coding guidelines better.
authormoodler <moodler>
Tue, 6 Jan 2004 02:32:43 +0000 (02:32 +0000)
committermoodler <moodler>
Tue, 6 Jan 2004 02:32:43 +0000 (02:32 +0000)
I haven't tested this yet, or touched the main parsing routine

admin/uploaduser.php

index 8ae0d511486a823e193ae33cbbbc7c301f7d862b..c624ca70a65a01d886f0a0be85b6647f7862f9f3 100755 (executable)
 <?PHP // $Id$\r
 \r
-//Bulk user registration script from a comma separated file\r
-//Returns list of users with their user ids\r
+//Bulk user registration script from a comma separated file\r
+//Returns list of users with their user ids\r
 \r
-require_once("../config.php");\r
-require_once("../lib/countries.php");\r
-require_once("lib.php");\r
+    require_once("../config.php");\r
 \r
+    optional_variable($numusers, 0);\r
 \r
-require_login();\r
+    require_login();\r
 \r
-if (!isadmin()) {\r
-  error("You must be an administrator to edit users this way.");\r
-}\r
-\r
-$notify = FALSE;\r
-\r
-// import users\r
-if ($filename = valid_uploaded_file($_FILES['userfile'])) {\r
-  optional_variable($numusers, 0);\r
-  \r
-  //Fix mac/dos newlines\r
-  $text = my_file_get_contents($filename);\r
-  $text = preg_replace('!\r\n?!',"\n",$text);\r
-  $fp = fopen($filename, "w");\r
-  fwrite($fp,$text);\r
-  fclose($fp);\r
-\r
-  $fp = fopen($filename, "r");\r
-\r
-  // make arrays of valid fields for error checking\r
-  $required = array("username" => 1, "password" => 1, \r
-                   "firstname" => 1, "lastname" => 1,\r
-                   "email" => 1);\r
-  $optionalDefaults = array("institution" => 1, "department" => 1, \r
-                           "city" => 1, "country" => 1,\r
-                           "lang" => 1, "timezone" => 1);\r
-  $optional = array("idnumber" => 1, "icq" => 1, \r
-                   "phone1" => 1, "phone2" => 1,\r
-                   "address" => 1, "url" => 1,\r
-                   "description" => 1, "mailformat" => 1, \r
-                   "htmleditor" => 1, "autosubscribe" => 1,\r
-                   "idnumber" => 1, "icq" => 1, \r
-                   "course1" => 1, "course2" => 1,\r
-                   "course3" => 1, "course4" => 1, \r
-                   "course5" => 1);\r
-\r
-  // --- get header (field names) ---\r
-  $header = split("\,", fgets($fp));\r
-  // check for valid field names\r
-  foreach ($header as $i => $h) {\r
-    $h = trim($h); $header[$i] = $h; // remove whitespace\r
-    if (!($required[$h] or $optionalDefaults[$h] or $optional[$h])) {\r
-      error("\"$h\" is not a valid field name.");\r
-    }\r
-    if ($required[$h]) {\r
-      $required[$h] = 2;\r
-    }\r
-  }\r
-  // check for required fields\r
-  foreach ($required as $key => $value) {\r
-    if ($value < 2) {\r
-      error("\"$key\" is a required field.");\r
+    if (!isadmin()) {\r
+        error("You must be an administrator to edit users this way.");\r
     }\r
-  }\r
-  $linenum = 2; // since header is line 1\r
-\r
-  while (!feof ($fp)) {\r
-    //Note: commas within a field should be encoded as &#44\r
-    //Last field, courseid, is optional. If present it should be the Moodle\r
-    //course id number for the course in which student should be initially enroled\r
-    $line = split("\,", fgets($fp));\r
-    foreach ($line as $key => $value) {\r
-      $record[$header[$key]] = trim($value);\r
+\r
+    if (! $site = get_site()) {\r
+        error("Could not find site-level course");\r
     }\r
-    if ($record[$header[0]]) {\r
-      // add a new user to the database\r
-      optional_variable($newuser, ""); \r
-\r
-      // add fields to object $user\r
-      foreach ($record as $name => $value) {\r
-       // check for required values\r
-       if ($required[$name] and !$value) {\r
-         error("Missing \"$name\" on line $linenum.");\r
-       }\r
-       // password needs to be encrypted\r
-       else if ($name == "password") {\r
-         $user->password = md5($value);\r
-       }\r
-       // normal entry\r
-       else {\r
-         $user->{$name} = $value;\r
-       }\r
-      }\r
-      $user->confirmed = 1;\r
-      $user->timemodified = time();\r
-      $linenum++;\r
-\r
-      if (! $user->id = insert_record("user", $user)) {\r
-        if (!$user = get_record("user", "username", "changeme")) {   // half finished user from another time\r
-          //Record not added - probably because user is already registered\r
-          //In this case, output userid from previous registration\r
-          //This can be used to obtain a list of userids for existing users\r
-          $error_uid = -1;\r
-          if ($user = get_record("user","username",$username)) {\r
-            $error_uid = $user->id;\r
-          }\r
-          $notifytext .= $error_uid . "," . $username . ",FAILED";\r
+\r
+    $streditmyprofile = get_string("editmyprofile");\r
+    $strnewuser = get_string("newuser");\r
+    $userfullname = $strnewuser;\r
+    $straddnewuser = get_string("importuser");\r
+    $stradministration = get_string("administration");\r
+    $strusers = get_string("users");\r
+    $strchoose = get_string("choose");\r
+    $struploadusers = get_string("uploadusers");\r
+    $strusersnew = get_string("usersnew");\r
+\r
+/// Print the header\r
+\r
+    print_header("$site->shortname: $struploadusers", $site->fullname, \r
+                 "<a href=\"index.php\">$stradministration</a> -> \r
+                  <a href=\"users.php\">$strusers</a> -> $struploadusers");\r
+\r
+\r
+/// If a file has been uploaded, then process it\r
+\r
+    if ($filename = valid_uploaded_file($_FILES['userfile'])) {\r
+        $notifytext = '';\r
+\r
+        //Fix mac/dos newlines\r
+        $text = my_file_get_contents($filename);\r
+        $text = preg_replace('!\r\n?!',"\n",$text);\r
+        $fp = fopen($filename, "w");\r
+        fwrite($fp,$text);\r
+        fclose($fp);\r
+\r
+        $fp = fopen($filename, "r");\r
+\r
+        // make arrays of valid fields for error checking\r
+        $required = array("username" => 1, \r
+                          "password" => 1, \r
+                          "firstname" => 1, \r
+                          "lastname" => 1,\r
+                          "email" => 1);\r
+        $optionalDefaults = array("institution" => 1, \r
+                                  "department" => 1, \r
+                                  "city" => 1, \r
+                                  "country" => 1,\r
+                                  "lang" => 1, \r
+                                  "timezone" => 1);\r
+        $optional = array("idnumber" => 1, \r
+                          "icq" => 1, \r
+                          "phone1" => 1, \r
+                          "phone2" => 1,\r
+                          "address" => 1, \r
+                          "url" => 1,\r
+                          "description" => 1, \r
+                          "mailformat" => 1, \r
+                          "htmleditor" => 1, \r
+                          "autosubscribe" => 1,\r
+                          "idnumber" => 1, \r
+                          "icq" => 1, \r
+                          "course1" => 1, \r
+                          "course2" => 1,\r
+                          "course3" => 1, \r
+                          "course4" => 1, \r
+                          "course5" => 1);\r
+\r
+        // --- get header (field names) ---\r
+        $header = split("\,", fgets($fp,1024));\r
+        // check for valid field names\r
+        foreach ($header as $i => $h) {\r
+            $h = trim($h); $header[$i] = $h; // remove whitespace\r
+            if (!($required[$h] or $optionalDefaults[$h] or $optional[$h])) {\r
+                error("\"$h\" is not a valid field name.", 'uploaduser.php');\r
+            }\r
+            if ($required[$h]) {\r
+                $required[$h] = 2;\r
+            }\r
+        }\r
+        // check for required fields\r
+        foreach ($required as $key => $value) {\r
+            if ($value < 2) {\r
+                error("\"$key\" is a required field.", 'uploaduser.php');\r
+            }\r
+        }\r
+        $linenum = 2; // since header is line 1\r
+\r
+        while (!feof ($fp)) {\r
+            //Note: commas within a field should be encoded as &#44\r
+            //Last field, courseid, is optional. If present it should be the Moodle\r
+            //course id number for the course in which student should be initially enroled\r
+            $line = split("\,", fgets($fp,1024));\r
+            foreach ($line as $key => $value) {\r
+                $record[$header[$key]] = trim($value);\r
+            }\r
+            if ($record[$header[0]]) {\r
+                // add a new user to the database\r
+                optional_variable($newuser, ""); \r
+\r
+                // add fields to object $user\r
+                foreach ($record as $name => $value) {\r
+                    // check for required values\r
+                    if ($required[$name] and !$value) {\r
+                        error("Missing \"$name\" on line $linenum.", 'uploaduser.php');\r
+                    }\r
+                    // password needs to be encrypted\r
+                    else if ($name == "password") {\r
+                        $user->password = md5($value);\r
+                    }\r
+                    // normal entry\r
+                    else {\r
+                        $user->{$name} = $value;\r
+                    }\r
+                }\r
+                $user->confirmed = 1;\r
+                $user->timemodified = time();\r
+                $linenum++;\r
+                $username = $user->username;\r
+                $addcourse[0] = $user->course1;\r
+                $addcourse[1] = $user->course2;\r
+                $addcourse[2] = $user->course3;\r
+                $addcourse[3] = $user->course4;\r
+                $addcourse[4] = $user->course5;\r
+                $courses = get_courses("all");\r
+                for ($i=0; $i<5; $i++) {$courseid[$i]=0;}\r
+                foreach ($courses as $course) {\r
+                    for ($i=0; $i<5; $i++) {\r
+                        if ($course->shortname == $addcourse[$i]) {$courseid[$i] = $course->id;}\r
+                    }\r
+                }\r
+                for ($i=0; $i<5; $i++) {\r
+                    if ($addcourse[$i] && !$courseid[$i]) {\r
+                        $notifytext .= "-1," . $addcourse[$i] . " unknown course<br>\n";\r
+                    }\r
+                }\r
+                if (! $user->id = insert_record("user", $user)) {\r
+                    if (!$user = get_record("user", "username", "changeme")) {   // half finished user from another time\r
+                        //Record not added - probably because user is already registered\r
+                        //In this case, output userid from previous registration\r
+                        //This can be used to obtain a list of userids for existing users\r
+                        $error_uid = -1;\r
+                        if ($user = get_record("user","username",$username)) {\r
+                            $error_uid = $user->id;\r
+                        }\r
+                        if ($error_uid != -1) {\r
+                            $notifytext .= $error_uid . "," . $username . ",user not added - already registered";\r
+                        } else {\r
+                            $notifytext .= $error_uid . ",failed to add user " . $username . " unknown error";\r
+                        } \r
+                    }\r
+                } elseif ($user->username != "changeme") {\r
+                    $notifytext .= $user->id . "," . $user->username . ",";\r
+                    $numusers++;\r
+                }\r
+                $lbreak = 1;\r
+                for ($i=0; $i<5; $i++) {\r
+                    if ($courseid[$i]) {\r
+                        if (enrol_student($user->id, $courseid[$i])) {\r
+                            $lbreak = 0;\r
+                            $notifytext .= ",enroled in course $addcourse[$i]<br>\n";\r
+                        } else {\r
+                            $notifytext .= ",error: enrolment in course $addcourse[$i] failed<br>\n";\r
+                        }\r
+                    }\r
+                }\r
+                if ($lbreak) {$notifytext .= "<br>\n";}\r
+                unset ($user);\r
+            }\r
         }\r
-      } elseif ($user->username != "changeme") {\r
-        $notifytext .= $user->id . "," . $user->username . ",";\r
-        $numusers++;\r
-      }\r
-      if ($courseid) {\r
-        if (enrol_student($user->id, $courseid)) {\r
-         $notifytext .= ",enroled in course $courseid<br>\n";\r
-       } else {\r
-         $notifytext .= ",error: enrolment in course $courseid failed<br>\n";\r
-       }\r
-      } else {$notifytext .= "<br>\n";}\r
-      unset ($user);\r
+        fclose($fp);\r
+        notify("$strusersnew: $numusers");\r
+\r
+        echo '<hr />';\r
     }\r
-  }\r
-  $notify = true;\r
-  fclose($fp);\r
-}\r
 \r
-// print page\r
-if (! $site = get_site()) {\r
-  error("Could not find site-level course");\r
-}\r
-$streditmyprofile = get_string("editmyprofile");\r
-$strnewuser = get_string("newuser");\r
-$userfullname = $strnewuser;\r
-$straddnewuser = get_string("importuser");\r
-$stradministration = get_string("administration");\r
-\r
-print_header("$site->shortname: $straddnewuser", "$site->fullname",\r
-             "<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> ->\r
-                      $straddnewuser", "");\r
-if ($notify) {\r
-  notify("$notifytext <br>Added $numusers New Users");\r
-}\r
-// output form\r
-echo "<form METHOD=\"post\" ENCTYPE=\"multipart/form-data\" action=\"uploaduser.php\">\n".\r
-"<br><input type=\"submit\" value=\"Import Users\">".\r
-"<INPUT type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"get_max_upload_file_size()\">\n".\r
-"<input type=\"file\" name=\"userfile\" size=30>\n".\r
-"</form></br>";\r
+/// Print the form\r
+    print_heading_with_help($struploadusers, 'uploadusers');\r
+\r
+    $maxuploadsize = get_max_upload_file_size();\r
+    echo '<center>';\r
+    echo '<form METHOD="post" enctype="multipart/form-data" action="uploaduser.php">'.\r
+         $strchoose.':<input type="hidden" name="MAX_FILE_SIZE" value="'.$maxuploadsize.'">'.\r
+         '<input type="file" name="userfile" size=30>'.\r
+         '<input type="submit" value="'.$struploadusers.'">'.\r
+         '</form></br>';\r
+    echo '</center>';\r
+\r
+    print_footer($course);\r
+\r
 \r
-print_footer($course);\r
 \r
 function my_file_get_contents($filename, $use_include_path = 0) {\r
-  $data = ""; // just to be safe. Dunno, if this is really needed\r
-  $file = @fopen($filename, "rb", $use_include_path);\r
-  if ($file) {\r
-    while (!feof($file)) $data .= fread($file, 1024);\r
-    fclose($file);\r
-  }\r
-  return $data;\r
+    $data = ""; // just to be safe. Dunno, if this is really needed\r
+    $file = @fopen($filename, "rb", $use_include_path);\r
+    if ($file) {\r
+        while (!feof($file)) $data .= fread($file, 1024);\r
+        fclose($file);\r
+    }\r
+    return $data;\r
 }\r
 \r
 ?>\r