X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Fsubscriptions.php;h=3fbea2039d29ec3250acf1b20a2471d99b4288d1;hb=05b04b7970d1b0f1e35a64a5537ad61e2fb8db1c;hp=604428cf355b1bb567134fa60e2036ab5e118b81;hpb=a30d405328d60edde01032b1770418a0021651e6;p=quix0rs-gnu-social.git diff --git a/actions/subscriptions.php b/actions/subscriptions.php index 604428cf35..3fbea2039d 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -2,7 +2,7 @@ /** * Laconica, the distributed open-source microblogging tool * - * User profile page + * List of a user's subscriptions * * PHP version 5 * @@ -19,7 +19,7 @@ * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * - * @category Personal + * @category Social * @package Laconica * @author Evan Prodromou * @author Sarven Capadisli @@ -32,18 +32,10 @@ if (!defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/lib/subsgroupnav.php'; - /** - * User profile page - * - * When I created this page, "show stream" seemed like the best name for it. - * Now, it seems like a really bad name. + * A list of the user's subscriptions * - * It shows a stream of the user's posts, plus lots of profile info, links - * to subscriptions and stuff, etc. - * - * @category Personal + * @category Social * @package Laconica * @author Evan Prodromou * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 @@ -52,62 +44,8 @@ require_once INSTALLDIR.'/lib/subsgroupnav.php'; if (!defined('LACONICA')) { exit(1); } -class SubscriptionsAction extends Action +class SubscriptionsAction extends GalleryAction { - var $profile = null; - var $user = null; - var $page = null; - - function prepare($args) - { - parent::prepare($args); - - // FIXME very similar code below - - $nickname_arg = $this->arg('nickname'); - $nickname = common_canonical_nickname($nickname_arg); - - // Permanent redirect on non-canonical nickname - - if ($nickname_arg != $nickname) { - $args = array('nickname' => $nickname); - if ($this->arg('page') && $this->arg('page') != 1) { - $args['page'] = $this->arg['page']; - } - common_redirect(common_local_url('subscriptions', $args), 301); - return false; - } - - $this->user = User::staticGet('nickname', $nickname); - - if (!$this->user) { - $this->clientError(_('No such user.'), 404); - return false; - } - - $this->profile = $this->user->getProfile(); - - if (!$this->profile) { - $this->serverError(_('User has no profile.')); - return false; - } - - $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; - - return true; - } - - function isReadOnly() - { - return true; - } - - function handle($args) - { - parent::handle($args); - $this->showPage(); - } - function title() { if ($this->page == 1) { @@ -134,22 +72,29 @@ class SubscriptionsAction extends Action } } - function showLocalNav() + function getAllTags() { - $nav = new SubGroupNav($this, $this->user); - $nav->show(); + return $this->getTags('subscribed', 'subscriber'); } function showContent() { + parent::showContent(); + $offset = ($this->page-1) * PROFILES_PER_PAGE; $limit = PROFILES_PER_PAGE + 1; - $subscriptions = $this->user->getSubscriptions($offset, $limit); + $cnt = 0; + + if ($this->tag) { + $subscriptions = $this->user->getTaggedSubscriptions($this->tag, $offset, $limit); + } else { + $subscriptions = $this->user->getSubscriptions($offset, $limit); + } - if ($subs) { - $subscriptions_list = new SubscriptionsList($subscriptions, null, $this); - $subscriptions_list->show(); + if ($subscriptions) { + $subscriptions_list = new SubscriptionsList($subscriptions, $this->user, $this); + $cnt = $subscriptions_list->show(); } $subscriptions->free(); @@ -170,16 +115,16 @@ class SubscriptionsList extends ProfileList return; } - $this->elementStart('form', array('id' => 'subedit-' . $profile->id, + $this->out->elementStart('form', array('id' => 'subedit-' . $profile->id, 'method' => 'post', - 'class' => 'subedit', + 'class' => 'form_subcription_edit', 'action' => common_local_url('subedit'))); - $this->hidden('token', common_session_token()); - $this->hidden('profile', $profile->id); - $this->checkbox('jabber', _('Jabber'), $sub->jabber); - $this->checkbox('sms', _('SMS'), $sub->sms); - $this->submit('save', _('Save')); - $this->elementEnd('form'); + $this->out->hidden('token', common_session_token()); + $this->out->hidden('profile', $profile->id); + $this->out->checkbox('jabber', _('Jabber'), $sub->jabber); + $this->out->checkbox('sms', _('SMS'), $sub->sms); + $this->out->submit('save', _('Save')); + $this->out->elementEnd('form'); return; } }