X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fsubscribe.php;h=1da061819baf835b90d10610127e780fad3ca2a2;hb=200721a2f45dbfa5463ba32165c7f60e517f0622;hp=3745311b6621998b9b4610e0f12fe377304a5126;hpb=3194a86caa02f5796f468a7d2ebc8e54139fb1cb;p=quix0rs-gnu-social.git diff --git a/actions/subscribe.php b/actions/subscribe.php index 3745311b66..1da061819b 100644 --- a/actions/subscribe.php +++ b/actions/subscribe.php @@ -1,7 +1,7 @@ clientError(_('This action only accepts POST requests.')); - return false; } // CSRF protection @@ -83,9 +81,9 @@ 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; } // Only for logged-in users @@ -93,30 +91,19 @@ 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; } // Profile to subscribe to $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,24 +118,28 @@ class SubscribeAction extends Action * * @return void */ - - function handle($args) + function handle(array $args=array()) { // Throws exception on error - Subscription::start($this->user->getProfile(), - $this->other); + $sub = Subscription::ensureStart($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->getProfile()); - $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'); + $this->endHTML(); } else { $url = common_local_url('subscriptions', array('nickname' => $this->user->nickname));