Вход Регистрация
*— обязательные для заполнения поля
Войти через социальные сети

Содержание

  1. Общие сведения
  2. Параметры компонента
  3. События почты
  4. События записи в инфоблок
  5. CRM Битрикс24
    1. Настройка подключения
    2. Настройка связей в компоненте
    3. Запись лидов в CRM
  6. Типы свойств инфоблока
    1. Справочник
    2. HTML/текст
  7. Маски

Общие сведения

Компонентом поддерживаются все Базовые типы свойств инфоблока и часть Пользовательских.

Поддерживаемые пользовательские типы свойств

S:HTML HTML/текст
S:DateTime Дата/Время
S:UserID Привязка к пользователю
E:EList Привязка к элементам в виде списка
S:directory Справочник

и возможно другие, которые не тестировались.

Два новых типа свойства установятся с модулем

E:APIFD_ESList - TS Привязка к элементам с группировкой по разделам
S:APIFD_PSList - TS Привязка к платежным системам

Параметры компонента

Тут хочу отметить, что все свойства инфоблока = это будут поля формы.

Шаблон компонента
Шаблон компонента Пока только один шаблон компонента (.default)
Основные параметры
Тип инфоблока Задается тип информационного блока
Инфоблок Должен быть предварительно создан со свойствами
ID формы Уникальный идентификатор формы.
Если на странице несколько форм, у каждой формы этот параметр должен отличаться, иначе формы работать не будут.
Если параметр оставить пустым, то у каждой формы идентификатор будет задаваться автоматически, это может быть удобней, когда очень много форм на сайте.
Редирект на страницу Указывается адрес страницы, куда будет перенаправлена успешно отправленная форма
Выводить только эти поля Возможность пригодится, когда из разных форм с разным набором полей пишутся данные в один инфоблок, т.е. каждой форме можно задать отдельно, какие выводить поля.
Поле «E-Mail адрес посетителя» Если нужна проверка корректности E-mail при включенной отправке писем, то надо указать форме явно, что это свойство хранит в себе E-mail, иначе форма думает, что поле обычная строка.
Внешний вид
Выводить ошибки В поле - просто подсвечивается поле красным
Под полем - выводится текст ошибки под полем
Сообщение об ошибке под полем Текст сообщения об ошибке в поле, где #FIELD# - макрос, который заменится названием поля, по умолчанию:
#FIELD# обязательно
Cообщение о некорректном E-mail Текст сообщения о некорректном E-mail, по умолчанию:
Указанный email некорректен
Скрывать поля формы в input[type=hidden] Все выбранные поля/свойства будут выводиться в форме, но в скрытом виде, пользователь их не видит.
Поля формы строкой/разделителем В данном случае поле будет обычным html-разделителем и не будет отправлять в письме или инфоблоке какие-либо данные.
Можно сказать, поле только для чтения.
Ширина формы, px/% Можно задавать ширину формы в пикселях 600px или процентах 60%.
Самое подходящее либо 60%, либо вообще очистить поле и форма будет на всю 100% ширину контента.
Заголовок формы Задается заголовок формы
Выводить заголовок формы Выводить заголовок или нет
Автокомплит формы Дает возможность подстановки браузером ранее введенные пользователем данные в поля формы, как подсказки при клике в поле, по умолчанию включено
Сообщение об успешной отправке Текст сообщения успешной отправки формы, можно использовать макросы, например:
#TICKET_ID# - в этом макросе передается номер записанного элемента
Макрос будет работать только при включенной записи в инфоблок, компонент сам подсчитает количество записей в инфоблоке, потом +1 и новая запись.
Текст под сообщением Любой текст под сообщением или пусто.
CSS-классы кнопки "Отправить" Любые ваши css-классы для кнопки через пробел, например: btn btn-primary, по умолчанию:
afd-button
Текст кнопки "Отправить" Текст статической кнопки Отправить.
Текст кнопки "Отправляется..." Текст динамической кнопки, когда нажали Отправить и форма ждет ответа от сервера.
Текст для (выбрать) Опция по умолчанию для полей типа Список
Выводить Битрикс-CAPTCHA Данная капча выводится только неавторизованным пользователям, т.е. гостям сайта, которые еще не вошли на сайт.
Для защиты от спама и роботов в форме встроена собственная скрытая защита, ее пользователи не видят.
Тема
Тема Тема шаблона, пока всего две: modern и simple
Цвет Цвета формы, пока всего 5 цветов.
Цвет фона Можно всей форме задать любой свой цвет, может пригодиться на темных сайтах.
Настройки кеширования
Тип кеширования В компоненте кэшируются запросы к инфоблоку, когда получает его свойства и настройки, при изменении свойств желательно вручную сбрасывать кэш в панели администрирования вверху по кнопке Сбросить кэш

