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

Аватар пользователя itcrowd72
3

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

Можно использовать контактную форму, но мне больше нравится  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) Сбрасываем кэш


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

Тип материала:
Версия Drupal:

Комментарии

Аватар пользователя sas@drupal.org
sas@drupal.org 2 недели назад

В 8-ке хорошо поддержали jquery.ui использование ссылки + подключение библиотеки достаточно. Я бы еще использовал Clientside Validation https://www.drupal.org/node/875482

Аватар пользователя gun_dose
gun_dose 2 недели назад

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

Аватар пользователя azzis
azzis 1 неделя назад

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