# Клавиатура (KeyboardBuilder.php)

{% hint style="warning" %}
Перед использованием Сборщика клавиатуры, требуется создать переменную и вписать класс **`KeyboardBuilder`**

```php
$bot = new Bot....

$bot->start(...... {
  // подключаем
  $kb = $bot->kBuilder();
});
```

{% endhint %}

### [Документация от ВКонтакте про клавиатуру](https://vk.com/dev/bots_docs_3)

## Создание клавиатуры

* `@param array` — **Массив с кнопками**
* `@param boolean` — **Скрытие клавиатуры** (Default: false)
* `@param boolean` — **Клавиатура внутри сообщения** (Default: false)

```php
$kb->create(array $keyboard = [], bool $one_time = false, bool $inline = false);
```

## Очистка клавиатуры

```php
$kb->remove();
```

Далее, нужно отправить клавиатуру через `$kb->get()`

## Получение клавиатуры

Для отправки, нужно добавить при отправке сообщения параметр `keyboard`

```php
$msg->reply("отправка клавиатуры", [
  'keyboard' => $kb->get()
]);
```

## Добавление обычной кнопки

* `@param string` — **Текст кнопки**
* `@param string` — **Цвет кнопки**
  * `white` — **Белый**
  * `blue` — **Синий**
  * `red` — **Красный**
  * `green` — **Зелёный**
* `@param string` — **Дополнительная информация (Payload)**

```php
button(string $text, string $color = 'default', string $payload = '');
```

## Добавление кнопки с ссылкой

* `@param string` — **Текст кнопки**
* `@param string` — **Ссылка**

```php
$kb->link(string $text, string $link);
```

## Добавление кнопки с геолокацией

```php
$kb->location ();
```

## Добавление кнопки оплаты через vkpay

* `@param string` — **параметры платежа VK Pay и идентификатор приложения**

```php
$kb->vkpay(string $hash);
```

## Добавление кнопки с открытием приложения vkapps

* `@param string` — **Текст кнопки**
* `@param integer` — **Айди вызываемого приложения с типом VK Apps.**
* `@param integer` — **Айди сообщества, в котором установлено приложение, если требуется открыть в контексте сообщества**
* `@param string` — **Хэш для навигации в приложении, будет передан в строке параметров запуска после символа #**

```php
$kb->vkapps(string $text, int $app_id, int $owner_id, string $hash = '');
```

## Пример добавления клавиатуры

```php
require_once 'vkbot/autoload.php';

$bot = new Bot();
$bot->setToken('токен');

$bot->start(function($data)use($bot){

  $msg = $bot->getMessage();
  $kb = $bot->kBuilder(); // Подключаем билдера кнопок
  if ($msg->get("кнопки")) {
    $kb->create(
      [
        [ // <-- Начало первой строки
          $kb->button('красная кнопка', 'red'),
          $kb->button('зеленая кнопка', 'green'),
          $kb->button('синяя кнопка', 'blue')
        ], // <-- Конец первой строки 
        [ // <-- Начало второй строки
          $kb->link('кнопка с ссылкой', 'http://example.com'),
          $kb->location()
        ] // <-- Конец второй строки 
      ],
      // one_time (По стандарту false),
      // inline (По стандарту false)
    );
    /** 
    * Должно вывести клавиатуру в таком виде:
    *        [--] [--] [--]
    *          [--] [--]
    */
    $msg->reply('Отправляю клавиатуру:', [
      'keyboard' => $kb->get()
    ]);
  }

});
```
