1
2
3
$paginator = ABC::newService(ABC::PAGINATOR);
1 | setNums() | Устанавливает значения для пагинации |
2 | getLimit() | Возвращает количество рядов |
3 | getOffset() | Возвращает текущий сдвиг |
4 | createMenu() | Генерирует меню навигации |
Устанавливает значения для пагинации.
Метод принимает и устанавливает значения текущей страницы, а также количество рядов на странице и количество колонок при выводе записей «плиткой»
public Paginator::setNums ( $page = 1, $rows = 1, $columns = 1 ) | ||
$page | int | Номер текущей страницы. |
$rows | int | Количество рядов на странице |
$columns | int | Количество колонок при выводе «плиткой» |
return | void |
---|
Возвращает количество рядов.
Рассчитывает и возвращает количество отображаемых рядов, в зависимости от настроек.
public Paginator::getLimit ( ) | ||
return | int | Число рядов отображения |
---|
Возвращает текущий сдвиг.
Рассчитывает и возвращает сдвиг рядов, в зависимости от настроек и текущей страницы.
public Paginator::getOffset ( $count ) | ||
$count | int | Общее количество записей в таблице. |
return | int | Число рядов сдвига |
---|
Генерирует меню навигации.
Возвращает меню постраничной навигации согласно рассчитанным параметрам.
public Paginator::createMenu ( $uri, $param = 'num' ) | ||
$uri | string | URI для меню постраничной навигации, куда будет добавлены параметры с номерами страниц. |
$param | string | Имя GET-параметра, который содержит номер текущей страницы. |
return | string | Меню навигации. |
---|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$pdo = ABC::sharedService(ABC::PDO);
// Получаем общее количество строк в таблице
$stmt = $pdo->query("SELECT COUNT(`id`) AS `cnt` FROM `table`");
$cnt = $stmt->fetchColumn();
// Вызываем сервис пагинатора
$paginator = ABC::newService(ABC::PAGINATOR);
// Устанавливаем номер текущей страницы, а также количество записей на странице
$num = GET('num');
$amount = 5;
// Передаем значения в пагинатор
$paginator->setNums($num, $amount);
// Получаем лимит и офсет для запроса
$limit = $paginator->getLimit();
$offset = $paginator->getOffset($cnt);
// Меню постраничной навигации
$menu = $paginator->createMenu('/page', 'num');
// Выполняем запрос с полученным лимитом и сдвигом
$stmt = $pdo->query("SELECT * FROM `table`
LIMIT ". $limit .' OFFSET '. $offset);