Moodle 消息块不显示新消息

Moodle Messages Block not showing new messages

我正在使用 Moodle 2.9。

我已将消息块添加到 moodle 网站并使其显示在该网站的每个页面上。但是在用户收到系统上的新消息后(他们显示在他们个人资料的消息区域),该块只是说 "No messages waiting"??

这个块有问题还是moodle中有什么设置可以激活这个?

任何关于这方面的建议都很棒!

似乎直接通过消息区域发送的消息出现在块中,但我正在使用 Activity Mod 中的 message_send() 函数并且这些消息确实没有出现在块中,但它们出现在消息部分?有没有我遗漏的代码?

$message = new \core\message\message();

$message->component = 'moodle';

$message->name = 'instantmessage';

$message->userfrom = $userfrom;

$message->userto = $userto;

$message->subject = 'Test';

$message->fullmessage = 'Test.';

$message->fullmessageformat = FORMAT_HTML;

$message->fullmessagehtml = '<p>Text</p>';

$message->smallmessage = '';

$message->notification = '1';

$message->contexturl = '';

$message->contexturlname = '';

$message->replyto = "";

$content = '';


$messageid = message_send($message);

已解决

消息块仅显示设置为不通知的消息。所以通知对象需要设置为“0”,它不会在Moodle中显示弹出窗口,但会出现在块中。

或者您可以在此处更改块本身,以允许所有消息传递到块中,无论通知设置是什么:-

moodle\blocks\messages\block_messages.php

将第 58 行的 SQL 查询更改为:-

$users = $DB->get_records_sql("SELECT $ufields, COUNT(m.useridfrom) AS count
                                         FROM {user} u, {message} m
                                        WHERE m.useridto = ? AND u.id = m.useridfrom AND m.notification = 0
                                     GROUP BY $ufields", array($USER->id));

$users = $DB->get_records_sql("SELECT $ufields, COUNT(m.useridfrom) AS count
                                         FROM {user} u, {message} m
                                        WHERE m.useridto = ? AND u.id = m.useridfrom
                                     GROUP BY $ufields", array($USER->id));