[root@dywang grade]# diff -urNwbBE /var/www/html/moodle/grade/import/csv/index.php import/csv/index.php
--- /var/www/html/moodle/grade/import/csv/index.php 2012-06-26 01:14:18.000000000 +0800
+++ import/csv/index.php 2016-06-24 06:45:06.296821882 +0800
@@ -226,6 +226,7 @@
$newgradeitems = array(); // temporary array to keep track of what new headers are processed
$status = true;
+ $enrols = $DB->get_records('enrol', array('courseid' => $course->id, 'roleid' => "5"));
while (!feof ($fp)) {
// add something
$line = explode($csv_delimiter, fgets($fp, GRADE_CSV_LINE_LENGTH));
@@ -265,7 +266,7 @@
}
switch ($t0) {
- case 'userid': //
+ /* case 'userid': //
if (!$user = $DB->get_record('user', array('id' => $value))) {
// user not found, abort whole import
import_cleanup($importcode);
@@ -285,7 +286,16 @@
}
$studentid = $user->id;
break;
- case 'useremail':
+ case 'username':
+ if (!$user = $DB->get_record('user', array('username' => $value))) {
+ import_cleanup($importcode);
+ echo $OUTPUT->notification("user mapping error, could not find user with username \"$value\"");
+ $status = false;
+ break 3;
+ }
+ $studentid = $user->id;
+ break;
+ */ case 'useremail':
if (!$user = $DB->get_record('user', array('email' => $value))) {
import_cleanup($importcode);
echo $OUTPUT->notification("user mapping error, could not find user with email address \"$value\"");
@@ -294,15 +304,31 @@
}
$studentid = $user->id;
break;
- case 'username':
- if (!$user = $DB->get_record('user', array('username' => $value))) {
+ case 'firstname':
+ if (!$user = $DB->get_record('user', array('firstname' => $value))) {
import_cleanup($importcode);
- echo $OUTPUT->notification("user mapping error, could not find user with username \"$value\"");
+ echo $OUTPUT->notification("user mapping error, could not find user with firstname \"$value\"");
$status = false;
break 3;
}
$studentid = $user->id;
break;
+ case 'lastname':
+ if (!$users = $DB->get_records('user', array('lastname' => $value))) {
+ import_cleanup($importcode);
+ echo $OUTPUT->notification("user mapping error, could not find user with lastname \"$value\"");
+ $status = false;
+ break 3;
+ }
+ foreach($users as $user){
+ foreach($enrols as $enrol){
+ if ($DB->get_record('user_enrolments', array('enrolid' => $enrol->id ,'userid' => $user->id))) {
+ $studentid = $user->id;
+ break;
+ }
+ }
+ }
+ break;
case 'new':
// first check if header is already in temp database