diff options
Diffstat (limited to 'actions/subscribe.php')
-rw-r--r-- | actions/subscribe.php | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/actions/subscribe.php b/actions/subscribe.php new file mode 100644 index 000000000..35961d051 --- /dev/null +++ b/actions/subscribe.php @@ -0,0 +1,42 @@ +<?php + +class SubscribeAction extends Action { + function handle($args) { + parent::handle($args); + + if (!common_logged_in()) { + common_user_error(_t('Not logged in.')); + return; + } + + $other_nickname = $this->arg('subscribeto'); + + $other = User::staticGet('nickname', $other_nickname); + + if (!$other) { + common_user_error(_t('No such user.')); + return; + } + + $user = common_current_user(); + + if ($user->isSubscribed($other)) { + common_user_error(_t('Already subscribed!.')); + return; + } + + $sub = new Subscription(); + $sub->subscriber = $user->id; + $sub->subscribed = $other->id; + + $sub->created = time(); + + if (!$sub->insert()) { + common_server_error(_t('Couldn\'t create subscription.')); + return; + } + + common_redirect(common_local_url('all', array('nickname' => + $user->nickname))); + } +}
\ No newline at end of file |