Возможные варианты:
Авто + Управляемое
- компонент автоматически обновляет кэш в течение заданного времени или при изменении данных инфоблока.
Кэшировать и время кэширования больше нуля - компонент всегда работает в режиме кэширования.
Не кешировать и время кеширования равно нулю - компонент всегда работает без кэширования.
Время кеширования (сек.) Время жизни кэша, после которого старый удаляется, новый создается.
3600 - это 1 час, 86400 - это 24 часа и т.д.
Запись в инфоблок
Включить Включается возможность записи данных в инфоблок
Свойство для нумерации тикетов Свойство нумерации элементов можно задать любое, по умолчанию это TICKET_ID
Шаблон названия элемента Задается шаблон названия элемента при добавлении в инфоблок, можно использовать макросы, по умолчанию:
Ticket##TICKET_ID#
Шаблон кода элемента Задается шаблон символьного кода элемента, можно использовать макросы, по умолчанию:
Ticket##TICKET_ID#
Элемент активен после добавления Задает активность элемента после добавления.
Отправка писем
Включить Включается возможность отправки писем
Заменять в письме "От кого" на "Email" посетителя Удобная возможность отправлять письма с вашего сайта от имени пользователя, но современные почтовые системы и хостинги эту возможность либо блокируют вовсе, либо помечают как спам, но не все, включайте только если уверены в ней.
По современному стандарту в поле От кого в письме должен быть e-mail адрес в зоне вашего домена, например, mail@tuning-soft.ru, а не вообще какой-то другой типа other@example.com
E-Mail адрес отправителя Данное поле заполнять необязательно и даже не желательно, если оно будет пустым, модуль возьмет E-mail сначала из настроек сайта, если там пусто, возьмет E-mail из настроек главного модуля.
E-Mail адрес получателя E-Mail адрес администратора, т.е. адрес, куда будут отправляться письма из этой формы.
Почтовый шаблон администратора Задается почтовый шаблон, в тему письма подставится значение из поля ниже Тема сообщения для администратора
Если не выбрать почтовый шаблон, то на все шаблоны будут отправляться письма.
Тема сообщения для администратора Возможность задать тему письма прям из настроек формы, удобно для каждой формы задавать разные темы.
Поле поддерживает макросы, по умолчанию: #SITE_NAME#: Сообщение из формы обратной связи
Почтовый шаблон посетителя Если нужно пользователю отправить копию письма обязательно выбирайте тут шаблон.
С модулем установится 2 шаблона, можете выбирать который нижний, но они одинаковые, вообще без разницы, сами не запутайтесь.
Обратите внимание!
Если в основных настройках не задано Поле «E-Mail адрес посетителя», то копия отправляться не будет, т.к. форма не будет знать, какое поле есть E-mail.
Тема сообщения для посетителя Аналогично теме администратора для пользователя также можно прямо здесь задать тему письма.
По умолчанию: #SITE_NAME#: Копия сообщения из формы обратной связи
CSS-стили для
поля в письме
Блок оформления всего поля, значение по умолчанию:
padding:10px;border-bottom:1px dashed #dadada;
CSS-стили для
названия поля в письме
Блок оформления названия поля, значение по умолчанию:
font-weight:bold;
CSS-стили для
значения поля в письме
Блок оформления значения поля.
Загрузка файлов
Максимальный размер загружаемого файла - XXM Компонент смотрит настройки php.ini и на их основе выводит лимиты на загружаемые файлы, увеличивайте эти показатели на свой страх и риск.
(K - килобайт, М - мегабайт, G - гигабайт, T - терабайт)
Максимальное количество одновременно закачиваемых файлов - XX: Также лимиты взяты из настроек php.ini, для формы обратной связи лучше уменьшить, на сколько, решать вам, ну чаще всего наверно 5 будет достаточно.
Временная директория, используемая для хранения файлов во время закачивания: Мне кажется я погорячился и сделал это неправильно, пока временные файлы загружаются сюда под уникальным именем: /upload/api_formdesigner
После успешной отправки формы временные файлы с диска и из сессии удаляются.
Модальное окно
Выводить форму в модальном окне Включается модальное окно
ID модального окна Задается автоматический идентификатор модального окна, можете вписать любой свой, главное, соблюдайте правила хорошего тона
Текст кнопки вызова окна По умолчанию: Обратная связь
Класс кнопки вызова окна По умолчанию: api_button
ID кнопки вызова окна По умолчанию не задан
Класс иконки в кнопке вызова окна По умолчанию: api_icon
Текст в заголовке окна По умолчанию: Обратная связь
Текст в подвале окна По умолчанию не задан
Яндекс.Метрика
Включить
Включается отправка целей в Яндекс.Метрику
№ счётчика № счетчика необходимо получить на этом сервисе
Идентификатор цели Там же для счетчика нужно задать любой произвольный идентификатор цели, например: API_FEDBACK
Веб-аналитика
Включить
Включается аналитика сервиса Google Analytics
Категория
Действие
Ярлык
Значение
Пользовательское соглашение
Выводить условия Пользовательского соглашения Включается вывод заданного прямо в настройках компонента текста пользовательского соглашения
Пользовательское соглашение Краткий текст пользовательского соглашения, который выводится справа от флажка.
Сообщение о необходимости принять Пользовательское соглашения Сообщение об ошибке
Персональные данные
Выводить соглашение на обработку персональных данных Включается вывод заданного прямо в настройках компонента текста на обработку персональных данных
Пользовательское соглашение Краткий текст пользовательского соглашения, который выводится справа от флажка.
Ссылка на соглашение Если задать ссылку, то весь текст соглашения станет кликабельный, если убрать сылку, то просто текст выводится, можно в само тексте выше размещать любые несколько ссылок.
Сообщение о необходимости принять соглашение Сообщение об ошибке
Согласие пользователя
Запрашивать согласие Включает стандартный функционал соглашений 1С Битрикс из админки по адресу:
Настройки – Настройки продукта – Соглашения
Соглашение В компоненте предусмотрена возможность выводить несколько соглашений
Галка по умолчанию проставлена По умолчанию будет проставлен флажок согласия
Названия полей, которые попадут в текст соглашения Обязательно перечислите здесь через запятую поля формы, которые отвечают за персональные данные, они подставятся в текст соглашения, например:
Ваше имя, Ваш емайл, Ваш телефон, IP-адрес
Встроенные переменные
Переменные страницы Переменные текущей страницы заполняются в письме автоматически
Переменные сервера Переменные сервера заполняются в письме автоматически.
Переменные utm-метки Переменные utm-метки заполняются в письме автоматически.
Пользовательские переменные

