yudaapratama / inline-keyboard-calendar
内联键盘日历Telegram机器人
v1.0.1
2022-01-08 06:03 UTC
This package is auto-updated.
Last update: 2024-09-08 13:24:57 UTC
README
简单的内联键盘日历,受unmonoqueteclea启发
安装
使用包管理器composer进行安装。
composer require yudaapratama/inline-keyboard-calendar
使用方法
use yudaapratama\Calendar\InlineKeyboardCalendar; //Define Inline Keyboard Calendar $keyboard = new InlineKeyboardCalendar(); $keyboard->setConfigDate("2022-01"); //Set the date for first show inline keyboard $keyboard->Calendar();
示例
使用longman库的Telegram机器人示例。
//CalendarCommand.php namespace Longman\TelegramBot\Commands\SystemCommands; use Longman\TelegramBot\Commands\SystemCommand; use Longman\TelegramBot\Entities\ServerResponse; use Longman\TelegramBot\Entities\InlineKeyboard; use Longman\TelegramBot\Request; use yudaapratama\Calendar\InlineKeyboardCalendar; .... $keyboard = new InlineKeyboardCalendar(); $keyboard->setConfigDate("2022-01"); $inlineKeyboard = new InlineKeyboard(...$keyboard->Calendar()); $format = [ 'chat_id' => $chatId, 'message_id' => $callbackMessageId, 'text' => "Choose a date", 'reply_markup' => $inlineKeyboard ]; return Request::editMessageText($format);
//QallbackqueryCommand.php .... use yudaapratama\Calendar\InlineKeyboardCalendar; .... list($action, $data) = explode("::", $callbackData); switch ($action) { case 'day': //case when button date is selected $format = [ 'chat_id' => $callbackChatId, 'message_id' => $callbackMessageId, 'text' => "Selected date: " . $data, 'reply_markup' => $inlineKeyboard ]; return Request::editMessageText($format); break; case 'ignore': //case when selected except the date return $callbackQuery->answer([ 'text' => 'Oops choose another date.', 'show_alert' => true, 'cache_time' => 5, ]); break; case 'prev': //when the prev button pressed $keyboard = new InlineKeyboardCalendar(); $keyboard->setConfigDate($data); $keyboar $inlineKeyboard = new InlineKeyboard(...$keyboard->Calendar()); $format = [ 'chat_id' => $callbackChatId, 'message_id' => $callbackMessageId, 'text' => "Choose a date", 'reply_markup' => $inlineKeyboard ]; return Request::editMessageText($format); break; case 'next': //when the next button pressed $keyboard = new InlineKeyboardCalendar(); $keyboard->setConfigDate($data); $keyboar $inlineKeyboard = new InlineKeyboard(...$keyboard->Calendar()); $format = [ 'chat_id' => $callbackChatId, 'message_id' => $callbackMessageId, 'text' => "Choose a date", 'reply_markup' => $inlineKeyboard ]; return Request::editMessageText($format); break; }