function oa_notifications_save_notifications in Open Atrium Notifications 7.2
Saves notifications.
Parameters
array $values: The values to save.
2 calls to oa_notifications_save_notifications()
- oa_notifications_ajax_callback in ./
oa_notifications.module - AJAX callback saves the quick reply notification configuration.
- oa_notifications_node_insert in ./
oa_notifications.module - Implements hook_node_insert().
File
- ./
oa_notifications.module, line 308
Code
function oa_notifications_save_notifications(&$values, $notifications = NULL) {
if (isset($values['skip_notify'])) {
oa_notification_skip($values['skip_notify']);
}
if (isset($values['source_id']) && isset($values['source_type'])) {
drupal_alter('oa_notifications_save', $values);
$source_type = $values['source_type'];
$source_id = $values['source_id'];
if (!$source_id) {
// Node add form, so just update the form values.
oa_notification_parse($values['notify_list']['combined'], $source_type, $source_id, $notifications);
$values['notify_list']['combined'] = '';
return $notifications;
}
// Otherwise, update the database directly.
if (isset($values['override'])) {
oa_notifications_save_override($source_type, $source_id, $values['override']);
}
if (!isset($values['override']) || $values['override']) {
// Only adding a single notification.
if (!empty($values['notify_list']['combined'])) {
$notifications = oa_notifications_load_multiple($source_id, $source_type);
oa_notification_parse($values['notify_list']['combined'], $source_type, $source_id, $notifications, TRUE);
$values['notify_list']['combined'] = '';
return $notifications;
}
else {
// Adding/overwriting all notifications.
foreach ($notifications as $type => $list) {
foreach ($list as $id => $item) {
// Basically updating source_id here
$n = oa_notifications_make($type, $id, $source_type, $source_id);
$notifications[$type][$id] = $n;
}
}
oa_notifications_save_for_source($source_id, $source_type, $notifications);
}
}
}
return $notifications;
}