Некоторое время назад была статья на тему отправки результатов вебформ телеграм-боту в Drupal 8, сегодня же переделаем данный модуль для работы в Drupal 7.

Процесс создания самого бота и получение его токена описывать не буду, т.к. он уже есть в прошлой статье. Здесь я только выложу код самого модуля под семёрку.

Как и в прошлый раз, создаем два файла модуля - .info и .module

В инфо-файле мы напишем информацию о модулее и версию движка

name = "Telegram notification"
description = "Webform notification in telegram."
package = "author"
core = 7.x
; Information added by Drupal.org packaging script on 2017-06-26
version = "7.x-1"
core = "7.x"
project = "telegram_notification"
datestamp = "1498476180"

Во втором файле у нас будет следующее содержимое

<?php

function telegram_notification_form_alter(&$form, &$form_state, $form_id) {

    if($form['#id'] == '*id_вашей_вебформы*'){
        $form['actions']['submit']['#submit'][] = '_telegram_notification_form_submit';
    }
}

function _telegram_notification_form_submit(&$form, &$form_state) {

    # Telegram data
    $telegram_token = 'bot*токен_вашего_бота*';
    $telegram_id_chat = '*id_чата_куда_бот_будет_отправлять_результаты*';

    if (!empty($telegram_token) && !empty($telegram_id_chat)) {

        # Form data
        $form_field = $form_state['values']['submitted'];
        $data_result = array(
            'name' => '<b>Имя:</b> ' . $form_field['vashe_imya'],
            'email' => '<b>Email:</b> ' . $form_field['elektronnaya_pochta_uskorit_otvet_na_vash_vopros'],
            'phone' => '<b>Сообщение:</b> ' . $form_field['vashe_soobshchenie']
        );
        # Send message
        $message = implode($data_result, '%0A');
        $send_message = fopen("https://api.telegram.org/{$telegram_token}/sendMessage?chat_id={$telegram_id_chat}&parse_mode=html&text={$message}", "r");
    }

}

Как видим основная часть осталась практически той же, кроме апи функций и массива вебформы, из которого мы берем данные для пересылки.

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.