2015-06-16 224 views
0

我正在使用Moodle 2.9。Moodle消息塊未顯示新消息

我已經將消息塊添加到了一個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); 
+0

好吧,想必喲您是否已在「高級功能」中選中「啓用消息系統」以發送消息? – iamgory

+0

確實啓用了 –

回答

0

解決

這些消息僅阻止顯示了設置爲不通知消息。所以通知對象需要設置爲「0」,它不會在Moodle中顯示彈出窗口,但會顯示在該塊中。

或者你也可以改變塊本身在這裏,讓所有的信息傳遞到塊不管通知設置是什麼: -

的Moodle \塊\郵件\ block_messages.php

更改SQL上線58從查詢 -

$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));