]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - plugins/TagSub/TagSub.php
Make optional arguments for getNoticeIds explicit
[quix0rs-gnu-social.git] / plugins / TagSub / TagSub.php
index a734b4fc5fc709a7695928139d3fd2099807fac2..c0c4c1ec86f4c2233f31fbf743563019a0d21605 100644 (file)
@@ -42,7 +42,6 @@ if (!defined('STATUSNET')) {
  *
  * @see      DB_DataObject
  */
-
 class TagSub extends Managed_DataObject
 {
     public $__table = 'tagsub'; // table name
@@ -120,6 +119,7 @@ class TagSub extends Managed_DataObject
         $ts->profile_id = $profile->id;
         $ts->created = common_sql_now();
         $ts->insert();
+        self::blow('tagsub:by_profile:%d', $profile->id);
         return $ts;
     }
 
@@ -135,6 +135,34 @@ class TagSub extends Managed_DataObject
                                     'profile_id' => $profile->id));
         if ($ts) {
             $ts->delete();
+            self::blow('tagsub:by_profile:%d', $profile->id);
         }
     }
+
+    static function forProfile(Profile $profile)
+    {
+        $tags = array();
+
+        $keypart = sprintf('tagsub:by_profile:%d', $profile->id);
+        $tagstring = self::cacheGet($keypart);
+        
+        if ($tagstring !== false) { // cache hit
+               if (!empty($tagstring)) {
+               $tags = explode(',', $tagstring);
+               }
+        } else {
+            $tagsub             = new TagSub();
+            $tagsub->profile_id = $profile->id;
+            $tagsub->selectAdd();
+            $tagsub->selectAdd('tag');
+
+            if ($tagsub->find()) {
+                               $tags = $tagsub->fetchAll('tag');
+            }
+
+            self::cacheSet($keypart, implode(',', $tags));
+        }
+
+        return $tags;
+    }
 }