X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fsubscribe.php;h=9a1d43fa5df4786b5f97f61013575e5b51c481e2;hb=4aedce6864eb27a0c37b3dcae22fee0aa16ae537;hp=1ca57a43ba0ccdff6e5a0e1bd75a5ff939d98391;hpb=52600ce0b063e68e622b19699841e41b5ddbf2d1;p=quix0rs-gnu-social.git diff --git a/actions/subscribe.php b/actions/subscribe.php index 1ca57a43ba..9a1d43fa5d 100644 --- a/actions/subscribe.php +++ b/actions/subscribe.php @@ -50,20 +50,49 @@ class SubscribeAction extends Action { $sub->created = DB_DataObject_Cast::dateTime(); # current time - $val = $sub->validate(); - - if ($val !== TRUE) { - # XXX: give some error notice - common_server_error(_t('Subscription did not validate.')); - return; - } - if (!$sub->insert()) { common_server_error(_t('Couldn\'t create subscription.')); return; } - common_redirect(common_local_url('all', array('nickname' => - $user->nickname))); + $this->notify($other, $user); + + common_redirect(common_local_url('subscriptions', array('nickname' => + $user->nickname))); + } + + function notify($listenee, $listener) { + # XXX: add other notifications (Jabber, SMS) here + # XXX: queue this and handle it offline + $this->notify_email($listenee, $listener); + } + + function notify_email($listenee, $listener) { + if ($listenee->email) { + global $config; + $profile = $listenee->getProfile(); + $other = $listener->getProfile(); + $name = $profile->getBestName(); + $other_name = $other->getBestName(); + $recipients = $listenee->email; + $headers['From'] = mail_notify_from(); + $headers['To'] = $name . ' <' . $listenee->email . '>'; + $headers['Subject'] = $other_name . _t(' is now listening to your notices on ') . $config['site']['name']; + + $body = + ($other->fullname) ? + ($other->fullname . ' (' . $other->nickname . ')') : $other->nickname; + + $body .= _t(' is now listening to your notices on ') . $config['site']['name'] . '.'; + $body .= "\n\n"; + $body .= "\t".$other->profileurl; + $body .= "\n\n"; + $body .= _t('Faithfully yours, '); + $body .= "\n"; + $body .= $config['site']['name']; + $body .= "\n"; + + mail_send($recipients, $headers, $body); + } } } \ No newline at end of file