예제 #1
0
 private function getListUsers(array $filter)
 {
     $limit = !isset($this->params['limit']) ? self::USERS_ON_PAGE : (int) $this->params['limit'];
     $page = empty($this->params['page']) ? 1 : (int) $this->params['page'];
     $offset = ($page - 1) * $limit;
     $query = \Bitrix\Webdav\FolderInviteTable::getList(array('select' => array('*', 'INVITE_USER'), 'filter' => $filter, 'limit' => $limit, 'offset' => $offset, 'order' => array('ID' => 'ASC')));
     $users = array();
     while ($row = $query->fetch()) {
         $row = $this->reformatInviteRow($row);
         $users[] = $row;
     }
     $countQuery = new Query(\Bitrix\Webdav\FolderInviteTable::getEntity());
     $countQuery->addSelect(new ExpressionField('CNT', 'COUNT(1)'));
     $countQuery->setFilter($filter);
     $totalCount = $countQuery->setLimit(null)->setOffset(null)->exec()->fetch();
     $totalCount = $totalCount['CNT'];
     return array('USERS' => $users, 'COUNT' => count($users), 'PAGE' => $page, 'ON_PAGE' => self::USERS_ON_PAGE, 'TOTAL_COUNT' => intval($totalCount), 'TOTAL_PAGE' => ceil($totalCount / $limit));
 }