Формы в одностраничниках

Аватар пользователя goodboy goodboy 26 августа 2015 в 15:11

Потребовалось срочно создать одностраничный сайт, мини-лендинг на полтора экрана. Сделали статичный html-файл, сверстали, все красиво. В самый последний момент было сказано, что нужно добавить форму обратной связи.

Как сделать форму, используя только текстовый редактор? Последний раз подобное я делал в 1999 году.
Нужна клиентская валидация полей формы (в т.ч. на корректность введенного Email), красиво вывести ошибки без перезагрузки. Нужен sendform.php, на которое бы указывал action формы. В нем, серверная проверка вводимых данных, борьба со злоумышленниками, ботами... Далее, необходимо вводить в senform.php список Email получателей, формировать формат писем... Но самое страшное, что данные, введенные в форму, необходимо хранить и отображать при необходимости.

Как поступить? Изобретать свой велосипед, искать легкую CMS только для этих целей? Времени на это нет. А ведь есть проверенный готовый инструмент, позволяющий хранить результаты отправки форм, отображать, отсылать уведомления и многое другое... Конечно же, это друпаловский модуль Webform.

Установили чистый друпал, сделали тему, html-файл с версткой залили в шаблон страницы. Осталось дело за формой. Ее надо вывести посередине страницы, с использованием AJAX. Устанавливаю модуль webform и webform_ajax. Что такое? Требуется установить модули-монстры Chaos tools и Views. Для отправки писем желательно Mime Mail. Терять уже нечего, ставим Form placeholder. Для администрирования Admin menu. Ничего себе за хлебушком сходил формочку поставил.

Задачу мы решили, но осадочек остался. Landing на друпал такой landing...

Комментарии

Аватар пользователя Nikit Nikit 27 августа 2015 в 7:21

А что такого? Не такие уж эти монстры - они нужные и полезные. А если "осадок", то меняйте инструмент...

Аватар пользователя goodboy goodboy 27 августа 2015 в 9:37

Для обычных проектов сразу включаешь views, ctools, webform и не замечаешь зависимостей. Для меня это явилось откровением, особенно views. Ведь он используется в webform, чтобы во вьювах иметь возможность выводить результаты формы. Наверное, можно сделать было отдельным подмодулем webform_views. Я посмотрел - зависимости эти появились в 4-й версии webform, так что в моем случае правильнее было ставить webform 3.20 .

Насчет монстров в том смысле, что views и ctools намного больше по размеру самого webform. "Де-факто" эти два модуля уже в ядре, и тут не удалось без них обойтись. Заказчику вообще удивительно, что для какой-то формочки пришлось сделать столько телодвижений. "Форма, с тремя полями, что там делать-то".

Да, инструмент поменяли, лендинги теперь делаем на WP.

Аватар пользователя goodboy goodboy 27 августа 2015 в 14:26

Наверное, но времени было в обрез. Да и велосипед изобретать не хочется.