Pagination
Класс Pagination предоставляет удобный инструмент для создания постраничной навигации (пагинации) для клавиатур. Он автоматически разбивает массив кнопок на страницы и добавляет кнопки навигации.
Конструктор класса не принимает значений
Создание экземпляра pagination через ZG
Для создания экземпляра класса используется pagination – метод из класса ZG. Этот метод является «синтаксическим сахаром».
php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Button;
$tg = ZG::create(BOT_TOKEN);
// Генерируем массив кнопок (например, 20 штук)
$items = [];
for ($i = 1; $i <= 20; $i++) {
$items[] = Button::cb("Товар $i", "item_$i");
}
// Создаем пагинацию
$keyboard = $tg->pagination()
->setItems($items) // Передаем кнопки
->setPerPage(5) // 5 кнопок на странице
->setColumns(1) // В 1 колонку
->setPage(1) // Текущая страница
->setPrefix('page_') // Префикс для кнопок навигации
->create(); // Собираем массив
// Отправляем сообщение с клавиатурой
$tg->msg("Выберите товар (Страница 1):")
->inlineKbd($keyboard)
->send();Создание экземпляра pagination через new
Для создания экземпляра класса потребуется его импорт и стандартный синтаксис:
php
<?php
require_once __DIR__ . '/vendor/autoload.php';
use ZenithGram\ZenithGram\ZG;
use ZenithGram\ZenithGram\Pagination;
use ZenithGram\ZenithGram\Button;
// Генерируем массив кнопок (например, 20 штук)
$items = [];
for ($i = 1; $i <= 20; $i++) {
$items[] = Button::cb("Товар $i", "item_$i");
}
$pag = new Pagination();
// Создаем пагинацию
$keyboard = $pag->setItems($items) // Передаем кнопки
->setPerPage(5) // 5 кнопок на странице
->setColumns(1) // В 1 колонку
->setPage(1) // Текущая страница
->setPrefix('page_') // Префикс для кнопок навигации
->create(); // Собираем массив
$tg = ZG::create(BOT_TOKEN);
// Отправляем сообщение с клавиатурой
$tg->msg("Выберите товар (Страница 1):")
->inlineKbd($keyboard)
->send();Оба примера равнозначны