Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Messaging: Difference between revisions

From MoodleDocs
No edit summary
Line 16: Line 16:


  $eventdata = new object();
  $eventdata = new object();
  $eventdata->component        = 'message';
  $eventdata->component        = "message";
  $eventdata->name            = 'instantmessage';
  $eventdata->name            = "instantmessage";
  $eventdata->userfrom        = $userfrom;
  $eventdata->userfrom        = $userfrom;
  $eventdata->userto          = $userto;
  $eventdata->userto          = $userto;
Line 23: Line 23:
  $eventdata->fullmessage      = $message;
  $eventdata->fullmessage      = $message;
  $eventdata->fullmessageformat = FORMAT_PLAIN;
  $eventdata->fullmessageformat = FORMAT_PLAIN;
  $eventdata->fullmessagehtml  = '';
  $eventdata->fullmessagehtml  = "";
  $eventdata->smallmessage    = '';  
  $eventdata->smallmessage    = "";  


Then we post the object as an event and forget about it:
Then we post the object as an event and forget about it:


  events_trigger('message_send', $eventdata);
  events_trigger('message_send', $eventdata);

Revision as of 17:42, 25 September 2008

The Messageing API is a new core system in Moodle to allow communication of messages to users. It's based on the events system, so a module will trigger an event with the attached message data and the message output processor will try to deliver the message to the correct place.

Overview

Setting up a provider

  • db/messages.php (list the types of providers)
  • /lang/XX/messages/providercomponent_providername.html (documentation)

...

Setting up a processor

Sending a Message

Whenever you need to send a message, it should “tell” the system about it. So, using the message as an example, we first define an object as follows:

$eventdata = new object();
$eventdata->component        = "message";
$eventdata->name             = "instantmessage";
$eventdata->userfrom         = $userfrom;
$eventdata->userto           = $userto;
$eventdata->subject          = "IM";
$eventdata->fullmessage      = $message;
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml  = "";
$eventdata->smallmessage     = ""; 

Then we post the object as an event and forget about it:

events_trigger('message_send', $eventdata);