summaryrefslogtreecommitdiff
path: root/actions/subscribe.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-05-14 10:54:36 -0400
committerEvan Prodromou <evan@prodromou.name>2008-05-14 10:54:36 -0400
commit67a347bafb875be60e7554f308d80d7f0a1d2747 (patch)
treefb7d54dff5e84e1e22b1c5fca882a5f776e1d4a9 /actions/subscribe.php
parentf0a30cc89ddf82e3c774800d24f0ea3664065d9c (diff)
considerable coding
darcs-hash:20080514145436-84dde-d0994cb35d3fe8545d3f08abeec3cdfe7559c67d.gz
Diffstat (limited to 'actions/subscribe.php')
-rw-r--r--actions/subscribe.php42
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