]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
user subscriptions methods
authorEvan Prodromou <evan@controlyourself.ca>
Wed, 21 Jan 2009 18:00:30 +0000 (13:00 -0500)
committerEvan Prodromou <evan@controlyourself.ca>
Wed, 21 Jan 2009 18:00:30 +0000 (13:00 -0500)
classes/User.php

index c1849abc6caf5465ede27a8f3283a11f70dee8cd..9a1ebddc414c858cfa07a3706212f713c34ee5f0 100644 (file)
@@ -521,7 +521,7 @@ class User extends Memcached_DataObject
         }
     }
 
-    function getGroups($offset, $limit)
+    function getGroups($offset=0, $limit=null)
     {
         $qry =
           'SELECT user_group.* ' .
@@ -530,16 +530,66 @@ class User extends Memcached_DataObject
           'WHERE group_member.profile_id = %d ' .
           'ORDER BY group_member.created DESC ';
 
+        if ($offset) {
+            if (common_config('db','type') == 'pgsql') {
+                $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
+            } else {
+                $qry .= ' LIMIT ' . $offset . ', ' . $limit;
+            }
+        }
+
+        $groups = new User_group();
+
+        $cnt = $groups->query(sprintf($qry, $this->id));
+
+        return $groups;
+    }
+
+    function getSubscriptions($offset=0, $limit=null)
+    {
+        $qry =
+          'SELECT profile.* ' .
+          'FROM profile JOIN subscription ' .
+          'ON profile.id = subscription.subscribed ' .
+          'WHERE subscription.subscriber = %d ' .
+          'AND subscription.subscribed != subscription.subscriber ' .
+          'ORDER BY subscription.created DESC ';
+
         if (common_config('db','type') == 'pgsql') {
             $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
         } else {
             $qry .= ' LIMIT ' . $offset . ', ' . $limit;
         }
 
-        $groups = new User_group();
+        $profile = new Profile();
 
-        $cnt = $groups->query(sprintf($qry, $this->id));
+        $profile->query(sprintf($qry, $this->id));
 
-        return $groups;
+        return $profile;
+    }
+
+    function getSubscribers($offset=0, $limit=null)
+    {
+        $qry =
+          'SELECT profile.* ' .
+          'FROM profile JOIN subscription ' .
+          'ON profile.id = subscription.subscriber ' .
+          'WHERE subscription.subscribed = %d ' .
+          'AND subscription.subscribed != subscription.subscriber ' .
+          'ORDER BY subscription.created DESC ';
+
+        if ($offset) {
+            if (common_config('db','type') == 'pgsql') {
+                $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
+            } else {
+                $qry .= ' LIMIT ' . $offset . ', ' . $limit;
+            }
+        }
+
+        $profile = new Profile();
+
+        $cnt = $profile->query(sprintf($qry, $this->id));
+
+        return $profile;
     }
 }