1. Описание
Компонент предназначен для простого управления всеми формами на сайте, в том числе без доступа к элементам MODX и
предоставляет базовый функционал работы с формами для большинства сайтов.
Особенно удобен, если на вашем сайте используются множественные формы захвата посетителей,
например «Получить скидку на этот товар сейчас», «Записаться на приём», «Получить специальное предложение по акции» и т.п.
Вставка таких форм прямо в контент страниц не требует доступа к элементам и вёрстки формы,
достаточно указать базовые параметры формы в приложении и поставить вызов в нужное место контента.
При установке компонента можно установить и примеры всех форм на базе bootstarp4.
Возможности:
- Создавайте любые формы и используйте их многократно для отправки разных сообщений
- Простая установка форм в любое место на сайте в т.ч. прямо в контент страницы даже с правами контент-менеджера.
- Поддерживается аттач файлов с контролем по типу, размеру и количеству.
- Заказ в 1 клик со страницы товара, раздела и из корзины (для Minishop2)
- Автоматическая поддржка компонентов msOptionsPrice / msOptionsPrice2*
- Сервис по работе с отзывами клиентов
- Отправка промокода за отзыв (необходим компонент msPromoCode / msPromoCode2*)
- Сохранение данных всех отправляемых форм с включением данных о местоположении отправителя (город и регион).
- Определение местоположения пользователя
Геолокация:
Ваш населённый пункт:
Если настроены соответствующие параметры геолокации в системных настройках, то данные геотаргетинга помещаются в сессию при загрузке сайта и доступны везде с помощью Fenom:
{$.session.mvtForms2.geo.city} {$.session.mvtForms2.geo.region}
2. Использование
2.1. Настройка формы
Все формы хранятся и настраиваются в приложении mvtForms2:
Каждая форма настраивается индифидуально:
В качестве значения полей «Успешно» и «Ошибка» можно указывать ключ словаря. Например:
[[%mvtforms2_question_submit_success_answer]]
Данные форм:
Отзывы:
Поле | Описание |
---|---|
Код формы | Уникальный идентификатор формы. Используйте только латиницу, числа, знаки «- , _» |
Тип | Тип формы. Указывает, как нужно работать форме. Обычная форма просто отправляет данные, формы заказа в 1 клик - создают заказ, отзыв - создаёт отзыв. |
Адреса | Адрес или список адресов на которые нужно отправить форму, через запятую. |
Чанк формы | Чанк, который используется для данной формы. Можно (и нужно!) создать несколько типовых чанков и использовать их затем для включения различных форм. Необходимо указать системную настройку «Разрешённые чанки форм» или «Разрешённые категории чанков форм», см. Системные настройки. |
Название/Тема письма | Заголовок формы. |
Поля формы | Список полей формы (идентификатор:название), которые будут обработаны. Например: name:Имя,phone:Телефон,email:E-mail. |
Обязательные поля | Список идентификаторов обязательных обязательных полей. Например: name,email,phone. |
Отправка неполной формы | Если указано «Да», возможна отправки не полностью заполненной формы. Требует включения системной настройки «Разрешить отправку неполной формы». Для форм, где 2 и более обязательных поля с контактными данными (и только для обычных форм — не для заказа/отзыва). Например: есть форма, где обязательные поля: e-mail + телефон. Мы хотим получить оба поля, но на край нам и одного хватит — лид важнее. |
Уведомить отправителя | Если указано «Да», то при успешной отправке формы, отправитель получит уведомление. Чанк шаблона уведомления: tpl.mvtForms.message.user. |
Без фактической отправки | Если указано «Да», то форма не будет реально отправлена на почту. Удобно, если форма что-то делает, но само письмо на почте вам не нужно. |
Редирект на ресурс | Укажите id ресурса, если хотите переадресовать пользователя на другую страницу после отправки формы. Например для формы типа «Заказ в 1 клик со страницы корзины». |
Успешно | Сообщение при успешной отправке формы. |
Ошибка | Сообщение при ошибке. |
Описание | Описание формы. |
2.2. Настройка чанков форм
Чанки форм, созданные на основе форм-примеров (устанавливаются вместе с компонентом) не нуждаются в дополнительных настройках.
Примеры сделаны на разметке Bootstrap4.
Обязательные переменные, без которых ничего не заработает:
{$formID}
, {$token}
Класс .mvtFormPhone
необходим для работы маски ввода номера телефона.
2.3. Включение форм
-
специальной строкой в контенте/чанке/шаблоне:
/form2:[идентификатор формы]/ , например: /form2:callback/
-
шаблонизатор Fenom
{'!mvtForms2' | snippet : ['form'=>'callback']} , где form - Идентификатор нужной формы
-
MODX parser
[[!mvtForms2?&form=`callback`]]
Начиная с версии 1.0.20 можно передавать в чанки форм любые данные:
Например:{'!mvtForms2' | snippet : [
'form'=>'callback',
'name' => 'Название формы',
'button' => 'Название кнопки'
]}
Соответственно, они будут доступны в чанках и это позволит не дублировать одинаковые формы,
отличающиеся только названием/описанием/названием кнопки.Все атрибуды доступны в массиве properties, нопример:
{$properties.button}
2.4. Системные настройки
Поле | Описание |
---|---|
Основные |
|
Разрешённые чанки форм |
Для того, чтобы при выборе форм не показывались не нужные чанки, вы можете ограничить список чанков. Укажите здесь перечень id нужных чанков через запятую. Особенно актуально при использовании фронтенд-менеджером, чтобы он смог использовать только строго отведённые чанки. |
Разрешённые категории чанков форм | То же самое, но для категорий. Можно оставить параметр «Разрешённые чанки форм» путым, и указать здесь перечень нужных id категорий через запятую. При установке автоматически устанавливается = категории mvtForms2. |
Разрешённые к отправке типы файлов | Список разрешённых для обработки типов файлов. |
Скрипты js | Путь к файлу со скриптами. Вы можете указать здесь свой js-файл с вашей логикой. |
Стили фронтенда | Путь к файлу со стилями. Вы можете указать здесь свой файл стилей или офистить эту настройку. |
Сохранять данные форм | Если разрешено, данные отправленных форм будут записаны и доступны для редактирования. |
Сохранять файлы форм | Если разрешено, файлы отправленных форм будут сохранены согласно указанному источнику файлов. |
Источник файлов | Работа с файлами идёт через указанный источник файлов, поэтому вы можете хранить файлы не на сервере, а в облаке (используйте Swift) | Отправлять содержимое корзины Minishop | Если указано «Да», то вместе с данными формы будет отправлена информация о составе корзины отправителя. |
Чанк письма | Чанк шаблона письма. |
Чанк письма отправителю | Чанк шаблона письма уведомления. Если для формы указано "Уведомить отправителя", то отправителю формы будет отправлено уведомление с использованием данного чанка. |
Использовать защитный токен | Если «Да», форма будет обработана, только если с ней пришёл валидный токен |
Геолокация |
|
Включить геолокацию | Если разрешено, компонент будет пытаться определить гео-данные, сохранит их в сессии и добавит к сохранённым данным форм. |
DADATA token |
Токен сервиса dadata.ru. Определение города по IP бесплатно в рамках лимита см. ссылку. |
Путь до файла SxGeoCity.dat | Указывать от корневой директории. По-умолчанию = assets/components/mvtforms/SxGeoCity.dat. Необходим для определения местоположения отправителя, если не подключён сервис dadata.ru. В состав компонента не включён, т.к. не обязателен и создаёт лишний вес. Dadata надёжнее, sxGeo нужно иногда обновлять, зато безлимитно. Скачать можно отсюда: https://sypexgeo.net/files/SxGeoCity_utf8.zip |
Заказы |
|
Префикс номера заказа, корзина |
Если не пусто, то заказы, созданные при помощи компонента из корзины, будут иметь указанный префикс. |
Префикс номера заказа, товар | Если не пусто, то заказы, созданные при помощи компонента со страницы товара или из раздела будут иметь указанный префикс. |
Купоны (требуется msPromoCode и Minishop2) |
|
Разрешить отправку купонов | Если «Да», то становится доступна опция отправки промо-кода автору отзыва. |
Чанк письма с купоном | По умолчанию: tpl.mvtForms2.message.coupon |
Сколько раз можно использовать купон | По умолчанию: 1 |
Скидка | Если число с «%», скидка для каждой позиции в корзине в %, иначе - в единицах. |
Срок использования | Целое число дней с момента отправки. |
Маска для генерации купонов | Например: «prefix-/([a-zA-Z0-9]-6)-([a-zA-Z0-9]4)/» или «U-/([A-Z0-9]6)/» |
Заголовок письма | |
Разрешить отправку неполной формы | Можно использовать для увеличения количества лидов. Если заполнено верно поле Email или Телефон - форма будет отправлена, но пользователь всё равно получит ошибку валидации. При этом вы получите письмо; в случае, если пользователь прекратит заполнение - лид всё равно будет получен. |
Отзывы |
|
Обрабатывать изображения для отзыва | Если «Да», изображеня будут обработаны в соответствии с установленными настройками |
Транслитировать названия файлов изображений | Если «Да», названия файлов будут обработаны в соответствии с системными настройками тринслитирования |
Настройка превью изображения для отзыва | Если «Да», изображение будет обрабатываться phpThumb, согласно указанному правилу. Например: {"w":100,"h":100,"bg":"ffffff","q":100,"zc":0} |
Настройка изображения для отзыва | Если «Да», изображение будет обрабатываться phpThumb, согласно указанному правилу. Например: {"w":600,"h":400,"bg":"ffffff","q":100,"zc":0} |
Источник файлов для изображений отзывов | Работа с файлами идёт через указанный источник файлов, поэтому вы можете хранить файлы не на сервере, а в облаке (используйте Swift) |
2.5. Системные события
Компонент добавляет 4 системных события:
Событие | Описание |
---|---|
MvtFormsOnFormSubmit |
Выполняется после успешной отправки формы. Доступны: $data — массив отправленных формой данных;$form — массив настроек формы.
|
MvtFormsOnBeforeFormSend |
Выполняется перед отправкой формы. Доступны: $data — массив отправленных формой данных;$files — массив данных отправленных формой файлов;$form — массив настроек формы. |
MvtFormsOnReviewPublished |
Выполняется при публикации отзыва.
Доступны:$review — объект записи отзыва. |
В плагине mvtForms приведены примеры; можно сразу использовать раскомментировав соответствующий участок кода.
2.6. JS
Компонент использует один сжатый js-файл: mvt.min.js.
Он содержит функционал обработки форм + jquery mask для поля телефона + multifile для прикрепления файлов.
Исходные js-файлы доступны в assets/components/mvtforms2/js/web/. При необходимости вы можете изменить логику обработчика, состав дополнительных скриптов и собрать свой файл mvt.min.js.
Настройка multifile - в соответствии с документацией.
Для различных целей (например, метрики Яндекса), можно использовать callbacks:
$(document).ready(function ($) { mvtForms2.callbacks.success = function(response) { console.log(response); }; mvtForms2.callbacks.error = function(response) { console.log(response); } mvtForms2.callbacks.fail = function(response) { console.log(response); } });
Пример использование callbacks для кастомизации работы формы
2.7. Использование SmartCaptcha (начиная с версии 1.1.8)
Тарификация SmartCaptcha: https://yandex.cloud/ru/docs/smartcaptcha/pricing .
Для включения капчи необходимо указать значения для системных настроек Смарткапча ключ сайта
и Смарткапча ключ сервера
.
Как настроить SmartCaptcha и получить ключи, смотрите здесь: https://yandex.cloud/ru/docs/smartcaptcha/concepts/keys.
После настройки капчи добавьте в чанк с формой следующий код:
<div style="height: 100px" id="captcha-container" class="smart-captcha" data-sitekey=""></div> <script src="https://smartcaptcha.yandexcloud.net/captcha.js" defer></script>
3. Примеры
Формы в контенте страницыМодальная форма
Отзывы
Заказ в 1 клик со страницы товара
Заказ в 1 клик со страницы списка товаров
Заказ в 1 клик из корзины
4. Кейсы
Добавление данных при отправке формыРегистрация пользователя
Отправка лида в RetailCRM
5. Changelog
1.0.19-beta ============== - добавлен параметр button для передачи названия кнопки отправки в чанк 1.0.18-beta ============== - добавлена возможность указания лексикона в полях ответа при отправке формы 1.0.17-beta ============== - добавлена проверка длины номера телефона - изменён способ подключения jQuery ( убран document.write() ) 1.0.16-beta ============== - увеличена длина поля redirect 1.0.15-beta ============== - добавлен параметр формы ghost_send (Без фактической отправки) 1.0.14-beta ============== - поле fields mvtForms2Forms изменено на text 1.0.13-beta ============== - добавлено событие после проверки формы: MvtFormsAfterCheck 1.0.12-beta ============== - для отзывов добавлен флаг «Рекомендованный» (recommended, класс mvtForms2FormsData) 1.0.11-beta ============== - добавлено событие при публикации отзыва: MvtFormsOnReviewPublished 1.0.10-beta ============== - добавлена возможность передачи названия и описания формы при запуске сниппета 1.0.9-beta ============== - обновлен интерфейс настройки формы в админке 1.0.8-beta ============== - добавлена возможность отправки неполных форм 1.0.7-beta ============== - добавлен плэйсхолдер formDescription 1.0.6-beta ============== - исправлены системные события 1.0.5-beta ============== - обновлён default.js & mvtforms2.min.js 1.0.4-beta ============== - в response добавлен идентификатор формы 1.0.3-beta ============== - Исправлена ошибка обращения к minishop2, если он не установлен 1.0.2-beta ============== - Исправлены ошибки установщика 1.0.1-beta ============== - Первый релиз