From 1a97f60c134efcde601a4e4d49908324cc68127d Mon Sep 17 00:00:00 2001 From: jmontoyaa Date: Tue, 14 Nov 2017 13:40:57 +0100 Subject: [PATCH] Add user email when sending notification BT#13672 - Add new key "complete_name_with_email" when calling api_get_user_info. - Email will be display only if if "show_email_addresses" setting is on. --- main/inc/lib/api.lib.php | 22 +++++++++++++++------- main/inc/lib/notification.lib.php | 28 ++++++++-------------------- main/inc/lib/social.lib.php | 4 ++-- 3 files changed, 25 insertions(+), 29 deletions(-) diff --git a/main/inc/lib/api.lib.php b/main/inc/lib/api.lib.php index 6df4d9a7a17..2380ad6aee6 100644 --- a/main/inc/lib/api.lib.php +++ b/main/inc/lib/api.lib.php @@ -1337,6 +1337,14 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true) $result['lastname'] = isset($user['lastName']) ? $user['lastName'] : null; } + if (isset($user['email'])) { + $result['mail'] = isset($user['email']) ? $user['email'] : null; + $result['email'] = isset($user['email']) ? $user['email'] : null; + } else { + $result['mail'] = isset($user['mail']) ? $user['mail'] : null; + $result['email'] = isset($user['mail']) ? $user['mail'] : null; + } + $result['complete_name'] = api_get_person_name($result['firstname'], $result['lastname']); $result['complete_name_with_username'] = $result['complete_name']; @@ -1344,6 +1352,13 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true) $result['complete_name_with_username'] = $result['complete_name'].' ('.$user['username'].')'; } + $showEmail = api_get_setting('show_email_addresses') === 'true'; + if (!empty($user['email']) && $showEmail) { + $result['complete_name_with_email'] = $result['complete_name'].' ('.$user['email'].')'; + } else { + $result['complete_name_with_email'] = $result['complete_name']; + } + // Kept for historical reasons $result['firstName'] = $result['firstname']; $result['lastName'] = $result['lastname']; @@ -1378,13 +1393,6 @@ function _api_format_user($user, $add_password = false, $loadAvatars = true) $result[$attribute] = isset($user[$attribute]) ? $user[$attribute] : null; } - if (isset($user['email'])) { - $result['mail'] = isset($user['email']) ? $user['email'] : null; - $result['email'] = isset($user['email']) ? $user['email'] : null; - } else { - $result['mail'] = isset($user['mail']) ? $user['mail'] : null; - $result['email'] = isset($user['mail']) ? $user['mail'] : null; - } $user_id = intval($user['user_id']); // Maintain the user_id index for backwards compatibility $result['user_id'] = $result['id'] = $user_id; diff --git a/main/inc/lib/notification.lib.php b/main/inc/lib/notification.lib.php index 974435382d1..f590b076dcb 100644 --- a/main/inc/lib/notification.lib.php +++ b/main/inc/lib/notification.lib.php @@ -141,7 +141,7 @@ public function send($frequency = 8) /** * @param string $title - * @param array $senderInfo + * @param array $senderInfo * * @return string */ @@ -380,13 +380,10 @@ public function formatContent($content, $senderInfo) $content = ''; } if (!empty($senderInfo)) { - $senderName = api_get_person_name( - $senderInfo['firstname'], - $senderInfo['lastname'], - null, - PERSON_NAME_EMAIL_ADDRESS + $newMessageText = sprintf( + get_lang('YouHaveANewMessageFromX'), + $senderInfo['complete_name_with_email'] ); - $newMessageText = sprintf(get_lang('YouHaveANewMessageFromX'), $senderName); } $linkToNewMessage = Display::url( get_lang('SeeMessage'), @@ -395,13 +392,10 @@ public function formatContent($content, $senderInfo) break; case self::NOTIFICATION_TYPE_INVITATION: if (!empty($senderInfo)) { - $senderName = api_get_person_name( - $senderInfo['firstname'], - $senderInfo['lastname'], - null, - PERSON_NAME_EMAIL_ADDRESS + $newMessageText = sprintf( + get_lang('YouHaveANewInvitationFromX'), + $senderInfo['complete_name_with_email'] ); - $newMessageText = sprintf(get_lang('YouHaveANewInvitationFromX'), $senderName); } $linkToNewMessage = Display::url( get_lang('SeeInvitation'), @@ -413,14 +407,8 @@ public function formatContent($content, $senderInfo) if (!empty($senderInfo)) { $senderName = $senderInfo['group_info']['name']; $newMessageText = sprintf(get_lang('YouHaveReceivedANewMessageInTheGroupX'), $senderName); - $senderName = api_get_person_name( - $senderInfo['user_info']['firstname'], - $senderInfo['user_info']['lastname'], - null, - PERSON_NAME_EMAIL_ADDRESS - ); $senderName = Display::url( - $senderName, + $senderInfo['complete_name_with_email'], api_get_path(WEB_CODE_PATH).'social/profile.php?'.$senderInfo['user_info']['user_id'] ); $newMessageText .= '
'.get_lang('User').': '.$senderName; diff --git a/main/inc/lib/social.lib.php b/main/inc/lib/social.lib.php index 542fc32ef70..d8a7a4146f3 100755 --- a/main/inc/lib/social.lib.php +++ b/main/inc/lib/social.lib.php @@ -254,14 +254,14 @@ public static function send_invitation_friend( ]; Database::insert($tbl_message, $params); - $sender_info = api_get_user_info($user_id); + $senderInfo = api_get_user_info($user_id); $notification = new Notification(); $notification->saveNotification( Notification::NOTIFICATION_TYPE_INVITATION, array($friend_id), $message_title, $message_content, - $sender_info + $senderInfo ); return true;