]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Fix for background recalculation of groups; needs to get Group objects not IDs; also...
authorBrion Vibber <brion@pobox.com>
Fri, 15 Jan 2010 21:06:21 +0000 (13:06 -0800)
committerBrion Vibber <brion@pobox.com>
Fri, 15 Jan 2010 21:06:21 +0000 (13:06 -0800)
todo: merge calculation portion with saveGroups so they don't get out of sync

classes/Notice.php

index a43ce867b5f0d4c663442ee56e58ea5969fc50fb..38b10db048cf8cee663954b9210abcef7f5ab9f6 100644 (file)
@@ -826,6 +826,10 @@ class Notice extends Memcached_DataObject
         return $ids;
     }
 
+    /**
+     * @param $groups array of Group *objects*
+     * @param $recipients array of profile *ids*
+     */
     function whoGets($groups=null, $recipients=null)
     {
         $c = self::memcache();
@@ -925,6 +929,9 @@ class Notice extends Memcached_DataObject
         return $ids;
     }
 
+    /**
+     * @return array of Group objects
+     */
     function saveGroups()
     {
         // Don't save groups for repeats
@@ -1117,11 +1124,22 @@ class Notice extends Memcached_DataObject
         return $ids;
     }
 
+    /**
+     * Same calculation as saveGroups but without the saving
+     * @fixme merge the functions
+     * @return array of Group objects
+     */
     function getGroups()
     {
+        // Don't save groups for repeats
+
+        if (!empty($this->repeat_of)) {
+            return array();
+        }
+
         // XXX: cache me
 
-        $ids = array();
+        $groups = array();
 
         $gi = new Group_inbox();
 
@@ -1132,13 +1150,13 @@ class Notice extends Memcached_DataObject
 
         if ($gi->find()) {
             while ($gi->fetch()) {
-                $ids[] = $gi->group_id;
+                $groups[] = clone($gi);
             }
         }
 
         $gi->free();
 
-        return $ids;
+        return $groups;
     }
 
     function asAtomEntry($namespace=false, $source=false)