$this->out->elementStart('ol', array('class' => 'notices threaded-notices xoxo'));
$notices = $this->notice->fetchAll();
+ $total = count($notices);
$notices = array_slice($notices, 0, NOTICES_PER_PAGE);
- $this->prefill($notices);
+ self::prefill(self::_allNotices($notices));
- $cnt = 0;
$conversations = array();
foreach ($notices as $notice) {
$this->out->elementEnd('ol');
$this->out->elementEnd('div');
- return $cnt;
+ return $total;
+ }
+
+ function _allNotices($notices)
+ {
+ $convId = array();
+ foreach ($notices as $notice) {
+ $convId[] = $notice->conversation;
+ }
+ $convId = array_unique($convId);
+ $allMap = Memcached_DataObject::listGet('Notice', 'conversation', $convId);
+ $allArray = array();
+ foreach ($allMap as $convId => $convNotices) {
+ $allArray = array_merge($allArray, $convNotices);
+ }
+ return $allArray;
}
/**
$item = new ThreadedNoticeListMoreItem($moreCutoff, $this->out, count($notices));
$item->show();
}
- // XXX: replicating NoticeList::prefill(), annoyingly
- $this->prefill($notices);
foreach (array_reverse($notices) as $notice) {
if (Event::handle('StartShowThreadedNoticeSub', array($this, $this->notice, $notice))) {
$item = new ThreadedNoticeListSubItem($notice, $this->notice, $this->out);
parent::showEnd();
}
-
- function prefill(&$notices)
- {
- // Prefill the profiles
- Notice::fillProfiles($notices);
- }
}
// @todo FIXME: needs documentation.
{
function getProfiles()
{
- $fave = Fave::byNotice($this->notice->id);
+ $faves = $this->notice->getFaves();
$profiles = array();
- while ($fave->fetch()) {
+ foreach ($faves as $fave) {
$profiles[] = $fave->user_id;
}
return $profiles;
{
function getProfiles()
{
- $rep = $this->notice->repeatStream();
+ $repeats = $this->notice->getRepeats();
$profiles = array();
- while ($rep->fetch()) {
+
+ foreach ($repeats as $rep) {
$profiles[] = $rep->profile_id;
}
+
return $profiles;
}