X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fsubscriptions.php;h=6e9e163d332afce567aa394ff1a45b044aa15b3a;hb=515682c0cd3b7000fb02c7b79d759c347f57da09;hp=a814a4f354172dd4d24ec2c3156590f576ecdc01;hpb=8dea5144a948a1c5dbf51ad8b3f39f4bd2e2fb30;p=quix0rs-gnu-social.git diff --git a/actions/subscriptions.php b/actions/subscriptions.php index a814a4f354..6e9e163d33 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -28,9 +28,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} +if (!defined('GNUSOCIAL')) { exit(1); } /** * A list of the user's subscriptions @@ -48,20 +46,19 @@ class SubscriptionsAction extends GalleryAction if ($this->page == 1) { // TRANS: Header for subscriptions overview for a user (first page). // TRANS: %s is a user nickname. - return sprintf(_('%s subscriptions'), $this->user->nickname); + return sprintf(_('%s subscriptions'), $this->target->getNickname()); } else { // TRANS: Header for subscriptions overview for a user (not first page). // TRANS: %1$s is a user nickname, %2$d is the page number. return sprintf(_('%1$s subscriptions, page %2$d'), - $this->user->nickname, + $this->target->getNickname(), $this->page); } } function showPageNotice() { - $user = common_current_user(); - if ($user && ($user->id == $this->profile->id)) { + if ($this->scoped instanceof Profile && $this->scoped->sameAs($this->getTarget())) { $this->element('p', null, // TRANS: Page notice for page with an overview of all subscriptions // TRANS: of the logged in user's own profile. @@ -73,7 +70,7 @@ class SubscriptionsAction extends GalleryAction // TRANS: than the logged in user. %s is the user nickname. sprintf(_('These are the people whose '. 'notices %s listens to.'), - $this->profile->nickname)); + $this->target->getNickname())); } } @@ -93,24 +90,22 @@ class SubscriptionsAction extends GalleryAction $cnt = 0; if ($this->tag) { - $subscriptions = $this->user->getTaggedSubscriptions($this->tag, $offset, $limit); + $subscriptions = $this->target->getTaggedSubscriptions($this->tag, $offset, $limit); } else { - $subscriptions = $this->user->getSubscriptions($offset, $limit); + $subscriptions = $this->target->getSubscribed($offset, $limit); } if ($subscriptions) { - $subscriptions_list = new SubscriptionsList($subscriptions, $this->user, $this); + $subscriptions_list = new SubscriptionsList($subscriptions, $this->target, $this); $cnt = $subscriptions_list->show(); if (0 == $cnt) { $this->showEmptyListMessage(); } } - $subscriptions->free(); - $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, $this->page, 'subscriptions', - array('nickname' => $this->user->nickname)); + array('nickname' => $this->target->getNickname())); Event::handle('EndShowSubscriptionsContent', array($this)); @@ -125,28 +120,18 @@ class SubscriptionsAction extends GalleryAction function showEmptyListMessage() { - if (common_logged_in()) { - $current_user = common_current_user(); - if ($this->user->id === $current_user->id) { + if ($this->scoped instanceof Profile && $this->target->id === $this->scoped->id) { // TRANS: Subscription list text when the logged in user has no subscriptions. // TRANS: This message contains Markdown URLs. The link description is between // TRANS: square brackets, and the link between parentheses. Do not separate "](" // TRANS: and do not change the URL part. $message = _('You\'re not listening to anyone\'s notices right now, try subscribing to people you know. '. 'Try [people search](%%action.peoplesearch%%), look for members in groups you\'re interested '. - 'in and in our [featured users](%%action.featured%%). '. - 'If you\'re a [Twitter user](%%action.twittersettings%%), you can automatically subscribe to '. - 'people you already follow there.'); - } else { - // TRANS: Subscription list text when looking at the subscriptions for a of a user other - // TRANS: than the logged in user that has no subscriptions. %s is the user nickname. - $message = sprintf(_('%s is not listening to anyone.'), $this->user->nickname); - } - } - else { + 'in and in our [featured users](%%action.featured%%).'); + } else { // TRANS: Subscription list text when looking at the subscriptions for a of a user that has none // TRANS: as an anonymous user. %s is the user nickname. - $message = sprintf(_('%s is not listening to anyone.'), $this->user->nickname); + $message = sprintf(_('%s is not listening to anyone.'), $this->target->getNickname()); } $this->elementStart('div', 'guide'); @@ -154,114 +139,18 @@ class SubscriptionsAction extends GalleryAction $this->elementEnd('div'); } - function showSections() - { - parent::showSections(); - $cloud = new SubscriptionsPeopleTagCloudSection($this); - $cloud->show(); - - $cloud2 = new SubscriptionsPeopleSelfTagCloudSection($this); - $cloud2->show(); - } - /** * Link to feeds of subscriptions * * @return array of Feed objects */ - function getFeeds() { return array(new Feed(Feed::ATOM, common_local_url('AtomPubSubscriptionFeed', - array('subscriber' => $this->profile->id)), + array('subscriber' => $this->target->id)), + // TRANS: Atom feed title. %s is a profile nickname. sprintf(_('Subscription feed for %s (Atom)'), - $this->profile->nickname))); - - } -} - -// XXX SubscriptionsList and SubscriptionList are dangerously close - -class SubscriptionsList extends SubscriptionList -{ - function newListItem($profile) - { - return new SubscriptionsListItem($profile, $this->owner, $this->action); - } -} - -class SubscriptionsListItem extends SubscriptionListItem -{ - function showProfile() - { - $this->startProfile(); - $this->showAvatar(); - $this->showFullName(); - $this->showLocation(); - $this->showHomepage(); - $this->showBio(); - $this->showTags(); - // Relevant portion! - $cur = common_current_user(); - if (!empty($cur) && $cur->id == $this->owner->id) { - $this->showOwnerControls(); - } - $this->endProfile(); - } - - function showOwnerControls() - { - $sub = Subscription::pkeyGet(array('subscriber' => $this->owner->id, - 'subscribed' => $this->profile->id)); - if (!$sub) { - return; - } - - if (!common_config('xmpp', 'enabled') && !common_config('sms', 'enabled')) { - return; - } - - $this->out->elementStart('form', array('id' => 'subedit-' . $this->profile->id, - 'method' => 'post', - 'class' => 'form_subscription_edit', - 'action' => common_local_url('subedit'))); - $this->out->hidden('token', common_session_token()); - $this->out->hidden('profile', $this->profile->id); - if (common_config('xmpp', 'enabled')) { - $attrs = array('name' => 'jabber', - 'type' => 'checkbox', - 'class' => 'checkbox', - 'id' => 'jabber-'.$this->profile->id); - if ($sub->jabber) { - $attrs['checked'] = 'checked'; - } - - $this->out->element('input', $attrs); - // TRANS: Checkbox label for enabling Jabber messages for a profile in a subscriptions list. - $this->out->element('label', array('for' => 'jabber-'.$this->profile->id), _('Jabber')); - } else { - $this->out->hidden('jabber', $sub->jabber); - } - if (common_config('sms', 'enabled')) { - $attrs = array('name' => 'sms', - 'type' => 'checkbox', - 'class' => 'checkbox', - 'id' => 'sms-'.$this->profile->id); - if ($sub->sms) { - $attrs['checked'] = 'checked'; - } - - $this->out->element('input', $attrs); - // TRANS: Checkbox label for enabling SMS messages for a profile in a subscriptions list. - $this->out->element('label', array('for' => 'sms-'.$this->profile->id), _('SMS')); - } else { - $this->out->hidden('sms', $sub->sms); - } - // TRANS: Save button for settings for a profile in a subscriptions list. - $this->out->submit('save', _m('BUTTON','Save')); - $this->out->elementEnd('form'); - return; + $this->target->getNickname()))); } - }