if (!defined('LACONICA')) { exit(1); }
-define('AVATARS_PER_ROW', 8);
+# 10x8
+
define('AVATARS_PER_PAGE', 80);
class GalleryAction extends Action {
$this->no_such_user();
return;
}
- $page = $this->arg('page') || 1;
+ $page = $this->arg('page');
+ if (!$page) {
+ $page = 1;
+ }
common_show_header($profile->nickname . ": " . $this->gallery_type(),
NULL, $profile,
array($this, 'show_top'));
}
function no_such_user() {
- $this->client_error(_t('No such user.'));
+ $this->client_error(_('No such user.'));
}
-
+
function show_top($profile) {
- common_element('p', 'instructions',
+ common_element('div', 'instructions',
$this->get_instructions($profile));
}
-
+
function show_gallery($profile, $page) {
$subs = new Subscription();
-
+
$this->define_subs($subs, $profile);
-
+
$subs->orderBy('created DESC');
# We ask for an extra one to know if we need to do another page
$subs_count = $subs->find();
- common_element_start('div', $this->div_class());
+ if ($subs_count == 0) {
+ common_element('p', _('Nobody to show!'));
+ return;
+ }
+
+ common_element_start('ul', $this->div_class());
+
+ for ($idx = 0; $idx < min($subs_count, AVATARS_PER_PAGE); $idx++) {
+
+ $result = $subs->fetch();
- $idx = 0;
+ if (!$result) {
+ common_debug('Ran out of subscribers too early.', __FILE__);
+ break;
+ }
+
+ $other = Profile::staticGet($this->get_other($subs));
- while ($subs->fetch()) {
-
- $idx++;
+ common_element_start('li');
- $other = Profile::staticGet($subs->subscribed);
-
common_element_start('a', array('title' => ($other->fullname) ?
$other->fullname :
$other->nickname,
'href' => $other->profileurl,
'class' => 'subscription'));
$avatar = $other->getAvatar(AVATAR_STREAM_SIZE);
- common_element('img',
- array('src' =>
- (($avatar) ? $avatar->url :
+ common_element('img',
+ array('src' =>
+ (($avatar) ? common_avatar_display_url($avatar) :
common_default_avatar(AVATAR_STREAM_SIZE)),
'width' => AVATAR_STREAM_SIZE,
'height' => AVATAR_STREAM_SIZE,
# XXX: subscribe form here
- if ($idx == AVATARS_PER_PAGE) {
- break;
- }
+ common_element_end('li');
}
- common_element_end('div');
-
- common_pagination($page > 1,
+ common_element_end('ul');
+
+ common_pagination($page > 1,
$subs_count > AVATARS_PER_PAGE,
- $page,
- $this->trimmed('action'),
+ $page,
+ $this->trimmed('action'),
array('nickname' => $profile->nickname));
}
-
+
function gallery_type() {
return NULL;
}
function define_subs(&$subs, &$profile) {
return;
}
-
+
+ function get_other(&$subs) {
+ return NULL;
+ }
+
function div_class() {
return '';
}