Данные переменные нужны для передачи данных страницы через настройки компонента в письмо.

Можно прямо в настройках компонента задавать таким образом:



Либо прямо в php-коде вызова компонента таким образом:
"PAGE_TITLE" => $APPLICATION->GetTitle(),
"PAGE_URL"   => $APPLICATION->GetCurPage(),
"DIR_URL"    => $APPLICATION->GetCurDir(),
"DATE_TIME"  => date("d-m-Y H:i:s"),
"DATE"       => date("d-m-Y"),
"IP"         => $_SERVER["REMOTE_ADDR"],
Это может пригодится для передачи каких-то своих данных, например, в карточке товара, в шаблоне компонента, когда какой-то свой адрес страницы используется или название товара.

Далее, в почтовый шаблон будут передаваться следующие макросы, их вручную надо прописать в почтовом шаблоне.

Настройки – Настройки продукта – Почтовые события – Почтовые шаблоны – Шаблон #XX


Макрос
Заголовок формы
#FORM_TITLE#
Заголовок страницы
#PAGE_TITLE#
URL-адрес страницы #PAGE_URL#
URL-адрес раздела #DIR_URL#
Дата и время #DATE_TIME#
Дата #DATE#
IP-адрес посетителя
#IP#

Данные макросы задаются в почтовых шаблонах только вручную:

Так это выглядит в письме


