Exemplo n.º 1
0
 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();
 }