Dodanie dodatkowych pól do formularza kontaktowego witryny

18

Wydaje mi się to dziwnie trudne. To, co myślałem, to po prostu dodanie dodatkowych pól trochę jak dodanie pól do typów treści. Ale nie. Nie mogę znaleźć żadnego obiektu, aby dodać pole numeru telefonu do formularza kontaktowego? Czy ktoś tam wie?

Purplemonkey
źródło

Odpowiedzi:

20

Oczekiwanie na skonfigurowanie pól formularzy, takich jak typy treści, jest nadmierną generalizacją. Typy treści dotyczą treści (tekst, obraz itp.) Witryny, a dokładniej w Drupal, dla węzłów (główny element treści w Drupal). Za pomocą modułu Field and Field UI można łatwo dodawać pola do typu zawartości za pomocą interfejsu WWW. Z wyjątkiem niektórych szczególnych przypadków, formularz nie jest częścią zawartości strony internetowej, ale raczej sposobem na dodawanie i edytowanie informacji, czasem treści, a czasem nie.

Aby dostosować (tj. Zmienić) formularz w Drupal, zwykłym sposobem jest utworzenie niestandardowego modułu, który implementuje hak . W ten sposób możesz dodawać elementy formularza do istniejących formularzy udostępnianych przez inne moduły. Aby użyć informacji o polach dodanych w formularzu kontaktowym w ten sposób, musisz również zmienić wysłaną pocztę za pomocą implementacji hook_mail_alter () . Poniższy przewodnik poprowadzi Cię przez oba etapy w Drupal 7. (Uwaga: również ten komentarz )hook_form_FORM_ID_alter

Rozwiązaniem innym niż kod jest użycie modułu Webform , który zapewnia typ zawartości formularza i pozwala dodawać formularze jako treść do serwisu WWW. Te formularze można konfigurować za pomocą interfejsu internetowego. Dla informacji przesyłanych za pomocą tych formularzy można skonfigurować różne etapy przetwarzania. Jednym z nich jest wysyłanie wiadomości e-mail. Używanie go do niestandardowego formularza kontaktowego jest częstym przypadkiem użycia. Webform ma własne koncepcje i punkty rozszerzeń. Chociaż może okazać się łatwiejszym i szybszym rozwiązaniem dla jednorazowych prostych formularzy, może się również okazać, że jest zbyt duży i skomplikowany w dostosowywaniu po osiągnięciu określonego progu funkcji. Koszt dodania dodatkowych funkcji do formularza internetowego może wtedy przewyższyć zysk związany z unikaniem pisania niestandardowego modułu w pierwszej kolejności.

Pierre Buyle
źródło
1

To zależy od tego, jakiego modułu używasz do formularza kontaktowego. Niektóre moduły zapewniają interfejs zaplecza, który nie wymaga programowania w celu dodania dodatkowych pól. Bardzo popularnym modułem z tą funkcjonalnością jest Webform.

Poza tym formularze w Drupal można zmienić, pisząc niestandardowy moduł za pomocą haka hook_form_alter. Istnieje wiele samouczków na temat programowania mdoule i korzystania z tego konkretnego haka.

mesch
źródło
1

Jeśli korzystasz z podstawowego modułu Kontaktowego, mam nadzieję, że moduł pól formularza kontaktowego wkrótce zostanie ukończony dla Drupal 7.

Moduł ten pozwala dodawać dodatkowe pola do formularza kontaktowego w całej witrynie, np. Interfejs modułu profilu. Administrator może zdefiniować pola, które będą dostępne w formularzu kontaktowym dla całej witryny. Pamiętaj, że te pola nie będą na razie dostępne w osobistym formularzu kontaktowym, ponieważ nie widzę żadnych szczególnych potrzeb.

Jeśli chcesz czegoś teraz: 4 opcje:

  • Użyj typu węzła i przekształć go w formularz kontaktowy.
  • Użyj formularza internetowego.
  • Zbuduj moduł niestandardowy
  • Lub jeszcze lepiej: rozwidlaj / pomóż modułowi contact_field! Strona projektu została właśnie zaktualizowana, więc przynajmniej się porusza i, po zakończeniu, oferuje bardzo fajny sposób dodawania pól, podobnie jak w przypadku typów treści.

(dodając to dla wyszukiwarki bot arena;))

Rudzik
źródło