From 514e7729f2071475daa61dafd2b8331f15c58182 Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Wed, 16 Jan 2013 13:38:47 +0100 Subject: [PATCH] Fixing save_notification if the extrafield does not exists see BT#5739 --- main/inc/lib/notification.lib.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/main/inc/lib/notification.lib.php b/main/inc/lib/notification.lib.php index 7a6d76b087..c2f8af09fb 100644 --- a/main/inc/lib/notification.lib.php +++ b/main/inc/lib/notification.lib.php @@ -110,28 +110,39 @@ class Notification extends Model { switch ($this->type) { case NOTIFICATION_TYPE_MESSAGE; $setting_to_check = 'mail_notify_message'; + $default_status = NOTIFY_MESSAGE_AT_ONCE; break; case NOTIFICATION_TYPE_INVITATION; $setting_to_check = 'mail_notify_invitation'; + $default_status = NOTIFY_INVITATION_AT_ONCE; break; case NOTIFICATION_TYPE_GROUP; $setting_to_check = 'mail_notify_group_message'; + $default_status = NOTIFY_GROUP_AT_ONCE; $avoid_my_self = true; break; } + $setting_info = UserManager::get_extra_field_information_by_name($setting_to_check); + if (!empty($user_list)) { foreach ($user_list as $user_id) { - $extra_data = UserManager::get_extra_user_data($user_id); - $params = array(); if ($avoid_my_self) { if ($user_id == api_get_user_id()) { continue; } } - $user_info = api_get_user_info($user_id); - $user_setting = $extra_data[$setting_to_check]; + + //Extra field was deleted or removed? Use the default status + if (empty($setting_info)) { + $user_setting = $default_status; + } else { + $extra_data = UserManager::get_extra_user_data($user_id); + $user_setting = $extra_data[$setting_to_check]; + } + + $params = array(); switch ($user_setting) { //No notifications