Добавление дополнительных полей в контактную форму сайта

18

Это кажется странно сложным для меня. Я подумал, что это просто добавление дополнительных полей, немного похоже на добавление полей к типам контента. Но нет. Я не могу найти какой-либо объект, чтобы добавить, например, поле номера телефона в форму контакта? Кто-нибудь там знает?

Purplemonkey
источник

Ответы:

20

Ожидание того, что поля форм будут настроены как типы контента, является чрезмерным обобщением. Типы контента предназначены для контента (текстового, графического и т. Д.) Веб-сайта и, более конкретно, в Drupal, для узлов (основной части контента в Drupal). Используя модуль Field and Field UI, можно легко добавлять поля к типу контента с помощью веб-интерфейса. За исключением некоторых конкретных случаев, форма не является частью содержимого веб-сайта, а скорее способом добавления и редактирования информации, иногда содержимого, а иногда нет.

Чтобы настроить (т.е. изменить) форму в Drupal, обычным способом является создание пользовательского модуля, который реализует ловушку . Таким образом, вы можете добавить элементы формы к существующим формам, предоставленным другими модулями. Чтобы использовать информацию для полей, добавленных в контактную форму, таким образом, вам также необходимо изменить отправленное письмо, используя реализацию hook_mail_alter () . Следующее руководство проведет вас через оба шага в Drupal 7. (Обратите внимание также на этот комментарий )hook_form_FORM_ID_alter

Решение без кода состоит в том, чтобы использовать модуль Webform, который предоставляет тип содержимого формы и позволяет добавлять формы в качестве содержимого на ваш веб-сайт. Эти формы настраиваются через веб-интерфейс. Различные шаги обработки могут быть настроены для информации, представленной через эти формы. Одним из них является отправка электронной почты. Использование его для пользовательской контактной формы является распространенным случаем. Webform поставляется с собственными концепциями и точками расширения. Хотя это может оказаться более простым и быстрым решением для одноразовых простых форм, оно также может оказаться слишком большим и сложным для настройки после достижения определенного порогового значения. Затраты на добавление дополнительных функций в веб-форму могут затем превзойти выигрыш от того, чтобы вообще не писать собственный модуль.

Пьер Буйль
источник
1

Это зависит от того, какой модуль вы используете для своей контактной формы. Некоторые модули предоставляют внутренний интерфейс, который не требует программирования для добавления дополнительных полей. Очень популярным модулем с этой функциональностью является Webform.

За исключением этого, формы в Drupal можно изменить, написав собственный модуль с помощью ловушки hook_form_alter. Существует множество учебных пособий по разработке mdoule и использованию этого конкретного хука.

Mesch
источник
1

Если вы используете основной модуль Contact, надеемся, что модуль поля формы контакта может скоро закончиться для Drupal 7.

Этот модуль позволяет добавлять дополнительные поля в контактную форму, например интерфейс модуля профиля. Администратор может определить поля, и они будут доступны на сайте контактной формы. Обратите внимание, что эти поля не будут доступны для личной контактной формы, поскольку я не вижу особых потребностей.

Если вы хотите что-то сейчас: 4 варианта:

  • Используйте тип узла и преобразуйте его в форму контакта.
  • Используйте веб-форму.
  • Создайте пользовательский модуль
  • Или даже лучше: раскошелиться / помочь модулю contact_field! Страница проекта была только что обновлена, поэтому она, по крайней мере, снова движется, и после ее завершения предложит очень хороший способ добавления полей, как и для типов контента.

(добавив это для поиска бота арены;))

Робин
источник