Skip to content
PageBuilder
PageBuilder
Визуальный конструктор секций для MODX 3: черновик и публикация без перезаписи content ресурса
  • MODX 3
  • PHP 8.2
  • Vue 3
  1. Компоненты
  2. PageBuilder
  3. Рецепты
  4. Форма

Форма ​

Результат: посетитель отправляет заявку. Письмо уходит в том же запросе. Заявки в базе PageBuilder не хранятся. Нужны PageBuilder Pro и пакет FetchIt.

Что нужно заранее ​

  1. Ресурс опубликован, в шаблоне стоит [[!PageBuilder]].
  2. Установлен FetchIt. Без него секция показывает pagebuilder_fe_form_unavailable.
  3. Для схемы на много страниц нужна capability forms.

Шаги ​

Разовая форма на одной странице:

  1. Добавьте секцию contact_form.
  2. Задайте Ключ формы. Если форм на странице несколько, ключи не повторяйте.
  3. В repeater Поля формы добавьте name, label и type: text, email, phone, textarea, select, radio, checkbox, date. Для select и radio варианты пишите по одному значению в строке. Строка станет и подписью, и значением. Имя поля: [a-z][a-z0-9_]*, регистр не важен.
  4. Обязательный checkbox пустой, пока значение не 1, yes, true или on.
  5. Сохранить ресурса. Получатель письма: системная настройка emailsender. Пустое значение: отправка не выполняется.

Одна схема на много страниц:

  1. В CMP Forms создайте схему с ключом и полями. Типы: text, email, tel, textarea, select, radio, checkbox, date, плюс hidden и consent. Для select и radio заполните Варианты.
  2. Поле Email схемы задаёт получателя. Пустое поле отправляет письмо на emailsender.
  3. Webhook отправляет POST, если URL начинается с https://. Заголовок X-PageBuilder-Signature. Webhook письмо не заменяет.
  4. На странице добавьте form_builder, выберите ключ и при необходимости intro.
  5. Сохранить ресурса. Сниппет PageBuilderFormBuilder принимает отправку.

Сервер проверяет CSRF и honeypot nospam.

  • Форма v1 файл не принимает.
  • Неверный email в поле посетителя заявку не создаёт.
  • Пустая схема form_builder: pagebuilder_fe_form_empty.
  • Частые отправки одной схемы возвращают текст Too many requests. У contact_form этого лимита нет.

Пример полей ​

Две формы на одной странице.

contact_form, ключ callback. Строки repeater:

namelabeltypeoptions
nameИмяtext
emailПочтаemail
topicТемаselectДоставка и Оплата, каждое значение с новой строки

Вторая секция contact_form, ключ callback_footer. Поля те же, ключ другой.

form_builder на других страницах берёт схему из вкладки Forms, а не repeater секции. Intro заполняйте, если над полями нужен абзац.

Что проверить ​

contact_form: письмо уходит на emailsender. Пустое значение отправку не выполняет, посетитель видит ошибку.

form_builder: письмо уходит на Email схемы. Пустой Email отправляет на emailsender. Невалидный адрес и сбой почты пишутся в лог и success не меняют.

Поле honeypot nospam даёт тихий success без письма.

Откат ​

Удалите секцию. Схему в CMP удалите отдельно.

См. также ​