X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FProfile.php;h=16484fbe6ebfbbca38d6eaabb67cd72a4f4410aa;hb=b78e5de474f08dee5440f4d672550f806da87989;hp=b9c50905a79e6dd06a3b35d01f6f7e660204d7ff;hpb=abcfde4d7d8c0cf64c02c134478e2911fcee6e86;p=quix0rs-gnu-social.git diff --git a/classes/Profile.php b/classes/Profile.php index b9c50905a7..16484fbe6e 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -321,36 +321,66 @@ class Profile extends Memcached_DataObject return false; } - function getOwnedTags($auth_user, $offset=0, $limit=null, $since_id=0, $max_id=0) + function getLists($auth_user, $offset=0, $limit=null, $since_id=0, $max_id=0) { - $tags = new Profile_list(); - $tags->tagger = $this->id; + $ids = array(); - if (($auth_user instanceof User || $auth_user instanceof Profile) && - $auth_user->id === $this->id) { - // no condition, get both private and public tags + $keypart = sprintf('profile:lists:%d', $this->id); + + $idstr = self::cacheGet($keypart); + + if ($idstr !== false) { + $ids = explode(',', $idstr); } else { - $tags->private = false; - } + $list = new Profile_list(); + $list->selectAdd(); + $list->selectAdd('id'); + $list->tagger = $this->id; + $list->selectAdd('id as "cursor"'); - $tags->selectAdd('id as "cursor"'); + if ($since_id>0) { + $list->whereAdd('id > '.$since_id); + } - if ($since_id>0) { - $tags->whereAdd('id > '.$since_id); - } + if ($max_id>0) { + $list->whereAdd('id <= '.$max_id); + } - if ($max_id>0) { - $tags->whereAdd('id <= '.$max_id); - } + if($offset>=0 && !is_null($limit)) { + $list->limit($offset, $limit); + } - if($offset>=0 && !is_null($limit)) { - $tags->limit($offset, $limit); + $list->orderBy('id DESC'); + + if ($list->find()) { + while ($list->fetch()) { + $ids[] = $list->id; + } + } + + self::cacheSet($keypart, implode(',', $ids)); } - $tags->orderBy('id DESC'); - $tags->find(); + $showPrivate = (($auth_user instanceof User || + $auth_user instanceof Profile) && + $auth_user->id === $this->id); - return $tags; + $lists = array(); + + foreach ($ids as $id) { + $list = Profile_list::staticGet('id', $id); + if (!empty($list) && + ($showPrivate || !$list->private)) { + + if (!isset($list->cursor)) { + $list->cursor = $list->id; + } + + $lists[] = $list; + } + } + + return new ArrayWrapper($lists); } function getOtherTags($auth_user=null, $offset=0, $limit=null, $since_id=0, $max_id=0) @@ -1323,42 +1353,4 @@ class Profile extends Memcached_DataObject } return $profile; } - - function getLists() - { - $ids = array(); - - $keypart = sprintf('profile:lists:%d', $this->id); - - $idstr = self::cacheGet($keypart); - - if ($idstr !== false) { - $ids = explode(',', $idstr); - } else { - $list = new Profile_list(); - $list->selectAdd(); - $list->selectAdd('id'); - $list->tagger = $this->id; - - if ($list->find()) { - while ($list->fetch()) { - $ids[] = $list->id; - } - } - - self::cacheSet($keypart, implode(',', $ids)); - } - - $lists = array(); - - foreach ($ids as $id) { - $list = Profile_list::staticGet('id', $id); - if (!empty($list) && - ($showPrivate || !$list->private)) { - $lists[] = $list; - } - } - - return new ArrayWrapper($lists); - } }