send2form v2.2 - Документация

Инструкции | Сегодня, 13:41 21

Универсальная система обработки форм и уведомлений
Разработка: Веб-студия TCSE
Версия: 2.2 (Production-ready)

🎯 Что такое send2form

send2form — это готовое PHP-решение для организации обратной связи на сайте с мультиканальной доставкой уведомлений.

Основные возможности:

  • 📝 Обработка форм с сайта (заявки, обратная связь)

  • 📱 Мультиканальная доставка (MAX, Telegram, Email)

  • 🤖 Вебхук-бот для MAX с поддержкой команд

  • 📧 Режим пересылки сообщений из MAX на email

  • 📰 RSS-агрегатор с доставкой в личные сообщения

  • 🎨 Встраиваемые виджеты для любых сайтов

  • 📊 Панель просмотра заявок с защитой паролем


🚀 Быстрый старт

1. Загрузите файлы на сервер

text
/public_html/plugins/tcse/send2form/

2. Настройте order.php

php
// === НАСТРОЙКИ ===
const MAX_TOKEN = 'ваш_токен_бота_в_MAX';
const MAX_USER_ID = 'ваш_user_id'; // Получить через /myid у бота

const TG_TOKEN = 'ваш_токен_бота_в_Telegram';
const TG_CHATID = 'ID_группы_или_канала';

const EMAIL_TO = 'ваш_email@mail.ru';
	

3. Настройте вебхук для MAX

bash
curl -X POST "https://platform-api.max.ru/subscriptions" 
  -H "Authorization: ваш_токен" 
  -H "Content-Type: application/json" 
  -d '{
    "url": "https://ваш-сайт.ru/plugins/tcse/send2form/webhook/max.php",
    "events": ["message_created", "bot_added", "bot_started"]
  }'
	

📝 Форма заявки (order.php)

Назначение

Принимает данные из формы и отправляет уведомления во все настроенные каналы.

Формат запроса

json
{
  "product": "Название товара или услуги",
  "name": "Имя пользователя",
  "phone": "+7 999 123 45 67",
  "email": "user@mail.ru",
  "message": "Сообщение пользователя",
  "link": "https://сайт.ру/страница"
}
	

Куда отправляется заявка

Канал Что отправляется
MAX Личное сообщение администратору
Telegram Сообщение в группу/канал (с поддержкой прокси)
Email HTML-письмо на один или несколько адресов
CSV Сохранение в файл data/order.csv

Отключение каналов

php
const ENABLE_TELEGRAM = true;  // false — отключить
const ENABLE_MAX = true;       // false — отключить
const ENABLE_EMAIL = true;     // false — отключить
const ENABLE_CSV = true;       // false — отключить
	

🤖 Вебхук-бот для MAX

Архитектура

text
webhook/max.php (маршрутизатор)
  ├── modules/max/core.php     (базовые команды)
  ├── modules/max/email.php    (пересылка на email)
  └── modules/max/rss.php      (RSS-подписки)
	

Доступные команды

Команда Описание
/start Приветствие и список основных команд
/help Полный список команд
/myid Показать User ID и Chat ID
/info Информация о боте
/ping Проверка связи
/max2email Включить режим пересылки на email
/send Отправить накопленные сообщения
/cancel Выйти из режима пересылки
/subscribe Подписаться на RSS-анонсы
/unsubscribe Отписаться от RSS
/rss Статус RSS-подписки
/rssadmin Список подписчиков (админ)
/rssrun Запустить RSS-парсер (админ)
/menu Главное меню с кнопками

Пример: получение ID пользователя

text
Пользователь: /myid
Бот: 🆔 Ваш ID в MAX:
      👤 Имя: Vitaly веб-студия TCSE
      🔑 User ID: 69325555
      💬 Chat ID: 400953910
	

📧 Режим пересылки на email (/max2email)

Как работает

  1. Пользователь пишет /max2email

  2. Бот включает режим буферизации

  3. Все сообщения накапливаются в буфере

  4. Отправка происходит:

    • Автоматически через 3 минуты бездействия

    • По команде /send

  5. Команда /cancel отключает режим

Пример работы

text
Пользователь: /max2email
Бот: 📧 Режим пересылки включен!
     Сообщения накапливаются и отправляются единым письмом.
     🔄 Автоотправка через 3 мин.
     📨 /send — отправить сейчас
     🚫 /cancel — выключить

Пользователь: Сообщение 1
Бот: 💬 Сообщение добавлено в буфер (1 шт.)

Пользователь: Сообщение 2
Бот: 💬 Сообщение добавлено в буфер (2 шт.)

Пользователь: /send
Бот: ✅ Отправлено 2 сообщения на email!
	

Формат письма

Письмо приходит в HTML-формате:

text
📨 Сообщения из MAX (2)

✉️ СООБЩЕНИЕ
👤 От: Vitaly веб-студия TCSE (ID: 69325555)
🕐 Дата: 19.06.2026 14:06:42
Текст сообщения

