これらは、開発者向けドキュメントです - https://docs.moodle.org/dev/Main_Page
はあなたが開発するために必要なプラグインをどの依存 - https://docs.moodle.org/dev/Plugin_types
もちろん、その一部が、あなたは活動モジュールを開発する必要がある場合 - https://docs.moodle.org/dev/Activity_modules
かそうでない場合は、ローカルプラグインが必要になります。https://docs.moodle.org/dev/Local_plugins
更新日:
ローカルプラグインを使用して、クイズイベントの1つに応答します。
https://docs.moodle.org/dev/Event_2#Event_observers
これは概要です:
地元のプラグインを作成する - https://docs.moodle.org/dev/Local_plugins
を次にlocal/yourpluginname/db/events/php
にするとき
defined('MOODLE_INTERNAL') || die();
$observers = array(
array(
'eventname' => '\mod_quiz\event\attempt_submitted',
'includefile' => '/local/yourpluginname/locallib.php',
'callback' => 'local_yourpluginname_attempt_submitted',
'internal' => false
),
);
のようなものを持っている。これは、attempt_submitted
イベントに応答しますユーザーはクイズを送信します。私はこれがあなたが使用する必要があるイベントであると推測しています。そうでない場合には、他の人はここに/mod/quiz/classes/event/
その後/local/yourpluginname/locallib.php
であるあなたが始める必要がある
/**
* Handle the quiz_attempt_submitted event.
*
* @global moodle_database $DB
* @param mod_quiz\event\attempt_submitted $event
* @return boolean
*/
function local_yourpluginname_attempt_submitted(mod_quiz\event\attempt_submitted $event) {
global $DB;
$course = $DB->get_record('course', array('id' => $event->courseid));
$attempt = $event->get_record_snapshot('quiz_attempts', $event->objectid);
$quiz = $event->get_record_snapshot('quiz', $attempt->quiz);
$cm = get_coursemodule_from_id('quiz', $event->get_context()->instanceid, $event->courseid);
if (!($course && $quiz && $cm && $attempt)) {
// Something has been deleted since the event was raised. Therefore, the
// event is no longer relevant.
return true;
}
// Your code here to send the data to an external server.
return true;
}
のようなものを持っています。
ありがとう、私はクイズでユーザーの行動を調整し、immideatly外部サーバーに送信するプラグインを作成したいと思います。それはアクティビティプラグインですか?また、作成後にプラグインをエクスポートする方法は?ちょうどそれを置く.zipですか? –
"ユーザーの操作を制御する"という意味がわかりません - ユーザーがクイズを送信したときに外部サーバーにデータを送信しますか? –
ええ、または質問を選択してクイズで質問する... –