X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fnoticelist.php;h=91acbb8d580b6c8bb72b4de58c1f9b9d9a50fe6e;hb=ba4bda9beb8b51eb53c47ac32e435179cb9eecde;hp=f18b2d66841ffa7a2998123c0f30a2fa8cad9157;hpb=c97048d01bea468e0cf8865b60c3c250b4515c39;p=quix0rs-gnu-social.git diff --git a/lib/noticelist.php b/lib/noticelist.php index f18b2d6684..91acbb8d58 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -83,17 +83,16 @@ class NoticeList extends Widget $this->out->elementStart('div', array('id' =>'notices_primary')); $this->out->elementStart('ol', array('class' => 'notices xoxo')); - $cnt = 0; - - while ($this->notice->fetch() && $cnt <= NOTICES_PER_PAGE) { - $cnt++; - - if ($cnt > NOTICES_PER_PAGE) { - break; - } + $notices = $this->notice->fetchAll(); + $total = count($notices); + $notices = array_slice($notices, 0, NOTICES_PER_PAGE); + + self::prefill($notices); + + foreach ($notices as $notice) { try { - $item = $this->newListItem($this->notice); + $item = $this->newListItem($notice); $item->show(); } catch (Exception $e) { // we log exceptions and continue @@ -105,7 +104,7 @@ class NoticeList extends Widget $this->out->elementEnd('ol'); $this->out->elementEnd('div'); - return $cnt; + return $total; } /** @@ -122,4 +121,32 @@ class NoticeList extends Widget { return new NoticeListItem($notice, $this->out); } + + static function prefill(&$notices, $avatarSize=AVATAR_STREAM_SIZE) + { + // Prefill attachments + Notice::fillAttachments($notices); + // Prefill attachments + Notice::fillFaves($notices); + // Prefill repeat data + Notice::fillRepeats($notices); + // Prefill the profiles + $profiles = Notice::fillProfiles($notices); + // Prefill the avatars + Profile::fillAvatars($profiles, $avatarSize); + + $p = Profile::current(); + + if (!empty($p)) { + + $ids = array(); + + foreach ($notices as $notice) { + $ids[] = $notice->id; + } + + Memcached_DataObject::pivotGet('Fave', 'notice_id', $ids, array('user_id' => $p->id)); + Memcached_DataObject::pivotGet('Notice', 'repeat_of', $ids, array('profile_id' => $p->id)); + } + } }