✉️ СООБЩЕНИЕ
👤 От: Пользователь (ID: 12345678)
🕐 Дата: 19.06.2026 14:07:05
Еще одно сообщение
	

Пересылка чужих сообщений

Если вы пересылаете боту сообщение от другого пользователя, в письме отображается:

text
🔄 ПЕРЕСЛАНО
👤 От: Антон (ID: 44576287) (переслано от Vitaly веб-студия TCSE, ID: 69325555)
🕐 Дата: 18.06.2026 09:15:22
Текст оригинального сообщения
📎 Файл (переслано)
	

🎛️ Инлайн-кнопки в MAX

Типы кнопок

Тип Описание
message Отправляет боту текстовое сообщение
link Открывает ссылку в новой вкладке
callback Отправляет событие message_callback
request_contact Запрашивает контакт пользователя
request_geo_location Запрашивает геолокацию
open_app Открывает мини-приложение
clipboard Копирует текст в буфер обмена

Команда /menu

При нажатии на кнопку бот отправляет соответствующую команду.

text
┌─────────────────────────────┐
│  🤖 Главное меню             │
├─────────────────────────────┤
│  📝 Оставить заявку          │
│  📋 Мои заявки               │
│  📰 RSS-анонсы               │
│  📧 Переслать на email       │
│  🆔 Мой ID                   │
│  ❓ Помощь                   │
└─────────────────────────────┘
	

Пример отправки меню

php
function sendMenu($userId) {
    $data = [
        'text' => '🤖 <b>Главное меню</b>nnВыберите действие:',
        'format' => 'html',
        'attachments' => [
            [
                'type' => 'inline_keyboard',
                'payload' => [
                    'buttons' => [
                        [
                            ['type' => 'message', 'text' => '📝 Заявка', 'payload' => '/order'],
                            ['type' => 'message', 'text' => '📧 Email', 'payload' => '/max2email']
                        ],
                        [
                            ['type' => 'message', 'text' => '📰 RSS', 'payload' => '/rss'],
                            ['type' => 'message', 'text' => '🆔 ID', 'payload' => '/myid']
                        ],
                        [
                            ['type' => 'link', 'text' => '🌐 Наш сайт', 'url' => 'https://tcse-cms.com']
                        ]
                    ]
                ]
            ]
        ]
    ];
    // ... отправка
}
	

📰 RSS-агрегатор (rss2max.php)

Назначение

Парсит RSS-ленты и отправляет новые записи подписчикам в личные сообщения MAX.

Настройка

php
// === НАСТРОЙКИ ===
define('MAX_FEED_ITEMS', 10);      // Количество записей за один запуск
define('ACCESS_PASS', '9876543210'); // Пароль для запуска

$rssUrls = [
    'https://tcse-cms.com/user/TCSE/rss.xml',
    'https://chuyakov.ru/rss.xml',
];
	

Запуск

Через браузер:

text
https://ваш-сайт.ru/plugins/tcse/send2form/rss2max.php?pass=9876543210

Через CRON:

bash
*/30 * * * * php /путь/к/сайту/plugins/tcse/send2form/rss2max.php

Формат сообщения

text
📰 JSON Feed для AI-агентов: Почему RSS умер, а JSON правит бал

Или: Как накормить нейросеть структурированным завтраком...

🔗 https://tcse-cms.com/main/sovet/2448-json-feed.html

📅 14.06.2026 10:32
	

Особенности

  • Очистка HTML: картинки заменяются на переносы строк

  • Дедупликация: GUID сохраняются в data/last_guid_rss.txt

  • Лимит: можно ограничить количество записей за запуск


🎨 Встраиваемые виджеты

Генератор виджетов

Доступен по адресу:

text
https://ваш-сайт.ru/plugins/tcse/send2form/widgets/generator.php

Типы виджетов

1. Кнопка + модальное окно

html
<div id="send2tg-container"></div>
<script src="https://ваш-сайт.ru/plugins/tcse/send2form/widgets/widget.js"></script>
<script>
    send2tg.init({
        type: 'button',
        product: 'Заявка с сайта',
        buttonText: '📩 Отправить заявку',
        buttonColor: 'linear-gradient(135deg, #667eea 0%, #764ba2 100%)',
        proxyUrl: 'https://ваш-сайт.ru/plugins/tcse/send2form/widgets/proxy.php'
    });
</script>
	

2. Встроенная форма

javascript
send2tg.init({
    type: 'inline',
    product: 'Заявка с сайта',
    buttonText: '📩 Отправить заявку',
    // ...
});
	

CORS-прокси

Для отправки данных с внешних сайтов используется proxy.php. Он принимает запросы с любого домена и перенаправляет их в order.php.


📊 Панель просмотра заявок (orders_view.php)

Доступ

text
https://ваш-сайт.ru/plugins/tcse/send2form/orders_views.php

Пароль по умолчанию: iLoveTCSE (изменяется в коде)

