Установка
- Скачиваем и распаковываем содержимое в директорию /bitrix/components/custom/ от корня вашего сайта, где custom — это произвольное имя директории, для неофициальных компонентов Битрикса, можете создать директорию custom, если у вас таковой не имеется (что вполне вероятно), а можете создать директорию с другим именем и распаковать содержимое архива туда (но ни в коем случае ничего не кладите и не меняйте в директории /bitrix/components/bitrix/, почему этого делать не стоит — расскажет вам документация Битрикс);
- Переименовываем распакованную директорию из архива «bitrix-advanced-form-master» в «advanced_form», а впрочем при желании можете оставить как есть, работать и так должно;
- По дальнейшей настройке см. ниже.
«Быстрая» установка через терминал
cd КОРЕНЬ_САЙТА && cd ./bitrix/components && mkdir custom && cd ./custom && git clone git://github.com/unclechu/bitrix-advanced-form.git advanced_form
Предварительная настройка
Всего понадобится 2-а инфоблока:- Для результатов формы;
- Для шаблонов E-Mail.
Далее создаём обязательный инфоблок для сохранения результатов формы (даже если вы не хотите сохранять результаты формы — он вам всё-равно понадобится, потому как поля формы — определяются свойствами этого инфоблока):
- Обязательно укажите символьный код для инфоблока (обратите внимание: символьные коды указывать нужно везде, где только увидите такую возможность, потому как компонент опирается всюду на эти символьные коды, а не на идентификаторы (ID) как обычно, поскольку такой способ более надёжен и гибок, и особенно удобен в задачах, которые реализует данный компонент);
- В поле «название» введите нужное вам название инфоблока, например ваше название будующей формы;
- Перейдите во вкладку «поля» и укажите там значение по умолчанию для поля «название» (не путать с предыдущим полем) для элементов инфоблока с результатами формы. По каким-то причинам это поле является обязательным к заполнению;
- В этой же вкладке укажите значение по умолчанию для поля «начало активности» — «текущие дата и время», чтобы отслеживать дату и время заполнения формы;
- Сразу перейдите во вкладку «доступ» и поставьте «для всех пользователей» — «чтение», иначе неавторизованный пользователь не сможет отправить данные формы;
- Переходим во вкладку «свойства» и начинаем наполнять будущую форму полями. Поддерживаемые типы полей смотрите ниже. Типы, которые не поддерживаются — игнорируются формой. Для каждого свойства нужно указывать символьный код. Если вам нужно иметь свойство, которое не попадёт в форму, то в начале его символьного кода должен быть префикс «nf_». Учитываются галочки «обязательное» для обязательных полей формы к заполнению. Если вам нужно отправлять пользователю e-mail уведомление о заполнении им формы, то должно быть текстовое поле с символьным кодом «email». Для полей типа TEXTAREA используется тип свойства «HTML/текст». Для типа «список» обязательно нужно указывать в значениях «XML_ID». Для типа «список» ещё не реализована поддержка чекбоксов, см. TODO;
- Сохраняем инфоблок, и на этом инфоблок для самой формы готов;
- Название (которое убрать нельзя, т.к. оно является обязательным);
- Начало активности (чтобы видеть, когда была заполнена форма);
- И наконец сами поля формы.
Теперь нужно создать инфоблок шаблонов e-mail писем, что является не обязательным, если нет нужды отправлять e-mail уведомления, — просто проигнорируйте дальнейшие инструкции и перейдите к «настройке компонента».
- Переходим к типу инфобоков «формы» и создаём новый инфоблок, желательно с символьным кодом: «email_templates» (можно указать и другой символьный код, но этот будет определяться по-умолчанию в настройках компонента);
- Устанавливаем название инфоблока, например: «Шаблоны E-Mail»;
- Перейдите во вкладку «доступ» и поставьте «для всех пользователей» — «чтение»;
- Во вкладке «поля» делаем поле «символьный код» обязательным с помощью галочки, а справа от него ставим галочку «проверять на уникальность»;
- Перейдите во вкладку «свойства» и укажите там 4-е обязательных свойства:
- «От кого» (строка), символьный код: «from»;
- «Кому» (строка), символьный код: «to»;
- «Тема письма» (строка), символьный код: «subject»;
- «Тело письма» (HTML/текст), символьный код: «body»;
- Сохраняем инфоблок.
Переходим к добавлению нового элемента в этом инфоблоке, заходим в настройки отображения. Удаляем всё возможное, все лишние вкладки кроме одной. На этой одной вкладке оставляем следующие поля:
- «Название»;
- «Символьный код»;
- «Детальное описание» (не обязательно, в нём можно оставлять вспомогательные комментарии, например список возможных хеш-тегов для автозамены);
- «От кого»;
- «Кому»;
- «Тема письма»;
- «Тело письма».
Далее приведён список хеш-тегов автозамены:
- #DOMAIN_NAME# — доменное имя сайта (например: domain.org);
- #SITE_NAME# — наименование сайта, берётся из настроек сайта («администрирование» → «настройки» → «настройка продукта» → «сайты» → «список сайтов» → ваш сайт, в настройках которого имеется поле «название веб-сайта»);
- #EMAIL_FROM# — адрес отправителя писем (устанавливается в настройках компонента);
- #ADMIN_EMAIL# — адрес администратора, которому отправляются уведомления (устанавливается в настройках компонента);
- #HIDDEN_COPY_ADMIN# — адрес для скрытой копии письма администратору (устанавливается в настройках компонента);
- #HIDDEN_COPY_USER# — адрес для скрытой копии письма заполнившему форму (устанавливается в настройках компонента);
- В остальном идут хеш-теги для полей формы следующего вида: #TITLE_code# — для названия поля, и #VALUE_code# — для значения поля, где «code» — символьный код поля (свойства инфоблока). ВНИМАНИЕ! Чувствительно к регистру! Если символьные коды полей были в нижнем регистре, то в хеш-тегах они указываются в нижнем регистре (что показано на примере с «code»).
- «Имя» (строка), символьный код: «name»;
- «E-Mail» (строка) символьный код: «email»;
- «Сообщение» (HTML/текст), символьный код: «message»;
- «Название» = «Уведомление администратору о заполнении формы»;
- «Символьный код» = «admin_email_template»;
- «Детальное описание» — сюда можно скопировать список доступных хеш-тегов (если вы вообще оставили это поле, т.к. оно не обязательное);
- «От кого» = «#EMAIL_FROM#»;
- «Кому» = «#ADMIN_EMAIL#»;
- «Тема письма» = «Некто #VALUE_name# заполнил форму»;
- «Тело письма»:
<h1>#SITE_NAME#</h1> <h2>Данные формы</h2> <dl> <dt>#TITLE_name#</dt> <dd>#VALUE_name#</dd> <dt>#TITLE_email#</dt> <dd>#VALUE_email#</dd> <dt>#TITLE_message#</dt> <dd>#VALUE_message#</dd> </dl> <p>Это письмо отправлено автоматически, отвечать на него не нужно. С вопросами обращаться по этому адресу: #ADMIN_EMAIL#</p>
Настройка компонента
- Добавляем компонент на выбранную вами страницу, на всякий случай сбросив кеш компонентов (компонент находится в разделе «служебные» под именем «продвинутая форма»);
- В разделе «инфоблок с результатами» выбираем инфоблок формы, можно снять галочку «сохранять результаты формы в инфоблок», если это не нужно, но сам инфоблок всё-равно нужно указывать (из него берутся поля формы);
- В разделе «уведомления на e-mail» указываем e-mail адреса (если e-mail уведомления не нужны, просто ничего в этом разделе не трогаем), — отправителя писем, администратора, скрытые копии (если нужно). Все e-mail-ы, в т.ч. и в форме могут быть двух типов: простой e-mail адрес (например: vasia@domain.ru), и e-mail с указанием имени (например: Василий Иванов <vasia@domain.ru>), также можно указывать по нескольку адресов через запятую (за исключением отправителя и e-mail-а из формы, если убрана соответствующая галочка). Ниже выбираем инфоблок шаблонов e-mail писем и сами шаблоны;
- В последнем разделе «дополнительные настройки» есть поле «уникальная „соль“ формы», — его лучше заполнять, хоть это и не обязательно. Обязательно в том случае, когда на одной странице находятся 2-е формы и более, тогда для каждой формы должна быть уникальная «соль», в которой могут быть совершенно произвольные символы (или например просто имя формы), в противном случае будут возникать конфликты форм при отправке данных;
- Всё готово к использованию, вам разве что остаётся применить соответствующие вашему сайту CSS-стили, или кастомизировать шаблон компонента при необходимости.
Поддерживаемые типы полей
- Строка;
- Число;
- Список;
- Текстовое поле;
Комментариев нет:
Отправить комментарий