Визуальный редактор
Включить Данная опция задействует виз. редактор для полей типа HTML.
Пока редактор не имеет никаких настроек, позже добавится выбор кнопок.
jQuery
Включить Включает выбор необходимой для работы скриптов и плагинов библиотеки jQuery
Версия Выбор версий, на данный момент это встроенные в Битрикс ядро: 1.8.3 и 2.1.3.
Версия 2 более легкая по весу, но не поддерживает устаревшие браузеры IE6-9
Маски
Включить Подключает к форме маски jQuery Input Mask
Подключить встроенные JS Подключатся скрипты плагина и инициализация. Если отключить, то data-атрибут будет выводиться в полях, а скрипты и инициализация отключатся, тогда сможете свои плагины подключать к полям
CRM
Включить Опция выводит настройки CRM
CRM Выбор подключения к CRM из списка добавленных ранее в админке на странице:
Сервисы – TS Умный конструктор форм на инфоблоках
Шаблон названия лида
Обязательное поле для лида, есть несколько вариантов, как использовать:
  1. Можно поле оставить пустым, тогда в название запишется http(s)-адрес вашего сайта;
  2. Можно составить из макросов полей CRM, например: #LAST_NAME# #NAME# #SECOND_NAME#.
    В CRM запишется лид как: Иванов Иван Иванович.
    Посмотреть макросы других полей можете в настройках поля ниже в выпадающем списке;
  3. Можно в настройках поля, например Имя или ФИО, задать соответствие полю в CRM:
    [TITLE] Заголовок.
    В этом случае поле формы Имя или ФИО будет служить "Названием лида".
  4. Вариант для разработчиков, можно в php-коде вызова компонента в поле CRM_FIELD_TITLE подставить, например, название товара из $arResult['NAME'] или что-нибудь другое.
Выводить ошибки Включает вывод ошибок записи лидов в CRM.
Желательно включать ошибки, иначе может получиться так, что форма отправилась, а лид из-за ошибки не записался в CRM.
Настройка полей
Настройка поля - Имя поля
Далее идут доп. настройки каждого поля отдельно, что нельзя сделать в настройках свойства в инфоблоке, можно будет очень гибко использовать здесь.

События почты

onBeforeMailSend Cработает перед каждой отправкой письма
onBeforeAdminMailSend
Cработает перед отправкой письма администратору
onBeforeUserMailSend
Cработает перед отправкой копии письма пользователю
onAfterMailSend Cработает после каждой отправки письма
onAfterAdminMailSend Cработает после отправки письма администратору
onAfterUserMailSend Cработает после отправки копии письма пользователю
onErrorMailSend Cработает при ошибке добавления письма в таблицу b_event

Примеры использования D7 событий в файле init.php

/bitrix/php_interface/init.php

<?php
use \Bitrix\Main;
$eventManager = Main\EventManager::getInstance();
//События до отправки сообщения
$eventManager->addEventHandler('api.formdesigner','onBeforeMailSend',array('ApiFormDesignerHandler', 'onBeforeMailSend'));
$eventManager->addEventHandler('api.formdesigner','onBeforeAdminMailSend',array('ApiFormDesignerHandler', 'onBeforeAdminMailSend'));
$eventManager->addEventHandler('api.formdesigner','onBeforeUserMailSend',array('ApiFormDesignerHandler', 'onBeforeUserMailSend'));
//События после отправки сообщения
$eventManager->addEventHandler('api.formdesigner','onAfterMailSend',array('ApiFormDesignerHandler', 'onAfterMailSend'));
$eventManager->addEventHandler('api.formdesigner','onAfterAdminMailSend',array('ApiFormDesignerHandler', 'onAfterAdminMailSend'));
$eventManager->addEventHandler('api.formdesigner','onAfterUserMailSend',array('ApiFormDesignerHandler', 'onAfterUserMailSend'));
//Событие при ошибке отправки сообщения
$eventManager->addEventHandler('api.formdesigner','onErrorMailSend',array('ApiFormDesignerHandler', 'onErrorMailSend'));
class ApiFormDesignerHandler
{
  function onBeforeMailSend(Main\Event $event)
  {
    //Вернет все в виде ассоциативного массива
    //$eventData = $event->getParameters();
    //Тут что-то делаем с данными, пробуем изменить значение поля
    //$eventData['FIELDS']['EMAIL'] = 'test@example.com';
    //Тут печатаем в файл дамп данных для отладки
    //$ttfile=dirname(__FILE__).'/onBeforeMailSend.txt';
    //file_put_contents($ttfile, "<pre>".print_r($eventData,1)."
    //Чтобы изменить данные нужно вернуть новый $result
    //$result = new Main\EventResult(Main\EventResult::SUCCESS, $eventData);
    //return $result;
    function onBeforeAdminMailSend(){}
    function onBeforeUserMailSend(){}
    function onAfterMailSend(){}
    function onAfterAdminMailSend(){}
    function onAfterUserMailSend(){}
    function onErrorMailSend(){}
  }
}
?>

