Документация Shopkeeper 4.x

Формы

Для вставки формы в шаблон страницы можно использовать Twig функцию renderForm(). Пример:

{{ renderForm('contacts', 'form/bootstrap_4_horizontal_layout.html.twig') }}

Аргументы:

  1. Название YAML файла с данными формы. Файл должен находиться в папке config/resources/forms/.
  2. Тема формы или шаблон темы.
  3. Имя переменной формы. По умолчанию: form.

Для вывода формы используется шаблон templates/form/custom_form.html.twig.

Пример содержания YAML файла:

emailTo: myemai@domain.com
emailSubject: Email from your website
fields:
    - { name: name, label: Your name, type: TextType }
    - { name: email, label: Your email, type: EmailType }
    - { name: content, label: E-mail text, type: TextareaType, attr: { rows: 6 } }
    - { name: captcha, label: Captcha, type: CaptchaType }
    - { name: submit, label: Submit, type: SubmitType }

Для капчи используется компонент gregwar/captcha-bundle.

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

{% if currentPage.form_name is defined and currentPage.form_name is not empty -%}
    {{ renderForm(currentPage.form_name, 'form/bootstrap_4_horizontal_layout.html.twig') }}
{% endif %}

{% include 'flash_messages.html.twig' %}

Здесь form_name - это имя поля с названием формы.

Дополнительные материалы