Hinzufügen zusätzlicher Felder zum Website-Kontaktformular

18

Das scheint mir seltsam schwierig zu sein. Was ich dachte, wäre nur ein Fall des Hinzufügens zusätzlicher Felder, ähnlich wie das Hinzufügen von Feldern zu Inhaltstypen. Aber nein. Ich kann keine Einrichtung finden, um dem Kontaktformular beispielsweise ein Telefonnummernfeld hinzuzufügen. Weiß jemand da draußen Bescheid?

Purplemonkey
quelle

Antworten:

20

Zu erwarten, dass Formularfelder wie Inhaltstypen konfiguriert werden, ist eine Überverallgemeinerung. Inhaltstypen beziehen sich auf den Inhalt (Text, Bild usw.) der Website, genauer gesagt, auf Drupal für Knoten (der Hauptinhalt in Drupal). Mit dem Modul "Feld" und "Feld-UI" können Sie dem Inhaltstyp mithilfe einer Web-UI problemlos Felder hinzufügen . Mit Ausnahme einiger spezifischer Fälle ist ein Formular nicht Teil des Inhalts einer Website, sondern vielmehr eine Möglichkeit für Benutzer, Informationen hinzuzufügen und zu bearbeiten, manchmal Inhalte und manchmal nicht.

Um ein Formular in Drupal anzupassen (dh zu ändern), erstellen Sie normalerweise ein benutzerdefiniertes Modul , das den Hook implementiert . Auf diese Weise können Sie vorhandenen Formularen, die von anderen Modulen bereitgestellt werden, Formularelemente hinzufügen. Um die Informationen für Felder zu verwenden, die auf diese Weise zum Kontaktformular hinzugefügt wurden, müssen Sie auch die gesendete E-Mail mit einer Implementierung von hook_mail_alter () ändern . Die folgende Anleitung führt Sie durch beide Schritte in Drupal 7. (Beachten Sie auch diesen Kommentar )hook_form_FORM_ID_alter

Eine Nicht-Code-Lösung besteht darin, das Webform- Modul zu verwenden, das einen Formularinhaltstyp bereitstellt und das Hinzufügen von Formularen als Inhalt zu Ihrer Website ermöglicht. Diese Formulare können über eine Web-Benutzeroberfläche konfiguriert werden. Für die über diese Formulare übermittelten Informationen können verschiedene Verarbeitungsschritte konfiguriert werden. Eine davon ist das Versenden von E-Mails. Die Verwendung für ein benutzerdefiniertes Kontaktformular ist ein häufiger Anwendungsfall. Webform wird mit eigenen Konzepten und Erweiterungspunkten geliefert. Während es sich für einfache Formulare als eine einfachere und schnellere Lösung erweisen kann, kann sich herausstellen, dass sie übergroß und komplex sind, wenn ein bestimmter Schwellenwert für Features erreicht ist. Die Kosten für das Hinzufügen zusätzlicher Funktionen zu einem Webformular können dann den Vorteil übertreffen, dass das Schreiben eines benutzerdefinierten Moduls überhaupt nicht erforderlich ist.

Pierre Buyle
quelle
1

Dies hängt davon ab, welches Modul Sie für Ihr Kontaktformular verwenden. Einige Module bieten eine Backend-Schnittstelle, für die keine Programmierung erforderlich ist, um zusätzliche Felder hinzuzufügen. Ein sehr beliebtes Modul mit dieser Funktionalität ist Webform.

Abgesehen davon können Formulare in Drupal durch Schreiben eines benutzerdefinierten Moduls mit dem Hook hook_form_alter geändert werden. Es gibt viele Tutorials zur Entwicklung von mdoule und zur Verwendung dieses speziellen Hooks.

mesch
quelle
1

Wenn Sie das Kernmodul "Kontakt" verwenden, hoffen Sie, dass das Modul " Kontaktformularfelder" in Kürze für Drupal 7 fertiggestellt wird.

Mit diesem Modul können zusätzliche Felder zum standortweiten Kontaktformular hinzugefügt werden, wie z. B. die Profilmodulschnittstelle. Der Administrator kann die Felder definieren und diese stehen auf dem Kontaktformular für die gesamte Site zur Verfügung. Bitte beachten Sie, dass diese Felder für das persönliche Kontaktformular derzeit nicht verfügbar sind, da ich keine spezifischen Anforderungen sehe.

Wenn Sie jetzt etwas wollen: 4 Möglichkeiten:

  • Verwenden Sie einen Knotentyp und wandeln Sie ihn in ein Kontaktformular um.
  • Verwenden Sie ein Webformular.
  • Erstellen Sie ein benutzerdefiniertes Modul
  • Oder noch besser: Fork / Help das contact_field Modul! Die Projektseite wurde gerade aktualisiert, ist also zumindest wieder in Bewegung und bietet, wenn sie fertig ist, eine sehr gute Möglichkeit zum Hinzufügen von Feldern, genau wie bei Inhaltstypen.

(Fügen Sie dies für die Suche Bot Arena;))

Robin
quelle
0

Hier ist ein Beispielcode, der zeigt, wie benutzerdefinierte Felder über das Formular-API zum standortweiten Kontaktformular hinzugefügt werden: Beispiel für neue Formularfelder .

Genießen!

Druvision
quelle