From f341780e1ff56a02d3283a1fb380f4fa0ac34ae9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 18 Jun 2008 13:24:44 -0400 Subject: [PATCH] more subscriptions/subscribers changes Showstream now shows subscriptions in reverse chron order, like the other pages. Added a callback method to figure out who the _other_ guy is in a subscription. Changed gallery page to be a UL of images. darcs-hash:20080618172444-84dde-b886f6f8170370ae1aaf2e7f996aff288a471145.gz --- actions/showstream.php | 3 ++- actions/subscribers.php | 4 ++++ actions/subscriptions.php | 4 ++++ lib/gallery.php | 36 ++++++++++++++++++++++++------------ 4 files changed, 34 insertions(+), 13 deletions(-) diff --git a/actions/showstream.php b/actions/showstream.php index f339e08987..d9637c3775 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -204,7 +204,8 @@ class ShowstreamAction extends StreamAction { $subs = DB_DataObject::factory('subscription'); $subs->subscriber = $profile->id; - + $subs->orderBy('created DESC'); + # We ask for an extra one to know if we need to do another page $subs->limit(0, SUBSCRIPTIONS + 1); diff --git a/actions/subscribers.php b/actions/subscribers.php index f5548d6535..de374d57aa 100644 --- a/actions/subscribers.php +++ b/actions/subscribers.php @@ -43,4 +43,8 @@ class SubscribersAction extends GalleryAction { function div_class() { return 'subscribers'; } + + function get_other(&$subs) { + return $subs->subscriber; + } } \ No newline at end of file diff --git a/actions/subscriptions.php b/actions/subscriptions.php index aba974f6e9..10aef54d80 100644 --- a/actions/subscriptions.php +++ b/actions/subscriptions.php @@ -43,4 +43,8 @@ class SubscriptionsAction extends GalleryAction { function div_class() { return 'subscriptions'; } + + function get_other(&$subs) { + return $subs->subscribed; + } } \ No newline at end of file diff --git a/lib/gallery.php b/lib/gallery.php index 6d21b8310f..d0c55d634b 100644 --- a/lib/gallery.php +++ b/lib/gallery.php @@ -68,15 +68,25 @@ class GalleryAction extends Action { $subs_count = $subs->find(); - common_element_start('div', $this->div_class()); + if ($subs_count == 0) { + common_element('p', _t('Nobody to show!')); + return; + } + + common_element_start('ul', $this->div_class()); - $idx = 0; - - while ($subs->fetch()) { + for ($idx = 0; $idx < min($subs_count, AVATARS_PER_PAGE); $idx++) { - $idx++; + $result = $subs->fetch(); + + if (!$result) { + common_debug('Ran out of subscribers too early.', __FILE__); + break; + } - $other = Profile::staticGet($subs->subscribed); + $other = Profile::staticGet($this->get_other($subs)); + + common_element_start('li'); common_element_start('a', array('title' => ($other->fullname) ? $other->fullname : @@ -97,14 +107,12 @@ class GalleryAction extends Action { common_element_end('a'); # XXX: subscribe form here - - if ($idx == AVATARS_PER_PAGE) { - break; - } + + common_element_end('li'); } - common_element_end('div'); - + common_element_end('ul'); + common_pagination($page > 1, $subs_count > AVATARS_PER_PAGE, $page, @@ -123,6 +131,10 @@ class GalleryAction extends Action { function define_subs(&$subs, &$profile) { return; } + + function get_other(&$subs) { + return NULL; + } function div_class() { return '';