diff options
author | Evan Prodromou <evan@prodromou.name> | 2008-05-14 10:54:36 -0400 |
---|---|---|
committer | Evan Prodromou <evan@prodromou.name> | 2008-05-14 10:54:36 -0400 |
commit | 67a347bafb875be60e7554f308d80d7f0a1d2747 (patch) | |
tree | fb7d54dff5e84e1e22b1c5fca882a5f776e1d4a9 /actions/subscribe.php | |
parent | f0a30cc89ddf82e3c774800d24f0ea3664065d9c (diff) |
considerable coding
darcs-hash:20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz
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 |