php-telegram-bot / inline-keyboard-pagination
PHP Telegram Bot 内联键盘分页
1.1.0
2021-07-10 15:57 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-10 23:01:02 UTC
README
安装
Composer
composer require php-telegram-bot/inline-keyboard-pagination
用法
测试数据
$items = range(1, 100); // required. $command = 'testCommand'; // optional. Default: pagination $selectedPage = 10; // optional. Default: 1 $labels = [ // optional. Change button labels (showing defaults) 'default' => '%d', 'first' => '« %d', 'previous' => '‹ %d', 'current' => '· %d ·', 'next' => '%d ›', 'last' => '%d »', ]; // optional. Change the callback_data format, adding placeholders for data (showing default) $callbackDataFormat = 'command={COMMAND}&oldPage={OLD_PAGE}&newPage={NEW_PAGE}'
如何使用
// Define inline keyboard pagination. $ikp = new InlineKeyboardPagination($items, $command); $ikp->setMaxButtons(7, true); // Second parameter set to always show 7 buttons if possible. $ikp->setLabels($labels); $ikp->setCallbackDataFormat($callbackDataFormat); // Get pagination. $pagination = $ikp->getPagination($selectedPage); // or, in 2 steps. $ikp->setSelectedPage($selectedPage); $pagination = $ikp->getPagination();
现在,$pagination['keyboard']
基本上是一个包含分页的行。
// Use it in your request. if (!empty($pagination['keyboard'])) { //$pagination['keyboard'][0]['callback_data']; // command=testCommand&oldPage=10&newPage=1 //$pagination['keyboard'][1]['callback_data']; // command=testCommand&oldPage=10&newPage=7 ... $data['reply_markup'] = [ 'inline_keyboard' => [ $pagination['keyboard'], ], ]; ... }
要获取回调数据,您可以使用提供的辅助方法(仅当使用默认回调数据格式时有效)
// e.g. Callback data. $callback_data = 'command=testCommand&oldPage=10&newPage=1'; $params = InlineKeyboardPagination::getParametersFromCallbackData($callbackData); //$params = [ // 'command' => 'testCommand', // 'oldPage' => '10', // 'newPage' => '1', //]; // or, just use PHP directly if you like. (literally what the helper does!) parse_str($callbackData, $params);
代码质量
通过Composer脚本来运行PHPUnit测试。
composer test
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件。
本项目基于Telegram Bot Pagination,由lartie开发。