making more sense in mail_notify_fav

We should probably get rid of this function, at least storing everything in
lib/mail.php - but until then, at least let's make it more understandable.
This commit is contained in:
Mikael Nordfeldth 2014-07-13 12:56:43 +02:00
parent e328fd7901
commit 6f593a79d4
5 changed files with 23 additions and 16 deletions

View File

@ -1676,6 +1676,8 @@ class Notice extends Managed_DataObject
$recipientIds = $this->getReplies();
if (Event::handle('StartNotifyMentioned', array($this, &$recipientIds))) {
require_once INSTALLDIR.'/lib/mail.php';
foreach ($recipientIds as $recipientId) {
$user = User::getKV('id', $recipientId);
if ($user instanceof User) {

View File

@ -666,31 +666,30 @@ function mail_notify_message($message, $from=null, $to=null)
* want to receive notification of faves. Maybe this happens higher
* up the stack...?
*
* @param User $other The user whose notice was faved
* @param User $user The user who faved the notice
* @param User $rcpt The user whose notice was faved
* @param Profile $sender The user who faved the notice
* @param Notice $notice The notice that was faved
*
* @return void
*/
function mail_notify_fave($other, $user, $notice)
function mail_notify_fave(User $rcpt, Profile $sender, Notice $notice)
{
if (!$user->hasRight(Right::EMAILONFAVE)) {
if (!$sender->hasRight(Right::EMAILONFAVE)) {
return;
}
$profile = $user->getProfile();
if ($other->hasBlocked($profile)) {
if ($rcpt->hasBlocked($sender)) {
// If the author has blocked us, don't spam them with a notification.
return;
}
$bestname = $profile->getBestName();
common_switch_locale($other->language);
common_switch_locale($rcpt->language);
// TRANS: Subject for favorite notification e-mail.
// TRANS: %1$s is the adding user's long name, %2$s is the adding user's nickname.
$subject = sprintf(_('%1$s (@%2$s) added your notice as a favorite'), $bestname, $user->nickname);
$subject = sprintf(_('%1$s (@%2$s) added your notice as a favorite'), $bestname, $sender->getNickname());
// TRANS: Body for favorite notification e-mail.
// TRANS: %1$s is the adding user's long name, $2$s is the date the notice was created,
@ -711,15 +710,15 @@ function mail_notify_fave($other, $user, $notice)
array('notice' => $notice->id)),
$notice->content,
common_local_url('showfavorites',
array('nickname' => $user->nickname)),
array('nickname' => $sender->getNickname())),
common_config('site', 'name'),
$user->nickname) .
$sender->getNickname()) .
mail_footer_block();
$headers = _mail_prepare_headers('fave', $other->nickname, $user->nickname);
$headers = _mail_prepare_headers('fave', $rcpt->getNickname(), $sender->getNickname());
common_switch_locale();
mail_to_user($other, $subject, $body, $headers);
mail_to_user($rcpt, $subject, $body, $headers);
}
/**

View File

@ -164,7 +164,9 @@ class ApiFavoriteCreateAction extends ApiAuthAction
$other = User::getKV('id', $notice->profile_id);
if ($other && $other->id != $user->id) {
if ($other->email && $other->emailnotifyfav) {
mail_notify_fave($other, $user, $notice);
require_once INSTALLDIR.'/lib/mail.php';
mail_notify_fave($other, $user->getProfile(), $notice);
}
// XXX: notify by IM
// XXX: notify by SMS

View File

@ -363,7 +363,9 @@ class AtompubfavoritefeedAction extends ApiAuthAction
$other = User::getKV('id', $notice->profile_id);
if ($other && $other->id != $user->id) {
if ($other->email && $other->emailnotifyfav) {
mail_notify_fave($other, $user, $notice);
require_once INSTALLDIR.'/lib/mail.php';
mail_notify_fave($other, $user->getProfile(), $notice);
}
// XXX: notify by IM
// XXX: notify by SMS

View File

@ -40,7 +40,9 @@ class FavCommand extends Command
if ($other && $other->id != $this->user->id) {
if ($other->email && $other->emailnotifyfav) {
mail_notify_fave($other, $this->user, $notice);
require_once INSTALLDIR.'/lib/mail.php';
mail_notify_fave($other, $this->user->getProfile(), $notice);
}
}