/** * notify a user that they have received an "attn:" message AKA "@-reply" * * @param User $user The user who recevied the notice * @param Notice $notice The notice that was sent * * @return void */ function mail_notify_attn($user, $notice) { if (!$user->email || !$user->emailnotifyattn) { return; } $sender = $notice->getProfile(); if ($sender->id == $user->id) { return; } if (!$sender->hasRight(Right::EMAILONREPLY)) { return; } $bestname = $sender->getBestName(); common_switch_locale($user->language); if ($notice->hasConversation()) { $conversationUrl = common_local_url('conversation', array('id' => $notice->conversation)) . '#notice-' . $notice->id; // TRANS: Line in @-reply notification e-mail. %s is conversation URL. $conversationEmailText = sprintf(_("The full conversation can be read here:\n\n" . "\t%s"), $conversationUrl) . "\n\n"; } else { $conversationEmailText = ''; } // TRANS: E-mail subject for notice notification. // TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. $subject = sprintf(_('%1$s (@%2$s) sent a notice to your attention'), $bestname, $sender->nickname); // TRANS: Body of @-reply notification e-mail. // TRANS: %1$s is the sending user's long name, $2$s is the StatusNet sitename, // TRANS: %3$s is a URL to the notice, %4$s is the notice text, // TRANS: %5$s is a URL to the full conversion if it exists (otherwise empty), // TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replied for the addressed user, // TRANS: %8$s is a URL to the addressed user's e-mail settings, %9$s is the sender's nickname. $body = sprintf(_("%1\$s (@%9\$s) just sent a notice to your attention (an '@-reply') on %2\$s.\n\n" . "The notice is here:\n\n" . "\t%3\$s\n\n" . "It reads:\n\n" . "\t%4\$s\n\n" . "%5\$s" . "You can reply back here:\n\n" . "\t%6\$s\n\n" . "The list of all @-replies for you here:\n\n" . "%7\$s\n\n" . "Faithfully yours,\n" . "%2\$s\n\n" . "P.S. You can turn off these email notifications here: %8\$s\n"), $bestname, common_config('site', 'name'), common_local_url('shownotice', array('notice' => $notice->id)), $notice->content, $conversationEmailText, common_local_url('newnotice', array('replyto' => $sender->nickname, 'inreplyto' => $notice->id)), common_local_url('replies', array('nickname' => $user->nickname)), common_local_url('emailsettings'), $sender->nickname); //%9 $headers = _mail_prepare_headers('mention', $user->nickname, $sender->nickname); common_switch_locale(); mail_to_user($user, $subject, $body, $headers); }
/** * Notify a user that they have received an "attn:" message AKA "@-reply" * * @param User $user The user who recevied the notice * @param Notice $notice The notice that was sent * * @return void */ function mail_notify_attn($user, $notice) { if (!$user->receivesEmailNotifications()) { return; } $sender = $notice->getProfile(); if ($sender->id == $user->id) { return; } // See if the notice's author who mentions this user is sandboxed if (!$sender->hasRight(Right::EMAILONREPLY)) { return; } // If the author has blocked the author, don't spam them with a notification. if ($user->hasBlocked($sender)) { return; } $bestname = $sender->getBestName(); common_switch_locale($user->language); if ($notice->hasConversation()) { $conversationUrl = common_local_url('conversation', array('id' => $notice->conversation)) . '#notice-' . $notice->id; // TRANS: Line in @-reply notification e-mail. %s is conversation URL. $conversationEmailText = sprintf(_("The full conversation can be read here:\n\n" . "\t%s"), $conversationUrl) . "\n\n"; } else { $conversationEmailText = ''; } // TRANS: E-mail subject for notice notification. // TRANS: %1$s is the sending user's long name, %2$s is the adding user's nickname. $subject = sprintf(_('%1$s (@%2$s) sent a notice to your attention'), $bestname, $sender->nickname); // TRANS: Body of @-reply notification e-mail. // TRANS: %1$s is the sending user's name, $2$s is the StatusNet sitename, // TRANS: %3$s is a URL to the notice, %4$s is the notice text, // TRANS: %5$s is the text "The full conversation can be read here:" and a URL to the full conversion if it exists (otherwise empty), // TRANS: %6$s is a URL to reply to the notice, %7$s is a URL to all @-replies for the addressed user, $body = sprintf(_("%1\$s just sent a notice to your attention (an '@-reply') on %2\$s.\n\n" . "The notice is here:\n\n" . "\t%3\$s\n\n" . "It reads:\n\n" . "\t%4\$s\n\n" . "%5\$s" . "You can reply back here:\n\n" . "\t%6\$s\n\n" . "The list of all @-replies for you here:\n\n" . "%7\$s"), $sender->getFancyName(), common_config('site', 'name'), common_local_url('shownotice', array('notice' => $notice->id)), $notice->content, $conversationEmailText, common_local_url('newnotice', array('replyto' => $sender->nickname, 'inreplyto' => $notice->id)), common_local_url('replies', array('nickname' => $user->nickname))) . mail_footer_block(); $headers = _mail_prepare_headers('mention', $user->nickname, $sender->nickname); common_switch_locale(); mail_to_user($user, $subject, $body, $headers); }