初めまして。Moodleのモジュール開発に勤しんでいる大学生です。宜しくお願いします。
自作のモジュールにおける学生の評価を、コースの評定に加えたいのですが、方法が分かりません。小テストのモジュールを解析して調べようと思ったのですが、私にはハードルが高すぎました。データベースのグレード関連にレコードを追加するだけかと思うのですが、ヒントをお持ちの方がおりましたら御指南頂けますでしょうか?宜しくお願いします。
初めまして。Moodleのモジュール開発に勤しんでいる大学生です。宜しくお願いします。
自作のモジュールにおける学生の評価を、コースの評定に加えたいのですが、方法が分かりません。小テストのモジュールを解析して調べようと思ったのですが、私にはハードルが高すぎました。データベースのグレード関連にレコードを追加するだけかと思うのですが、ヒントをお持ちの方がおりましたら御指南頂けますでしょうか?宜しくお願いします。
有り難う御座います。うまくいきましたら、ご報告させて頂きます。
>mod/(モジュール名)/lib.php に
>関数: (モジュール名)_grade_item_update
>を用意して、grade_update (in lib/gradelib.php) 関数に渡すパラメタを
>セットして、grade_update 関数を呼び出すようにしています。
>これを、関数: (モジュール名)_add_instanceから呼び出すと、
>モジュール追加時に、評点のデータベースも更新されると思います。
ここまでは上手くいったのですが、データベースは mdl_grade_grades でしょうか、
評点を登録するAPIが分かりません。直接いじってしまうのは、仕様上
まずいのではないかと思うのですが、APIは存在するのでしょうか?
grade_update 等を含め、こういった様々なAPIを一覧化しているようなドキュメントは
存在するのでしょうか?現存するドキュメントでは分からない部分が多いのですが、
私の力不足でしょうか。。。
宜しくお願いします。
度々のご指導有り難う御座います。色々と試行錯誤しているのですが、どうもうまくいきません。
>関数「assignment_grade_item_update」を使って、moodleの評点に流し込んでいると思います。
このモジュールの assignment_grade_item_update 関数においては、grade_items にレコードを登録する以外に機能が存在するようには理解できないのですが、評点にレコードを追加する部分というのは、どの辺りが該当するのでしょうか?
すぐ上の関数、assignment_update_grades において、モジュール個々の評点DBから評点を読み込んできて… $assignment に登録を… 辺りが関係しているのでしょうか?
うまく解読が出来ません。スキル不足で恐縮です。ヒントを頂けますでしょうか?宜しくお願いいたします。
出来ました!
度々のご指導、本当に有り難う御座いました。心から感謝しております。
まだ、$grades=NULL の場合と $grades に評点が入ってる場合で、自動的に場合分けをして実行する辺りが上手くいってませんが、何とか頑張ってみます。
***_add_instance($***) の中で ***_grade_item_update($***) を呼び出す場合に渡される $*** と、自作モジュール内から ***_grade_item_update($***) を呼び出す場合では、$***->id が異なるようで、新たな評点枠が作られてしまいまして…; また、前者については、評定の各モジュールの題名からモジュールへリンクが貼られているような形になっていますが、そのリンクが貼られず…だったりと、細かいバグ(ミス)が多々発生しています;
今のところは、$grades=NULL を使用せずに、直接評点を書き込む形にしています。評点枠を予め作っておかなくても、正常に枠が生成されるようで、また上記のリンクも貼られています。
まだまだ勉強が必要のようです。重ね重ね、有り難う御座いました。