From 5d31dd259a4daf05d02302ffcf1d48b3c9322e47 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 28 Mar 2011 17:15:48 -0700 Subject: [PATCH] Subscription pending notification mail --- classes/Subscription_queue.php | 6 ++--- lib/mail.php | 43 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/classes/Subscription_queue.php b/classes/Subscription_queue.php index 41c0a54fa8..3c67790271 100644 --- a/classes/Subscription_queue.php +++ b/classes/Subscription_queue.php @@ -98,8 +98,8 @@ class Subscription_queue extends Managed_DataObject */ public function notify() { - $subscriber = Profile::staticGet('id', $this->subscriber); - $subscribed = Profile::staticGet('id', $this->subscribed); - //mail_notify_subscription_pending($subscribed, $subscriber); + $listenee = User::staticGet('id', $this->subscriber); + $other = Profile::staticGet('id', $this->subscribed); + mail_subscribe_pending_notify_profile($listenee, $other); } } diff --git a/lib/mail.php b/lib/mail.php index 708e5349b1..e8c5d3c4e7 100644 --- a/lib/mail.php +++ b/lib/mail.php @@ -259,6 +259,49 @@ function mail_subscribe_notify_profile($listenee, $other) } } +function mail_subscribe_pending_notify_profile($listenee, $other) +{ + if ($other->hasRight(Right::EMAILONSUBSCRIBE) && + $listenee->email && $listenee->emailnotifysub) { + + $profile = $listenee->getProfile(); + + $name = $profile->getBestName(); + + $long_name = ($other->fullname) ? + ($other->fullname . ' (' . $other->nickname . ')') : $other->nickname; + + $recipients = $listenee->email; + + // use the recipient's localization + common_switch_locale($listenee->language); + + $headers = _mail_prepare_headers('subscribe', $listenee->nickname, $other->nickname); + $headers['From'] = mail_notify_from(); + $headers['To'] = $name . ' <' . $listenee->email . '>'; + // TRANS: Subject of pending new-subscriber notification e-mail. + // TRANS: %1$s is the subscribing user's nickname, %2$s is the StatusNet sitename. + $headers['Subject'] = sprintf(_('%1$s would like to listen to '. + 'your notices on %2$s.'), + $other->getBestName(), + common_config('site', 'name')); + + // TRANS: Main body of pending new-subscriber notification e-mail. + // TRANS: %1$s is the subscriber's long name, %2$s is the StatusNet sitename. + $body = sprintf(_('%1$s would like to listen to your notices on %2$s. ' . + 'You may approve or reject their subscription at %3$s'), + $long_name, + common_config('site', 'name'), + common_local_url('subqueue', array('nickname' => $listenee->nickname))) . + mail_profile_block($other) . + mail_footer_block(); + + // reset localization + common_switch_locale(); + mail_send($recipients, $headers, $body); + } +} + function mail_footer_block() { // TRANS: Common footer block for StatusNet notification emails.