3178 次
2 に答える
2
独自の PHP スクリプトを作成してみてください。XML ファイルを解析し、内部のムードル関数を使用して問題を解決してください。
これらの問題を解決するための基本的な考え方
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;
}
于 2013-10-31T20:39:04.417 に答える
0
GUI を使用する必要はありません。登録/認証プラグインを作成してこれを実現するか、組み込みプラグインのいずれかを使用できます。私は ims 登録プラグインにはあまり詳しくありませんが、標準の LDAP/データベース プラグインには、この同期プロセスを自動化するために使用できるスクリプトがあります。
例を参照してください: enrol/database/cli/sync.php
于 2012-07-20T03:52:06.617 に答える