$url = "https://qna.habr.com/q/1093980";
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 1', '1');
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 2', '2');
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 3', '3');
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 4', '', $url );
$buttons[] = $this->buildInlineKeyBoardButton('Кнопка 5', '5');
// разбиваем кнопки по рядам
array_chunk($buttons, 3); // 3 кнопки в ряду
public function buildInlineKeyboardButton($text, $callback_data = '', $url = '') {
// рисуем кнопке текст
$replyMarkup = [ 'text' => $text, ];
// пишем одно из обязательных дополнений кнопке
if ($url != '') {
$replyMarkup['url'] = $url;
} elseif ($callback_data != '') {
$replyMarkup['callback_data'] = $callback_data;
}
// возвращаем кнопку
return $replyMarkup;
}
public function buildInlineKeyBoard(array $options) {
// собираем кнопки
$replyMarkup = [
'inline_keyboard' => $options, ];
// преобразуем в JSON объект
$encodedMarkup = json_encode($replyMarkup, true);
// возвращаем клавиатуру
return $encodedMarkup;
}