diff options
-rw-r--r-- | actions/all.php | 6 | ||||
-rw-r--r-- | actions/allrss.php | 10 | ||||
-rw-r--r-- | actions/twitapistatuses.php | 4 | ||||
-rw-r--r-- | classes/User.php | 20 |
4 files changed, 15 insertions, 25 deletions
diff --git a/actions/all.php b/actions/all.php index 3d3d1c356..0f8cf587c 100644 --- a/actions/all.php +++ b/actions/all.php @@ -78,11 +78,11 @@ class AllAction extends StreamAction { $page = 1; } - $notice = $user->noticesWithFriends($page); + $notice = $user->noticesWithFriends(($page-1)*NOTICES_PER_PAGE, NOTICES_PER_PAGE + 1); + # XXX: revisit constant scope - $notice->limit((($page-1)*NOTICES_PER_PAGE), NOTICES_PER_PAGE + 1); - + $cnt = $notice->find(); if ($cnt > 0) { common_element_start('ul', array('id' => 'notices')); diff --git a/actions/allrss.php b/actions/allrss.php index a64b47641..b6701cfdc 100644 --- a/actions/allrss.php +++ b/actions/allrss.php @@ -43,13 +43,11 @@ class AllrssAction extends Rss10Action { $user = $this->user; - $notice = $user->noticesWithFriends(); + $notice = $user->noticesWithFriends(0, $limit); + + # XXX: revisit constant scope - if ($limit != 0) { - $notice->limit(0, $limit); - } - - $notice->find(); + $cnt = $notice->find(); while ($notice->fetch()) { $notices[] = clone($notice); diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index 749f2f084..56a8199b7 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -223,9 +223,7 @@ class TwitapistatusesAction extends TwitterapiAction { $link = common_local_url('all', array('nickname' => $user->nickname)); $subtitle = sprintf(_("Updates from %s and friends on %s!"), $user->nickname, $sitename); - $notice->$user->noticesWithFriends(); - - $notice->limit((($page-1)*20), $count); + $notice->$user->noticesWithFriends(($page-1)*20, $count); $cnt = $notice->find(); diff --git a/classes/User.php b/classes/User.php index 1772b82e0..4f46653e4 100644 --- a/classes/User.php +++ b/classes/User.php @@ -128,23 +128,17 @@ class User extends DB_DataObject return true; } - - function noticesWithFriends() { + + function noticesWithFriends($offset=0, $limit=20) { $notice = new Notice(); - $notice->selectAs(); - - $subscription = new Subscription(); + $notice->query('SELECT notice.* ' . + 'FROM notice JOIN subscription on notice.profile_id = subscription.subscribed' . + 'WHERE subscription.subscriber = ' . $this->id . + 'ORDER BY created DESC, notice.id DESC ' . + 'LIMIT ' . $offset . ', ' . $limit); - $subscription->subscriber = $this->id; - - $notice->joinAdd($subscription); - $notice->whereAdd('notice.profile_id = subscription.subscribed'); - $notice->selectAs($subscription, 'sub_%'); - - $notice->orderBy('created DESC, notice.id DESC'); - return $notice; } } |