グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- Shota Abe の投稿
返信数: 6

日頃から大変お世話になっております。

https://moodle.org/mod/forum/discuss.php?d=336492でご教授いただき、
{$a->result}で小テストの結果、{$a->result2}でログイン履歴を小テストモジュールとフィードバックモジュールが
完了した際に教師に送られるメールに盛り込んでおります。

グループ単位で通知が行くようにしているのですが、グループ内に「教師」「編集権限のない教師」が2人以上いると、
{$a->result}と{$a->result2}がそのまま文字列として表示されてしまいます。
(教師Aには小テストの結果、ログイン履歴が盛り込まれたメールが届くが、教師Bには{$a->result}と{$a->result2}がそのまま文字列として表示されたメールが届く)

フィードバックモジュールが完了した際のメールのみこのような現象が起こり、小テストモジュールが完了したメールは全ての教師に小テストの結果、ログイン履歴が盛り込まれたメールが届きます。

大学に行かなければプログラムを載せることが出来ないのですが、何か思い当たる点などはわかりますでしょうか。

分かりづらい質問で申し訳ありませんがよろしくお願い致します。
こちらも原因を探し何か分かった際はこちらに書かせて頂きます。

添付画像の1枚目がちゃんと送られた場合で、2枚目が文字列としてそのまま表示されてしまったものです。

添付 スクリーンショット 2016-12-03 21.00.54.png
添付 スクリーンショット 2016-12-03 21.01.08.png
Shota Abe への返信

Re: グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- Shota Abe の投稿
プログラムを添付させて頂きます。

d.phpの $info->result; と $info->result2 = $result2;
が何か影響しているのではないかと思い見ております。

宜しくお願い致します。

a~d.phpはlib.phpにrequireしているファイルになります。


Shota Abe への返信

Re: グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

もしかしたら、下記ページが今回の問題解決のヒントになるのではないでしょうか。

[ループ内のrequire_once - Qiita]
http://qiita.com/SOJO/items/9133469afe9e0d87eee3

Mitsuhiro Yoshida への返信

Re: グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- Shota Abe の投稿

Yoshidaさま

ご返信ありがとうございます。

教えて頂いたサイトを参考にrequire_onceの部分をrequireに直しております。

require_once($CFG->dirroot . '/grade/querylib.php');
require_once($CFG->libdir . '/gradelib.php');

require dirname(__FILE__). '/grade/querylib.php';
require dirname(__FILE__). '/lib/gradelib.php';

のように変更し、絶対パスで指定したのですがエラーが出てしまいます。
いくつか他のサイトも参考にrequire部分を書いたのですが、どこか間違っているのでしょうか。

趣旨とは異なる質問になってしまって申し訳ありませんがご教授お願い致します。

Shota Abe への返信

Re: グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- Mitsuhiro Yoshida の投稿
画像 Developers 画像 Particularly helpful Moodlers 画像 Translators

下記のように画面上にパスを表示されてはいかがでしょうか。

echo dirname(__FILE__). '/grade/querylib.php';
echo '<br />';
echo dirname(__FILE__). '/lib/gradelib.php';

Shota Abe への返信

Re: グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- udagawa mitsuru の投稿
うだがわです

問題が発生しているのは require_once() がループ中で複数回呼ばれないためなので、require_once($CFG->dirroot.'/mod/feedback/plugin_feedback/d.php') を require($CFG->dirroot.'/mod/feedback/plugin_feedback/d.php') に置き換えれば済むと思います。すべての require_once() に問題があるわけではありません。

評点平均: お役立ち度: ★★★★★★★ (2)
udagawa mitsuru への返信

Re: グループ内に「教師」「編集権限のない教師」が2人以上いるとメールの内容が変わってしまう

- Shota Abe の投稿
うだがわさま

ご返信ありがとうございます。

全てのrequire_once()に問題があると思っておりました。
ご教授頂いた内容に取り組んでみます。

大変ありがとうござます。
結果をまたこちらに書かせていただきます。