X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fsubscriptions.php;h=ddcf237e6271647552f19c7253fa9535b24b5082;hb=c0bb1a57984266024e8e5a968c0f3a3b54befff6;hp=cc7b38ee461f21d21f44408d6b645a70d086db00;hpb=277b464054b24f8d680ddbe762c9e438f6679592;p=quix0rs-gnu-social.git diff --git a/actions/subscriptions.php b/actions/subscriptions.php index cc7b38ee46..ddcf237e62 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -41,17 +41,18 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } - class SubscriptionsAction extends GalleryAction { function title() { 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); } else { - return sprintf(_('%s subscriptions, page %d'), + // 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->page); } @@ -59,13 +60,17 @@ class SubscriptionsAction extends GalleryAction function showPageNotice() { - $user =& common_current_user(); + $user = common_current_user(); if ($user && ($user->id == $this->profile->id)) { $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscriptions + // TRANS: of the logged in user's own profile. _('These are the people whose notices '. 'you listen to.')); } else { $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscriptions of a user other + // TRANS: than the logged in user. %s is the user nickname. sprintf(_('These are the people whose '. 'notices %s listens to.'), $this->profile->nickname)); @@ -79,32 +84,35 @@ class SubscriptionsAction extends GalleryAction function showContent() { - parent::showContent(); + if (Event::handle('StartShowSubscriptionsContent', array($this))) { + parent::showContent(); - $offset = ($this->page-1) * PROFILES_PER_PAGE; - $limit = PROFILES_PER_PAGE + 1; + $offset = ($this->page-1) * PROFILES_PER_PAGE; + $limit = PROFILES_PER_PAGE + 1; - $cnt = 0; + $cnt = 0; - if ($this->tag) { - $subscriptions = $this->user->getTaggedSubscriptions($this->tag, $offset, $limit); - } else { - $subscriptions = $this->user->getSubscriptions($offset, $limit); - } + if ($this->tag) { + $subscriptions = $this->user->getTaggedSubscriptions($this->tag, $offset, $limit); + } else { + $subscriptions = $this->user->getSubscriptions($offset, $limit); + } - if ($subscriptions) { - $subscriptions_list = new SubscriptionsList($subscriptions, $this->user, $this); - $cnt = $subscriptions_list->show(); - if (0 == $cnt) { - $this->showEmptyListMessage(); + if ($subscriptions) { + $subscriptions_list = new SubscriptionsList($subscriptions, $this->user, $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)); + - $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, - $this->page, 'subscriptions', - array('nickname' => $this->user->nickname)); + Event::handle('EndShowSubscriptionsContent', array($this)); + } } function showScripts() @@ -118,12 +126,24 @@ class SubscriptionsAction extends GalleryAction if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { - $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.'); + // 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 { + // 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); } @@ -141,6 +161,22 @@ class SubscriptionsAction extends GalleryAction $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)), + sprintf(_('Subscription feed for %s (Atom)'), + $this->profile->nickname))); + + } } // XXX SubscriptionsList and SubscriptionList are dangerously close @@ -191,17 +227,39 @@ class SubscriptionsListItem extends SubscriptionListItem $this->out->hidden('token', common_session_token()); $this->out->hidden('profile', $this->profile->id); if (common_config('xmpp', 'enabled')) { - $this->out->checkbox('jabber', _('Jabber'), $sub->jabber); + $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')) { - $this->out->checkbox('sms', _('SMS'), $sub->sms); + $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); } - $this->out->submit('save', _('Save')); + // TRANS: Save button for settings for a profile in a subscriptions list. + $this->out->submit('save', _m('BUTTON','Save')); $this->out->elementEnd('form'); return; } + }