$this->out->element('h2', null, _m('HEADER','Notices'));
$this->out->elementStart('ol', array('class' => 'notices threaded-notices xoxo'));
- $cnt = 0;
+ $notices = $this->notice->fetchAll();
+ $total = count($notices);
+ $notices = array_slice($notices, 0, NOTICES_PER_PAGE);
+
+ self::prefill(self::_allNotices($notices));
+
$conversations = array();
- while ($this->notice->fetch() && $cnt <= NOTICES_PER_PAGE) {
- $cnt++;
-
- if ($cnt > NOTICES_PER_PAGE) {
- break;
- }
+
+ foreach ($notices as $notice) {
// Collapse repeats into their originals...
- $notice = $this->notice;
+
if ($notice->repeat_of) {
$orig = Notice::staticGet('id', $notice->repeat_of);
if ($orig) {
$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;
}
/**
{
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;
}