]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - actions/subscribe.php
The overloaded DB_DataObject function staticGet is now called getKV
[quix0rs-gnu-social.git] / actions / subscribe.php
index b1243f393333fdea7245bead2c7c1bda9738e982..faa833ade3599be6608e37db125825d59feac294 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
  * StatusNet - the distributed open-source microblogging tool
- * Copyright (C) 2008-2010, StatusNet, Inc.
+ * Copyright (C) 2008-2011, StatusNet, Inc.
  *
  * Subscription action.
  *
@@ -53,7 +53,6 @@ if (!defined('STATUSNET')) {
  * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
  * @link      http://status.net/
  */
-
 class SubscribeAction extends Action
 {
     var $user;
@@ -66,7 +65,6 @@ class SubscribeAction extends Action
      *
      * @return boolean success flag
      */
-
     function prepare($args)
     {
         parent::prepare($args);
@@ -74,6 +72,8 @@ class SubscribeAction extends Action
         // Only allow POST requests
 
         if ($_SERVER['REQUEST_METHOD'] != 'POST') {
+            // TRANS: Client error displayed trying to perform any request method other than POST.
+            // TRANS: Do not translate POST.
             $this->clientError(_('This action only accepts POST requests.'));
             return false;
         }
@@ -83,6 +83,7 @@ class SubscribeAction extends Action
         $token = $this->trimmed('token');
 
         if (!$token || $token != common_session_token()) {
+            // TRANS: Client error displayed when the session token is not okay.
             $this->clientError(_('There was a problem with your session token.'.
                                  ' Try again, please.'));
             return false;
@@ -93,6 +94,7 @@ class SubscribeAction extends Action
         $this->user = common_current_user();
 
         if (empty($this->user)) {
+            // TRANS: Error message displayed when trying to perform an action that requires a logged in user.
             $this->clientError(_('Not logged in.'));
             return false;
         }
@@ -101,24 +103,14 @@ class SubscribeAction extends Action
 
         $other_id = $this->arg('subscribeto');
 
-        $this->other = Profile::staticGet('id', $other_id);
+        $this->other = Profile::getKV('id', $other_id);
 
         if (empty($this->other)) {
+            // TRANS: Client error displayed trying to subscribe to a non-existing profile.
             $this->clientError(_('No such profile.'));
             return false;
         }
 
-        // OMB 0.1 doesn't have a mechanism for local-server-
-        // originated subscription.
-
-        $omb01 = Remote_profile::staticGet('id', $other_id);
-
-        if (!empty($omb01)) {
-            $this->clientError(_('You cannot subscribe to an OMB 0.1'.
-                                 ' remote profile with this action.'));
-            return false;
-        }
-
         return true;
     }
 
@@ -131,22 +123,26 @@ class SubscribeAction extends Action
      *
      * @return void
      */
-
     function handle($args)
     {
         // Throws exception on error
 
-        Subscription::start($this->user->getProfile(),
-                            $this->other);
+        $sub = Subscription::start($this->user->getProfile(),
+                                   $this->other);
 
         if ($this->boolean('ajax')) {
             $this->startHTML('text/xml;charset=utf-8');
             $this->elementStart('head');
+            // TRANS: Page title when subscription succeeded.
             $this->element('title', null, _('Subscribed'));
             $this->elementEnd('head');
             $this->elementStart('body');
-            $unsubscribe = new UnsubscribeForm($this, $this->other);
-            $unsubscribe->show();
+            if ($sub instanceof Subscription) {
+                $form = new UnsubscribeForm($this, $this->other);
+            } else {
+                $form = new CancelSubscriptionForm($this, $this->other);
+            }
+            $form->show();
             $this->elementEnd('body');
             $this->elementEnd('html');
         } else {