]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/threadednoticelist.php
Correct args for join event
[quix0rs-gnu-social.git] / lib / threadednoticelist.php
index 45c11453a7a63699f9cfb866c39939375d08f9c2..dbf3de642d8021b1c4c5a41adab9fe03239541b4 100644 (file)
@@ -77,11 +77,11 @@ class ThreadedNoticeList extends NoticeList
         $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) {
@@ -120,7 +120,22 @@ class ThreadedNoticeList extends NoticeList
         $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;
     }
 
     /**
@@ -224,8 +239,6 @@ class ThreadedNoticeListItem extends NoticeListItem
                         $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);
@@ -250,12 +263,6 @@ class ThreadedNoticeListItem extends NoticeListItem
 
         parent::showEnd();
     }
-    
-    function prefill(&$notices)
-    {       
-       // Prefill the profiles
-       Notice::fillProfiles($notices);
-    }
 }
 
 // @todo FIXME: needs documentation.
@@ -477,9 +484,9 @@ class ThreadedNoticeListFavesItem extends NoticeListActorsItem
 {
     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;
@@ -551,12 +558,14 @@ class ThreadedNoticeListRepeatsItem extends NoticeListActorsItem
 {
     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;
     }