$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
//Everything is finished stop backup_sche_running
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
\ No newline at end of file
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
redirect($CFG->wwwroot, get_string("reviewnotify", "enrol_authorize"), '30');
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
if (!empty($CFG->enrol_mailadmins)) {
$a = new stdClass;
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
if (!empty($CFG->enrol_mailadmins)) {
$eventdata = new object();
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
// Send emails to students about which courses have enrolled.
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
mtrace(" users who have 'enrol/authorize:uploadcsv' were mailed");
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
// Email to payment managers
if (empty($CFG->an_emailexpiredteacher)) {
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
function send_welcome_messages($orderdata)
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
while ($ei);
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
/// Send welcome messages to users
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
if (!empty($CFG->enrol_mailteachers) && $teachers) {
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
$this->log .= "Error unlinking file $filename\n";
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
} // end of if(file_exists)
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
$this->log_line('Notification email sent to administrator.');
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
message_paypal_error_to_admin("Payment pending", $data);
die;
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
if (!empty($CFG->enrol_mailadmins)) {
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
redirect($CFG->wwwroot .'/course/', 'Message sent, thanks', 3);
exit;
/// Add libraries
require_once($CFG->libdir.'/ddllib.php');
require_once($CFG->libdir.'/xmlize.php');
-require_once($CFG->libdir.'/messagelib.php'); // Messagelib functions
define('INSECURE_DATAROOT_WARNING', 1);
define('INSECURE_DATAROOT_ERROR', 2);
$handlers = array (
-/* Messaging required parameters (object):
- * modulename -
- * userfrom
- * userto
- * subject
- * fullmessage - the full message in a given format
- * fullmessageformat - the format if the full message (FORMAT_MOODLE, FORMAT_HTML, ..)
- * fullmessagehtml - the full version (the message processor will choose with one to use)
- * smallmessage - the small version of the message
- */
-
- 'message_send' => array (
- 'handlerfile' => '/lib/messagelib.php',
- 'handlerfunction' => 'message_send_handler',
- 'schedule' => 'instant'
- ),
-
/*
* portfolio queued event - for non interactive file transfers
*/
/**
* messagelib.php - Contains generic messaging functions for the message system
*
- * @package moodlecore
+ * @package moodlecore
* @copyright Luis Rodrigues and Martin Dougiamas
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
-/** TIMETOSHOWUSERS = 300 */
-define('TIMETOSHOWUSERS', 300);
-
/**
- * Triggered when a message provider wants to send a message.
+ * Called when a message provider wants to send a message.
* This functions checks the user's processor configuration to send the given type of message,
* then tries to send it.
- * @param object $eventdata information about the message (origin, destination, type, content)
+ *
+ * Required parameter $eventdata structure:
+ * modulename -
+ * userfrom
+ * userto
+ * subject
+ * fullmessage - the full message in a given format
+ * fullmessageformat - the format if the full message (FORMAT_MOODLE, FORMAT_HTML, ..)
+ * fullmessagehtml - the full version (the message processor will choose with one to use)
+ * smallmessage - the small version of the message
+ *
+ * @param object $eventdata information about the message (modulename, userfrom, userto, ...)
* @return boolean success
*/
-function message_send_handler($eventdata){
+function message_send($eventdata) {
global $CFG, $DB;
+ //TODO: this function is very slow and inefficient, it would be a major bottleneck in cron processing, this has to be improved in 2.0
+ // probably we could add two parameters with user messaging preferences and we could somehow preload/cache them in cron
+ //TODO: we need to solve problems with database transactions here somehow
+
if (isset($CFG->block_online_users_timetosee)) {
$timetoshowusers = $CFG->block_online_users_timetosee * 60;
} else {
- $timetoshowusers = TIMETOSHOWUSERS;
+ $timetoshowusers = 300;
}
/// Work out if the user is logged in or not
/// When a user doesn't have settings none gets return, if he doesn't want contact "" gets returned
$processor = get_user_preferences('message_provider_'.$eventdata->component.'_'.$eventdata->name.'_'.$userstate, NULL, $eventdata->userto->id);
- if ($processor == NULL){ //this user never had a preference, save default
- if (!message_set_default_message_preferences( $eventdata->userto )){
+ if ($processor == NULL) { //this user never had a preference, save default
+ if (!message_set_default_message_preferences($eventdata->userto)) {
print_error('cannotsavemessageprefs', 'message');
}
- if ( $userstate == 'loggedin'){
- $processor='popup';
+ if ($userstate == 'loggedin') {
+ $processor = 'popup';
}
- if ( $userstate == 'loggedoff'){
- $processor='email';
+ if ($userstate == 'loggedoff') {
+ $processor = 'email';
}
}
- //if we are suposed to do something with this message
+ // if we are suposed to do something with this message
// No processor for this message, mark it as read
if ($processor == "") { //this user cleared all the preferences
$savemessage->timeread = time();
$processorfile = $CFG->dirroot. '/message/output/'.$procname.'/message_output_'.$procname.'.php';
if (is_readable($processorfile)) {
- include_once( $processorfile ); // defines $module with version etc
+ include_once($processorfile); // defines $module with version etc
$processclass = 'message_output_' . $procname;
if (class_exists($processclass)) {
$pclass = new $processclass();
- if (! $pclass->send_message($savemessage)) {
+ if (!$pclass->send_message($savemessage)) {
debugging('Error calling message processor '.$procname);
return false;
}
} else { // Update existing one
$provider = new object();
- $provider->id = $dbproviders[$messagename]->id;
- $provider->capability = $fileprovider['capability'];
+ $provider->id = $dbproviders[$messagename]->id;
+ $provider->capability = $fileprovider['capability'];
$DB->update_record('message_providers', $provider);
unset($dbproviders[$messagename]);
continue;
function message_get_providers_from_db($component) {
global $DB;
- if ($dbproviders = $DB->get_records('message_providers', array('component'=>$component), '',
- 'name, id, component, capability')) { // Name is unique per component
- return $dbproviders;
- }
-
- return array();
+ return $DB->get_records('message_providers', array('component'=>$component), '', 'name, id, component, capability'); // Name is unique per component
}
/**
* Set default message preferences.
* @param $user - User to set message preferences
*/
-function message_set_default_message_preferences( $user ) {
+function message_set_default_message_preferences($user) {
global $DB;
$providers = $DB->get_records('message_providers');
$preferences = array();
- foreach ( $providers as $providerid => $provider){
- $preferences[ 'message_provider_'.$provider->component.'_'.$provider->name.'_loggedin' ] = 'popup';
- $preferences[ 'message_provider_'.$provider->component.'_'.$provider->name.'_loggedoff' ] = 'email';
+ foreach ($providers as $providerid => $provider) {
+ $preferences['message_provider_'.$provider->component.'_'.$provider->name.'_loggedin'] = 'popup';
+ $preferences['message_provider_'.$provider->component.'_'.$provider->name.'_loggedoff'] = 'email';
}
- return set_user_preferences( $preferences, $user->id );
+ return set_user_preferences($preferences, $user->id);
}
$eventdata->fullmessagehtml = $htmlbody;
$eventdata->smallmessage = $smallbody;
error_log(print_r($eventdata, true));
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
require_once($CFG->libdir .'/grouplib.php'); // Groups functions
require_once($CFG->libdir .'/sessionlib.php'); // All session and cookie related stuff
require_once($CFG->libdir .'/editorlib.php'); // All text editor related functions and classes
+require_once($CFG->libdir .'/messagelib.php'); // Messagelib functions
//point pear include path to moodles lib/pear so that includes and requires will search there for files before anywhere else
//the problem is that we need specific version of quickforms and hacked excel files :-(
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- events_trigger('message_send', $eventdata);
+ message_send($eventdata);
}
}
*/
require_once('../config.php');
-require_once($CFG->libdir.'/messagelib.php');
$userid = optional_param('id', $USER->id, PARAM_INT); // user id
$course = optional_param('course', SITEID, PARAM_INT); // course id (defaults to Site)
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
$eventdata->timecreated = time();
- return events_trigger('message_send', $eventdata);
+ return message_send($eventdata);
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0 ){
- }
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0 ){
- echo "Error: assignment cron: Could not send out mail for id $submission->id to user $user->id ($user->email)\n";
- }
+ message_send($eventdata);
}
cron_setup_user();
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0 ){
- }
+ message_send($eventdata);
}else {
$eventdata = new object();
$eventdata->modulename = 'feedback';
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0 ){
- }
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0 ){
- }
+ message_send($eventdata);
}
}
}
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0){
+ if (!message_send($eventdata)){
mtrace("Error: mod/forum/cron.php: Could not send out mail for id $post->id to user $userto->id".
" ($userto->email) .. not trying again.");
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $posthtml;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) > 0){
+ if (!message_send($eventdata)){
mtrace("ERROR!");
echo "Error: mod/forum/cron.php: Could not send out digest mail to user $userto->id ($userto->email)... not trying again.\n";
add_to_log($course->id, 'forum', 'mail digest error', '', '', $cm->id, $userto->id);
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = $message;
$eventdata->smallmessage = '';
- if ( events_trigger('message_send', $eventdata) == 0){
- $essayinfo->sent = 1;
- $attempt->useranswer = serialize($essayinfo);
- $DB->update_record('lesson_attempts', $attempt);
- // Log it
- add_to_log($course->id, 'lesson', 'update email essay grade', "essay.php?id=$cm->id", format_string($pages[$attempt->pageid]->title,true).': '.fullname($users[$attempt->userid]), $cm->id);
- } else {
- print_error('emailfail');
- }
+ message_send($eventdata);
+ $essayinfo->sent = 1;
+ $attempt->useranswer = serialize($essayinfo);
+ $DB->update_record('lesson_attempts', $attempt);
+ // Log it
+ add_to_log($course->id, 'lesson', 'update email essay grade', "essay.php?id=$cm->id", format_string($pages[$attempt->pageid]->title,true).': '.fullname($users[$attempt->userid]), $cm->id);
}
}
lesson_set_message(get_string('emailsuccess', 'lesson'), 'notifysuccess');
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- return (events_trigger('message_send', $eventdata) == 0);
+ return message_send($eventdata);
}
/**
$eventdata->fullmessageformat = FORMAT_PLAIN;
$eventdata->fullmessagehtml = '';
$eventdata->smallmessage = '';
- return (events_trigger('message_send', $eventdata) == 0);
+ return message_send($eventdata);
}
/**
require_once($CFG->dirroot.'/user/editadvanced_form.php');
require_once($CFG->dirroot.'/user/editlib.php');
require_once($CFG->dirroot.'/user/profile/lib.php');
-require_once($CFG->libdir .'/messagelib.php'); // Messagelib functions
httpsrequired();