gnu-social/actions/subscriptions.php

77 lines
1.9 KiB
PHP

<?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');
}
}