function getAllFriends() { $cond = new Conditions(); $user = Users::getById($this->params['user_id']); $radiofilters = array('following' => array('title' => 'Мои друзья', 'default' => 1), 'followers' => array('title' => 'Я в друзьях', 'default' => 0), 'blacklisted' => array('title' => 'Чёрный список', 'default' => 0)); $cond->setRadioFilters($radiofilters, 't'); $type = $cond->getRadioFilterValue('t'); switch ($type) { case 'following': $ids = $user->getFollowing(); break; case 'followers': $ids = $user->getFollowers(); break; case 'blacklisted': $ids = array(); break; } $this->data['users'] = $this->_list($ids, array()); $uids = array(); foreach ($this->data['users'] as $uid => $data) { $uids[$data['id']] = $data['id']; } $sh = $rv = array(); if (count($uids)) { $query = 'SELECT COUNT(1) as cnt, id_user FROM `users_bookshelf` WHERE `id_user` IN(' . implode(',', $uids) . ') GROUP BY id_user'; $sh = Database::sql2array($query, 'id_user'); $query = 'SELECT COUNT(1) as cnt, id_user FROM `book_review` WHERE `id_user` IN(' . implode(',', $uids) . ') GROUP BY id_user'; $rv = Database::sql2array($query, 'id_user'); } foreach ($this->data['users'] as &$f) { $f['books_count'] = isset($sh[$f['id']]) ? $sh[$f['id']]['cnt'] : 0; $f['reviews_count'] = isset($rv[$f['id']]) ? $rv[$f['id']]['cnt'] : 0; $f['books_path'] = Config::need('www_path') . '/user/' . $f['id'] . '/books'; $f['contribution_path'] = Config::need('www_path') . '/user/' . $f['id'] . '/contribution'; } $this->data['users']['user_id'] = $user->id; $this->data['conditions'] = $cond->getConditions(); }