/** * Get the Nth most recent group membership for this user * * @param User $user The user to get memberships for * @param integer $n How far to count back * * @return Group_member a membership or null */ private function _getNthMem($user, $n) { $mem = new Group_member(); $mem->profile_id = $user->id; $mem->orderBy('created DESC'); $mem->limit($n - 1, 1); if ($mem->find(true)) { return $mem; } else { return null; } }
/** * Get stream of memberships by member * * @param integer $memberId profile ID of the member to fetch for * @param integer $offset offset from start of stream to get * @param integer $limit number of memberships to get * * @return Group_member stream of memberships, use fetch() to iterate */ static function byMember($memberId, $offset = 0, $limit = GROUPS_PER_PAGE) { $membership = new Group_member(); $membership->profile_id = $memberId; $membership->orderBy('created DESC'); $membership->limit($offset, $limit); $membership->find(); return $membership; }
function getMemberIDs($offset = 0, $limit = null) { $gm = new Group_member(); $gm->selectAdd(); $gm->selectAdd('profile_id'); $gm->group_id = $this->id; $gm->orderBy('created DESC'); if (!is_null($limit)) { $gm->limit($offset, $limit); } $ids = array(); if ($gm->find()) { while ($gm->fetch()) { $ids[] = $gm->profile_id; } } return $ids; }