]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/Favorite/classes/Fave.php
pluginified most of hasFave, getFaves and related calls
[quix0rs-gnu-social.git] / plugins / Favorite / classes / Fave.php
index 207614329681e3da8ebca87047f474087ca9b1bd..130cf6aa780ae9b18ff937091bc281d9ef84d659 100644 (file)
@@ -157,6 +157,12 @@ class Fave extends Managed_DataObject
         return $act;
     }
 
+    static function existsForProfile($notice, Profile $scoped) {
+        $fave = self::pkeyGet(array('user_id'=>$scoped->id, 'notice_id'=>$notice->id));
+
+        return ($fave instanceof Fave);
+    }
+
     /**
      * Fetch a stream of favorites by profile
      *
@@ -201,4 +207,28 @@ class Fave extends Managed_DataObject
                             $notice_id,
                             common_date_iso8601($modified));
     }
+
+
+    static protected $_faves = array();
+
+    /**
+     * All faves of this notice
+     *
+     * @param Notice $notice A notice we wish to get faves for (may still be ArrayWrapper)
+     *
+     * @return array Array of Fave objects
+     */
+    static public function byNotice($notice)
+    {
+        if (!isset(self::$_faves[$notice->id])) {
+            self::fillFaves(array($notice->id));
+        }
+        return self::$_faves[$notice->id];
+    }
+
+    static public function fillFaves(array $notice_ids)
+    {
+        $faveMap = Fave::listGet('notice_id', $notice_ids);
+        self::$_faves = array_replace(self::$_faves, $faveMap);
+    }
 }