Moodle消息阻止不显示新消息

时间:2015-06-16 13:37:41

标签: php moodle

我正在使用Moodle 2.9。

我已将消息块添加到moodle站点并将其显示在站点的每个页面上。但是在用户收到系统上的新消息(他们在他们的个人资料的消息区域中显示)之后,该块只是说“没有消息等待”??

这个块有问题,还是在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);

1 个答案:

答案 0 :(得分:0)

解决

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

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

的moodle \块\消息\ 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));