Астрологи объявили неделю телеграмма, количество постов удвоилось ;)
На вкладке "Команды" добавляете новую запись Сценарии с кодом:
//формируем массив названий кнопок, далее нужное по аналогии добавить здесь
$scripts = array('Перезапуск циклов',
'Перезапуск системы',
'Выключение системы');
$total = count($scripts);
for($i = 0; $i < $total; $i++) {
//формируем массив кнопок с настройками, $i = 0 соответствует первой кнопке
$option[] = $this->buildInlineKeyboardButton($scripts[$i], '', 'CallbackScripts_' . $i, '');
}
//количество кнопок в строке
$count_row = 3;
$option = array_chunk($option, $count_row);
$keyb = $this->buildInlineKeyBoard($option);
$content = array('chat_id' => $chat_id, 'text' => 'Выберите сценарий:', 'reply_markup' => $keyb);
$this->sendContent($content);
На вкладке события добавляем новую запись с названием CallbackScripts (это не критично, каллбеки вызываются все), ставим галку - включить и определяем тип События - Callback и кодом:
//у всех каллбеков, т.к. они вызываются все определяем условие по которому сработает нужный
if (strpos($callback, 'CallbackScripts_') !== false) {
$skip = true; //не перебираем далее остальные каллбеки
//определяем параметр переданный с нажатия кнопки
$scripts = substr($callback, 16);
switch ($scripts) {
case '0':
//соответствует первой кнопке
$script = 'restart';
break;
case '1':
$script = 'rebootSystem';
break;
case '2':
$script = 'shutDown';
break;
case '3':
break;
case '4':
break;
default:
}
//формируем всплывающее сообщение с названием скрипта
$this->sendAnswerCallbackQuery($callback_id, $script, false);
//выполняем заданный скрипт
runScriptSafe($script);
}
Если у Вас есть одноименные скрипты, поздравляю - при нажатии на клавиатуре в телеграмме они отработают!
п.с. никаких подключений модуля выполнять не нужно, все обращения к функциям выполняем через $this
Нижний Тагил, Россия
На форуме: Logrus