Возможности

  • 📋 Просмотр всех заявок в виде таблицы

  • 🔍 Поиск по всем полям

  • 📄 Пагинация (25 записей на страницу)

  • ⬇️ Экспорт в CSV

  • 🎨 Визуальная индикация статуса MAX (зелёный/красный)


📁 Структура файлов

text
send2form/
├── order.php                      # Обработчик форм
├── rss2max.php                    # RSS-парсер
├── orders_views.php               # Панель просмотра заявок
├── form.html                      # Пример страницы с формой
│
├── webhook/
│   ├── max.php                    # Вебхук-маршрутизатор MAX
│   ├── modules/
│   │   └── max/
│   │       ├── core.php           # Базовые команды бота
│   │       ├── email.php          # Пересылка MAX→Email
│   │       └── rss.php            # RSS-подписки
│   ├── data/
│   │   ├── subscribers.json       # Подписчики RSS
│   │   └── last_guid_rss.txt      # GUID отправленных записей
│   └── logs/
│       └── max_*.log              # Логи вебхука
│
├── widgets/
│   ├── generator.php              # Генератор виджетов
│   ├── proxy.php                  # CORS-прокси
│   ├── widget.js                  # Скрипт виджета
│   └── .htaccess                  # Защита папки
│
├── data/
│   └── order.csv                  # База заявок
│
└── logs/
    └── rss2max.log                # Логи RSS-парсера
	

⚙️ Настройка CRON

Запуск RSS-парсера каждые 30 минут

bash
*/30 * * * * php /путь/к/сайту/plugins/tcse/send2form/rss2max.php >> /путь/к/сайту/plugins/tcse/send2form/logs/cron.log 2>&1

Запуск с паролем через curl

bash
*/30 * * * * curl -s "https://ваш-сайт.ru/plugins/tcse/send2form/rss2max.php?pass=9876543210" >> /dev/null 2>&1

🛠️ Технические требования

Компонент Минимальная версия
PHP 7.1+ (рекомендуется 7.4+)
cURL Включен
JSON Включен
SimpleXML Включен (для RSS)
MySQL Не требуется (данные в CSV)

Поддерживаемые хостинги: Мастерхост, Beget, Timeweb, Reg.ru, SpaceWeb и любые другие с поддержкой PHP и cURL.


📞 Поддержка

  • Разработчик: Веб-студия TCSE

  • Сайт: tcse-cms.com

  • Telegram: @TCSEcmscom

  • Email: info@tcse-cms.com


📄 Лицензия

Коммерческая лицензия.
Скрипт предоставляется клиентам веб-студии TCSE. Бесплатная версия не распространяется.

Включает:

  • ✅ Полный исходный код

  • ✅ Установка и настройка (включена в стоимость)

  • ✅ Техническая поддержка (3 месяца)

  • ✅ Обновления в течение года


send2form — это не просто форма обратной связи. Это полноценная система управления коммуникациями, которая объединяет сайт, мессенджеры и email в единую экосистему.

Виталий Чуяков

Виталий Чуяков

Технологический прагматик

Веб-разработчик с 20-летним стажем, основатель веб-студии TCSE. Специализация: DLE «под ключ», Webasyst, Parts-Soft.ru, технический аудит.

🧠 20 лет 🚀 120+ проектов 📄 45+ статей
6 причин почему нет клиентов, заявок и звонков с сайта

Сайт есть, реклама и продвижение запущено, а заказов нет! В большинстве случае все просто: Нет стабильной системы...

Подробнее
s2tg - формы отправки сообщений в telegram для DLE

Плагин для DLE позволяющий отправлять формы с сайта в telegram. Назначение: замена форм обратной связи в которых...

Подробнее
Обработка персональных данных на сайте - Готовим сайт к 152-ФЗ

С 1 июля 2017 года штрафы за нарушение закона о Персональных данных увеличиваются до 75 000 рублей. Важно и то, что...

Подробнее
DLE-tg2email — Пересылка сообщений из Telegram на email

DLE-tg2email — это мощный и безопасный плагин для DataLife Engine (DLE), который позволяет пересылать любые сообщения...

Подробнее
WSPlab.ru

Корпоративный сайт для разработчиков готовых решений по оптимизации и автоматизации процесса сбора и обработки...

Подробнее
[recovery mode] Вставай, Наташа, «Яндекс» все уронил. Или что делать, если «Директ» перестал приносить заявки?

Рекламная кампания хорошо работала несколько месяцев и вдруг "сломалась"? Лидов стало меньше или они пропали совсем....

Подробнее

💬 Комментарии

В связи с новыми требованиями законодательства РФ (ФЗ-152, ФЗ «О рекламе») и ужесточением контроля со стороны РКН, мы отключили систему комментариев на сайте.

🔒 Важно Теперь мы не собираем и не храним ваши персональные данные — даже если очень захотим.

💡 Хотите обсудить материал?

Присоединяйтесь к нашему Telegram-каналу:

https://t.me/tcsecms

Нажмите кнопку ниже — и вы сразу попадёте в чат с комментариями