События записи в инфоблок

Тут встроенных событий нет, можно использовать штатные события модуля Информационные блоки.

CRM Битрикс24

Настройка подключения

Настройки подключений находятся в админке по адресу:

Сервисы – TS Умный конструктор форм на инфоблоках – Связь с CRM

Для создания подключения вам понадобятся стандартные доступы к Битрикс24:

Произвольное название, Адрес вашего портала, Путь оставьте по умолчанию, Логин, Пароль и все.

Так выглядит список добавленных подключений, еще нужно проверить связь с CRM, нажмите на ссылку справа, должно написать ОК.

Если все ОК, вам остается в настройках компонента проставить соответствие полей формы полям в CRM и все.

Настройка связей в компоненте

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

Найдите в самом конце раздел настроек CRM, нажмите Включить, выберите нужное подключение к CRM.

Шаблон названия лида можете оставить пустым или назначить какому-нибудь полю, например Имя или ФИО, или можете сделать составное название из макросов полей CRM, которые вы видите ниже выпадающим списком напротив каждого поля формы.

Далее, проставляйте соответствие поля формы к полю CRM

Поле формы - это что в синей панельке, например: Настройка поля - заголовок, Настройка поля - Статус и т.д.
Поле CRM - это что в выпадающем списке выводит CRM, под синей панелью.

Какие поля проставите, такие и будут записываться в CRM, также данные можно писать в инфблок и отправлять на почту, можно добавить события для init.php, если что, пишите.

Здесь все, как все настроите, сохраняйте настройки компонента и проверяйте работу формы, запись в CRM должна работать.

Запись лидов в CRM

Так выглядит результат записи лида в CRM из формы

Доступны для записи практически все поля, кроме:

  1. Ответственный: он назначается автоматически;
  2. Дата рождения: наверно просто не поддерживается самой CRM;
  3. Файл: вроде в самой CRM возможность появилась, но в форме пока это не поддерживается;
  4. И все разновидности основного поля адреса: Квартира / офис, Город, Район, Область, Почтовый индекс, Страна.

И еще поддерживаются дополнительные поля лида, которые вы можете самостоятельно добавить.

Чтобы добавить такое поле, кликните в списке лидов справа по ссылке: Еще – Настройки

Далее откройте: Настройки форм и отчетов – Пользовательские поля


Далее: Лид - Добавить поле или Список полей

Пример добавления пользовательского поля типа Список для Лида.

Возможно после добавления нового поля в настройках компонента оно не появится, поля лида кэшируются в модуле 7 дней, вообще кэш должен сброситься, но если что, перейдите в админку в настройки подключения и нажмите там ссылку Проверить соединение, кэш точно сбросится и поле должно появиться в настройках компонента.


Типы свойств инфоблока

Справочник

Тип свойства Справочник станет доступным в списке типов если установлен модуль Highload-блоки (highloadblock)

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

Так выглядит наполнение справочника данными в настройках свойства, в нашем случае цветами.

Так выглядит в форме поле со списком записей справочника
Режимов отображения пока 2, с изображениями и без + множественное и не множественное.





Используемые поля справочника, зачеркнутые пока не используются, пишите если что-то нужно.

UF_NAME Название
UF_SORT Сортировка
UF_XML_ID Внешний код
UF_LINK Ссылка
UF_DESCRIPTION Описание
UF_FULL_DESCRIPTION Полное описание
UF_DEF По умолчанию
UF_FILE Изображение

HTML/текст

Визуальный редактор можно подключить только к типу описания html, иначе полет будет просто текстовое.
Дополнительно в настройках компонента нужно включить сам визуальный редактор.

Так выглядит в форме поле с визуальным редактированием

Маски

В компонент встроен плагин, который может выводить в поле различные маски ввода.

Включается в настройках компонента и настраивается отдельно для поля.
В настройках поля можно писать все, что относится к маске плагина: алиас, маску, регулярное выражение, вот таким образом, с одинарными кавычками

Эта строка будет выводиться в html5-атрибуте в таком виде

data-inputmask="'alias':'email'"

Демо плагина тут, страница с примерами тут.

На странице плагина много примеров и готовых алиасов, которые рекомендуется использовать, если вы в этом ничего не понимаете, просто найдите нужную маску, скопируйте и вставьте в настройках.

Пример алиасов и масок

'alias': 'date'
'alias': 'email'
'alias': 'phone'
'mask': '99-9999999'