function notifications_process_send in Notifications 5
Same name and namespace in other branches
- 6 notifications.cron.inc \notifications_process_send()
- 6.2 notifications.cron.inc \notifications_process_send()
- 6.3 notifications.cron.inc \notifications_process_send()
Message delivery.
Processes everything, included digestion and sends message/s.
Adds some more information into $message['notifications'] that may be used by other modules
Parameters
$account: User account to send the notification to
$events: Array of loaded event objects to be processed
$subscriptions: Array of arrays of subscription ids (sids) for each event(eid)
2 calls to notifications_process_send()
- notifications_process_rows in ./
notifications.cron.inc - Process rows given query conditions
- Notifications_Templates_Tests::testNotificationsTemplateAPI in tests/
notifications_templates.test - Play with creating, retrieving, deleting a pair subscriptions
File
- ./
notifications.cron.inc, line 342
Code
function notifications_process_send($account, $events, $subscriptions, $send_method, $send_interval) {
notifications_log("Sending out, method={$send_method}, interval={$send_interval}, events=" . count($events));
// Digest if send_interval > 0 (not immediate sending)
if ($digest = notifications_digest_method($send_interval)) {
$function = $digest['digest callback'];
// It can be digested in more than one message by some other digest plug-in
$messages = $function($account, $events, $subscriptions, $send_interval, $send_method);
}
else {
$sender_option = variable_get('notifications_sender', 0);
foreach ($events as $event) {
$message = notifications_process_message($account, $event, $subscriptions[$event->eid], $send_method);
// We pass on the full information so it can be used by modules implementing some of the hooks
$message['notifications'] = array(
'events' => array(
$event,
),
'subscriptions' => $subscriptions,
);
// Optional sender, if chosen will be the user account who produced the event
// It will be up to the sending method modules what to do with this information.
if ($sender_option) {
$sender = notifications_load_user($event->uid);
$message['sender_name'] = $sender->name;
if ($sender_option == 2) {
$message['sender_account'] = $sender;
}
}
$messages[] = $message;
}
}
// Now send messages
foreach ($messages as $message) {
notifications_process('count', 'send');
// notifications_log($message, 'message');
notifications_message_send($account, $message, $send_method);
}
return $messages;
}