]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - classes/User_group.php
Merge branch '0.7.x' of git@gitorious.org:laconica/dev into 0.7.x
[quix0rs-gnu-social.git] / classes / User_group.php
index e8aaec744630a42ed394f874ae3c2828e1a0cb71..d152f9d567be0fa2996a7d7a9934c9d7cdc7f96e 100755 (executable)
@@ -2,7 +2,6 @@
 /**
  * Table Definition for user_group
  */
-require_once 'classes/Memcached_DataObject';
 
 class User_group extends Memcached_DataObject
 {
@@ -28,4 +27,77 @@ class User_group extends Memcached_DataObject
 
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
+
+    function defaultLogo($size)
+    {
+        static $sizenames = array(AVATAR_PROFILE_SIZE => 'profile',
+                                  AVATAR_STREAM_SIZE => 'stream',
+                                  AVATAR_MINI_SIZE => 'mini');
+        return theme_path('default-avatar-'.$sizenames[$size].'.png');
+    }
+
+    function homeUrl()
+    {
+        return common_local_url('showgroup',
+                                array('nickname' => $this->nickname));
+    }
+
+    function permalink()
+    {
+        return common_local_url('groupbyid',
+                                array('id' => $this->id));
+    }
+
+    function getNotices($offset, $limit)
+    {
+        $qry =
+          'SELECT notice.* ' .
+          'FROM notice JOIN group_inbox ON notice.id = group_inbox.notice_id ' .
+          'WHERE group_inbox.group_id = %d ';
+        return Notice::getStream(sprintf($qry, $this->id),
+                                 'group:notices:'.$this->id,
+                                 $offset, $limit);
+    }
+
+    function allowedNickname($nickname)
+    {
+        static $blacklist = array('new');
+        return !in_array($nickname, $blacklist);
+    }
+
+    function getMembers($offset=0, $limit=null)
+    {
+        $qry =
+          'SELECT profile.* ' .
+          'FROM profile JOIN group_member '.
+          'ON profile.id = group_member.profile_id ' .
+          'WHERE group_member.group_id = %d ' .
+          'ORDER BY group_member.created DESC ';
+
+        if ($limit != null) {
+            if (common_config('db','type') == 'pgsql') {
+                $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset;
+            } else {
+                $qry .= ' LIMIT ' . $offset . ', ' . $limit;
+            }
+        }
+
+        $members = new Profile();
+
+        $members->query(sprintf($qry, $this->id));
+        return $members;
+    }
+
+    function setOriginal($filename)
+    {
+        $imagefile = new ImageFile($this->id, Avatar::path($filename));
+        
+        $orig = clone($this);
+        $this->original_logo = Avatar::url($filename);
+        $this->homepage_logo = Avatar::url($imagefile->resize(AVATAR_PROFILE_SIZE));
+        $this->stream_logo = Avatar::url($imagefile->resize(AVATAR_STREAM_SIZE));
+        $this->mini_logo = Avatar::url($imagefile->resize(AVATAR_MINI_SIZE));
+        common_debug(common_log_objstring($this));
+        return $this->update($orig);
+    }
 }