diff options
Diffstat (limited to 'actions/subscriptions.php')
-rw-r--r-- | actions/subscriptions.php | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/actions/subscriptions.php b/actions/subscriptions.php new file mode 100644 index 000000000..88e12f5d5 --- /dev/null +++ b/actions/subscriptions.php @@ -0,0 +1,77 @@ +<?php + +class SubscriptionsAction extends Action { + + function handle($args) { + parent::handle($args); + $nickname = $this->arg('nickname'); + $profile = Profile::staticGet('nickname', $nickname); + if (!$profile) { + $this->no_such_user(); + } + $user = User::staticGet($profile->id); + if (!$user) { + $this->no_such_user(); + } + $page = $this->arg('page') || 1; + $this->show_subscriptions($profile, $page); + } + + function show_subscriptions($profile, $page) { + + $sub = DB_DataObject::factory('subscriptions'); + $sub->subscriber = $profile->id; + + # We ask for an extra one to know if we need to do another page + + $sub->limit((($page-1)*SUBSCRIPTIONS_PER_PAGE)+1, SUBSCRIPTIONS_PER_PAGE + 1); + + $subs_count = $subs->find(); + + common_start_element('div', 'subscriptions'); + + $idx = 0; + + while ($subs->fetch()) { + $idx++; + if ($idx % SUBSCRIPTIONS_PER_ROW == 1) { + common_start_element('div', 'row'); + } + + common_start_element('a', array('title' => $subs->fullname || + $subs->nickname, + 'href' => $subs->profileurl, + 'class' => 'subscription')); + common_element('img', array('src' => $subs->avatar, + 'class' => 'avatar')); + common_end_element('a'); + + if ($idx % SUBSCRIPTIONS_PER_ROW == 0) { + common_end_element('div'); + } + + if ($idx == SUBSCRIPTIONS_PER_PAGE) { + break; + } + } + + if ($page > 1) { + common_element('a', array('href' => + common_local_url('subscriptions', + array('nickname' => $profile->nickname, + 'page' => $page - 1)), + 'class' => 'prev'), + _t('Previous')); + } + + if ($subs_count > SUBSCRIPTIONS_PER_PAGE) { + common_element('a', array('href' => + common_local_url('subscriptions', + array('nickname' => $profile->nickname, + 'page' => $page + 1)), + 'class' => 'next'), + _t('Next')); + } + common_end_element('div'); + } +}
\ No newline at end of file |