function getSubscribed($offset=0, $limit=null)
{
$subs = Subscription::getSubscribedIDs($this->id, $offset, $limit);
- $profiles = Profile::listFind('id', $subs);
+ try {
+ $profiles = Profile::listFind('id', $subs);
+ } catch (NoResultException $e) {
+ return $e->obj;
+ }
return $profiles;
}
function getSubscribers($offset=0, $limit=null)
{
$subs = Subscription::getSubscriberIDs($this->id, $offset, $limit);
- $profiles = Profile::listFind('id', $subs);
+ try {
+ $profiles = Profile::listFind('id', $subs);
+ } catch (NoResultException $e) {
+ return $e->obj;
+ }
return $profiles;
}
class NoAvatarException extends NoResultException
{
- public function __construct(Profile $target, Avatar $avatar)
+ public $target;
+
+ public function __construct(Profile $target, Avatar $obj)
{
- parent::__construct($avatar);
+ $this->target = $target;
+ parent::__construct($obj);
}
}
class NoResultException extends ServerException
{
+ public $obj; // The object with query that gave no results
+
public function __construct(DB_DataObject $obj)
{
+ $this->obj = $obj;
// We could log an entry here with the search parameters
parent::__construct(sprintf(_('No result found on %s lookup.'), get_class($obj)));
}
function showProfiles()
{
- // Note: we don't use fetchAll() because it's borked with query()
-
- $profiles = array();
-
- while ($this->profile->fetch()) {
- $profiles[] = clone($this->profile);
- }
-
- $cnt = count($profiles);
+ $cnt = $this->profile->N;
+ $profiles = $this->profile->fetchAll();
$max = min($cnt, $this->maxProfiles());