○×問題へのパッチ

○×問題へのパッチ

- touru inaba の投稿
返信数: 2
はじめまして。inabaと言います。

私はおそらくMoodleを特殊用途に使ってまして、自分の資格試験のために、過去問題を
Quizにしています。ほとんどが○×問題です。

さて、オリジナルでは少々都合が悪い部分があったので、ソースに手を加えています。

どういうところかと言いますと、まずオリジナルの動作を書きます。

この簡単な例は回答後です。

moodle_tf11.JPG

なお、「前回の回答を反映させる」にして「問題をシャッフルする」にしています。
次にこのテストをもう一度受験します。こう見えます。

moodle_tf3.JPG

ここでまず問題なのは「どこの箇所で間違ったか」がわからないことです。
次に問題なのは、どこで間違ったかを覚えていても、上のようにすでに前回の回答の
○か×かへのチェックがついてしまっているので、すぐに正答がわかってしまうことです。

もちろん「前回の回答を反映させる」にしておかなければ2番目の問題は解決なのですが、
間違っていない箇所では正解を直ちに知りたいのです。

そこで、私はPHPはほとんど素人なので、けっこう苦労しましたが

question/type/truefalse/display.html
question/type/truefalse/questiontype.php

に手を加えて再受験のときに以下のように表示されるようにしました。

moodle_tf_new.JPG

つまり、間違った箇所は色を変え、そこのチェックでは前回のを反映させず、空のままにしておきます。
(なお、旗マークの機能が気に入ったので、2.0のdev版を使ってます)。

この例では三つしか問題がないので、あまりありがたい感じがしないかもしれませんが、
実際には一つのグループに500問くらい入っているので、けっこう便利だなと思ってます。

さて、ここでようやく皆様に質問があります。

1) 上のようなことはソースに手を加えなくてもできるのでしょうか?
2) もしできないとすると、ソースに手を加えなくてもplug-inなどで実現できるでしょうか?
3) そもそもこんな機能は他で役に立つものでしょうか?

他でも役に立つということであれば、メインストリームに入るように試みるつもりですが、
その前に皆様のご意見をうかがいたいです。


touru inaba への返信

Re: ○×問題へのパッチ

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators
詳細なご説明ありがとうございます。
プログラムのカスタマイズも含めて、かなり高度なことをされていますね。笑顔

> (なお、旗マークの機能が気に入ったので、2.0のdev版を使ってます)。

pix/i/unflagged.pngですね。

> 1) 上のようなことはソースに手を加えなくてもできるのでしょうか?

残念ですが、ソースコードに手を加える必要があります。

> 2) もしできないとすると、ソースに手を加えなくてもplug-inなどで実現できるでしょうか?

現在のところ、Modules and pluginsには登録されていないようです。

> 3) そもそもこんな機能は他で役に立つものでしょうか?

日本国内も含めて、このような機能を欲しい方は、いらっしゃると思います。
前回の受験で選択した内容が表示されない場合、「直近の解答内容を反映させる」オプションの意味が薄れると思いますので、小テスト設定画面を下記のように変更して、反映方法を選択できるようにできれば素晴らしいと思います。

[ 変更前 ]
オプション: 直近の解答内容を反映させる
選択肢: Yes、No

[ 変更後 ]
オプション: 直近の解答内容を反映させる
選択肢: 反映させない、すべて反映させる、正解のみ反映させる、不正解のみ反映させる

Mitsuhiro Yoshida への返信

Re: ○×問題へのパッチ

- touru inaba の投稿
Yoshidaさん、コメントありがとうございました。

> 現在のところ、Modules and pluginsには登録されていないようです。

すみません、質問の意図は、「この機能がpluginで実装できる類いのものなのか」
であって、現在そういうpluginがあるかどうかではなかったです。

他のpluginは使ってないので、どういうことができるかがよくわかってないのですが。

> 小テスト設定画面を下記のように変更して、反映方法を選択できるようにできれば素晴らしいと思います。

なるほど、たしかに私も設定でこの機能の有効・無効を切り換えられるようにしなければと
思っていました。もう少しソースをいじってみます。