/** * * Отыскивает по ключевому запросу пользователя * * @param string $query */ public function search($query) { $results = array(); try { $items = UsersDBManager::searchByLogin($query); foreach ($items as $row) { $results[] = array('id' => $row['id'], 'login' => $row['login'], 'email' => $row['email']); } } catch (Exception $e) { $results[] = array('id' => 0, 'login' => 'nothing ', 'email' => 'found'); } print json_encode($results); die; }
protected function searchUsers() { try { ACLUser::checkCurrentUserGrants([\UserAccount::PermissionName]); $items = \UsersDBManager::searchByLogin($this->searchPhrase); } catch (\Exception $e) { $items = []; } foreach ($items as $row) { $route = CMS::getInstance()->getDispatcher()->getNamed('dashboard.users.manage'); $add = new SearchResultModel(); $add->title = $row['login']; $add->icon = 'glyphicon glyphicon-user'; $add->link = $route->buildUrl() . '?id=' . $row['id']; $this->results[] = $add; } }
public function main($nPage = 0) { // Получаем элементы try { $aItem = UsersDBManager::selectPaged($nPage, PAGE_SIZE); $nItemCount = UsersDBManager::$nItemCount; } catch (Exception $e) { $this->jump('./'); } // $szTitle = 'Список пользователей.'; if (!empty($nPage)) { $szTitle .= ' Страница #' . intval($nPage); } $aBegin = array('Пользователи' => '#', $szTitle => '#'); $aButton = array('Добавить пользователя' => './manage?insert=1'); $aTableHeader = array(array(' ', '5'), array('Логин', '50'), array('Дата последней активности', '20'), array('Редактировать', 10)); // $design = CMSDesign::getInstance(); $design->begin($aBegin, $szTitle); $design->documentBegin(); $design->header($szTitle); $design->buttons($aButton); $design->formBegin(); $design->paging($nPage, ceil($nItemCount / PAGE_SIZE)); $design->tableBegin(); $design->tableHeader($aTableHeader); foreach ($aItem as $row) { $design->rowBegin(); $design->listCell(sprintf('<input type="checkbox" name="id[]" value="%d"/>', $row['id'])); $design->listCell(sprintf('<a href="manage?id=%d">%s</a>', $row['id'], $row['login'])); $design->listCell($row['last_activity_date']); $design->editCell('manage?id=' . $row['id']); $design->rowEnd(); } $design->tableEnd(); $design->paging($nPage, ceil($nItemCount / PAGE_SIZE)); $design->submit('delete', 'Удалить', 'Вы уверены, что хотите удалить этих пользователей?'); $design->formEnd(); $design->documentEnd(); $design->end(); $this->output(); }
/** * Возвращает определенную страницу пейджинга * @return */ public static function selectPaged($nCurrentPage, $nPageSize) { $nCurrentPage = intval($nCurrentPage); $nPageSize = intval($nPageSize); if ($nPageSize <= 0) { throw new Exception('Dimensions overflow. PageSize = "' . $nPageSize . '"'); } if ($nCurrentPage < 0) { throw new Exception('Dimensions overflow. CurrentPage = "' . $nCurrentPage . '"'); } $sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM `%s` ORDER by `login` ASC LIMIT %d,%d '; $sql = sprintf($sql, USERS_TABLE, $nCurrentPage * $nPageSize, $nPageSize); $aData = DB::query($sql); $aFound = DB::get('SELECT FOUND_ROWS() as `found`'); self::$nItemCount = $aFound['found']; self::$nPageCount = ceil($aFound['found'] / $nPageSize); // Проверяем на допустимые диапазоны поданные страницы if (self::$nPageCount <= $nCurrentPage && $nCurrentPage != 0) { throw new Exception('Incorrect page number "' . $nCurrentPage . '"'); } return $aData; }
/** * @param $id * * @return UserAccount * @throws NotFoundException */ public static function getById($id) { $data = UsersDBManager::get($id); $result = new UserAccount($data); return $result; }
protected static function insertIntoDB($aData) { $nId = UsersDBManager::insertProfile($aData['login'], $aData); return $nId; }