Drupal 8: webform/node в модальном окне

Задача: быстро сделать форму "заказать звонок" для сайта

Можно использовать контактную форму, но мне больше нравится webform

1) Создаем вебформу с нужными полями

2) Задаем ей алиас, например /call_me

3) Делаем ссылку вида

<a class="use-ajax" data-dialog-type="modal" href="/call_me">Обратный звонок</a>

4) Выбираем тип "подтверждения" у вебформы. Мне больше понравился вариант с редиректом на главную и выводом сообщения в регион сообщений.

Проверяем, работает. Всё? Нет, не всё. Работает для зарегистрированных пользователей, а для анонимов нет. Чтобы работало для анонимов

5) Добавляем в наши библиотеки

dependencies:
  - core/jquery.ui.dialog
  - core/drupal.dialog.ajax

6) Сбрасываем кэш

Теперь работает для всех.

Автор

ivnish Разработка, поддержка и лечение сайтов после заражения

Комментарии

Аватар пользователя gun_dose gun_dose 28 ноября 2018 в 11:47

Кстати, clientside validation должен быть полезен, если вебформа аяксовая, т.к. на аясковых формах стандартная HTML5-валидация не работает, ибо события submit для формы не происходит.

Аватар пользователя azzis azzis 1 декабря 2018 в 17:04

Есть вариант на мой взгляд более интересный и без необходимости в WebForm. Есть модуль от Никлана ContactTools. Дает возможность прикручивать раличный няшки к контактным формам )