Example #1
0
 /**
  * Fetch a row of objects from the database
  *
  * @param null|CriteriaElement $criteria  criteria object
  * @param bool                 $id_as_key if true, use avatar_id as array key
  *
  * @return array
  */
 public function getObjectsWithCount(CriteriaElement $criteria = null, $id_as_key = false)
 {
     $ret = array();
     if ($criteria === null) {
         $criteria = new Criteria('');
     }
     $criteria->setGroupby('a.avatar_id');
     $criteria->setSort('avatar_weight, avatar_id');
     $qb = $this->db2->createXoopsQueryBuilder();
     $qb->select('a.*', 'COUNT(u.user_id) AS count')->fromPrefix('avatars_avatar', 'a')->leftJoinPrefix('l', 'avatars_user_link', 'u', 'u.avatar_id=a.avatar_id');
     $criteria->renderQb($qb);
     $result = $qb->execute();
     if (!$result) {
         return $ret;
     }
     while ($myrow = $result->fetch(\PDO::FETCH_ASSOC)) {
         $avatar = new AvatarsAvatar();
         $avatar->assignVars($myrow);
         $avatar->setUserCount($myrow['count']);
         if (!$id_as_key) {
             $ret[] = $avatar;
         } else {
             $ret[$myrow['avatar_id']] = $avatar;
         }
         unset($avatar);
     }
     return $ret;
 }