您可以尝试创建自己的 PHP 脚本:解析 XML 文件并使用内部 moodle 函数来解决问题。
解决这些问题的基本思路
1)添加用户:
在 user/lib.php 中有一个方法:user_create_user($user)。只需包含该 lib.php 并找出用户对象中需要哪些信息。
2) 创建课程
course/lib.php 中有一个方法:create_course($data, $editoroptions)。只需包含该 lib.php 并找出数据数组中需要哪些信息。
3) 注册用户
我创建了以下方法来为我完成这项工作。
// enroll student to course (roleid = 5 is student role)
function enroll_to_course($courseid, $userid, $roleid=5, $extendbase=3, $extendperiod=0) {
global $DB;
$instance = $DB->get_record('enrol', array('courseid'=>$courseid, 'enrol'=>'manual'), '*', MUST_EXIST);
$course = $DB->get_record('course', array('id'=>$instance->courseid), '*', MUST_EXIST);
$today = time();
$today = make_timestamp(date('Y', $today), date('m', $today), date('d', $today), 0, 0, 0);
if(!$enrol_manual = enrol_get_plugin('manual')) { throw new coding_exception('Can not instantiate enrol_manual'); }
switch($extendbase) {
case 2:
$timestart = $course->startdate;
break;
case 3:
default:
$timestart = $today;
break;
}
if ($extendperiod <= 0) { $timeend = 0; } // extendperiod are seconds
else { $timeend = $timestart + $extendperiod; }
$enrolled = $enrol_manual->enrol_user($instance, $userid, $roleid, $timestart, $timeend);
add_to_log($course->id, 'course', 'enrol', '../enrol/users.php?id='.$course->id, $course->id);
return $enrolled;
}