2016-06-02 6 views
0

私はテスト中に何をしているのかを制御したいのですが(回答をクリックし、テストを終了するなど)出来ますか?Moodleプラグインを作成する

私はこのタスクのために、プラグインを作成する必要があると思いますか?私は正しい? そして貴重なコミュニティ、あなたは私にいくつかの資料を手伝ってくれますか?プラグインを開発する方法は?たぶん記事の一部のサイトをお勧めしますか?今私はこのプロセスを理解していません。

例えば、私はプラグインがMoodleにインストールする必要があることを知っていますか?しかし、どこにプラグインをインストールする前に作成しますか?ムードルでも?しかし、パッケージをインストールするためにMoodleプラグインでどのようにエクスポートが作成されましたか?

私にとって非常に重要な質問です - プラグインを使ってインストールパッケージを作成する方法は、他のユーザーがインストールすることができます。

大変申し訳ありませんが、ご質問ありがとうございました。

答えて

3

これらは、開発者向けドキュメントです - 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; 
} 

のようなものを持っています。

+0

ありがとう、私はクイズでユーザーの行動を調整し、immideatly外部サーバーに送信するプラグインを作成したいと思います。それはアクティビティプラグインですか?また、作成後にプラグインをエクスポートする方法は?ちょうどそれを置く.zipですか? –

+0

"ユーザーの操作を制御する"という意味がわかりません - ユーザーがクイズを送信したときに外部サーバーにデータを送信しますか? –

+0

ええ、または質問を選択してクイズで質問する... –

関連する問題