it-swarm.com.de

Hinzufügen zusätzlicher Felder zum Site-Kontaktformular

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

17
Purplemonkey

Die Erwartung, dass Formularfelder wie Inhaltstypen konfiguriert werden, ist eine Überverallgemeinerung. Inhaltstypen sind für Inhalt (Text, Bild usw.) der Website und insbesondere in Drupal für Knoten (der Hauptinhalt in Drupal). Mit dem Modul "Feld" und "Feld-Benutzeroberfläche" können Sie mithilfe einer Web-Benutzeroberfläche auf einfache Weise Felder zum Inhaltstyp hinzufügen. Mit Ausnahme einiger spezifischer Fälle ist ein Formular nicht Teil des Inhalts einer Website, sondern eine Möglichkeit für Benutzer, Informationen hinzuzufügen und zu bearbeiten, manchmal Inhalt und manchmal nicht.

Um ein Formular in Drupal anzupassen (d. H. Zu ändern), ist der übliche Weg ein benutzerdefiniertes Modul erstellen , das das hook_form_FORM_ID_alterhook . 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 dieser Kommentar )

Eine Nicht-Code-Lösung besteht darin, das Modul Webform zu verwenden, das einen Inhaltstyp form bereitstellt, und Sie können Ihrer Website Formulare als Inhalt hinzufügen. 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 verfügt über eigene Konzepte und Erweiterungspunkte. Es kann sich zwar als einfachere und schnellere Lösung für einmalig einfache Formulare erweisen, es kann sich jedoch auch als übergroß und komplex herausstellen, wenn ein bestimmter Funktionsschwellenwert erreicht wurde. Die Kosten für das Hinzufügen zusätzlicher Funktionen zu einem Webformular können dann den Gewinn übertreffen, das Schreiben eines benutzerdefinierten Moduls zu vermeiden.

20
Pierre Buyle

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.

Ansonsten können Formulare in Drupal) geändert werden, indem ein benutzerdefiniertes Modul mit dem Hook hook_form_alter geschrieben wird. Es gibt viele Tutorials zur Entwicklung von mdoule und zur Verwendung dieses bestimmten Hooks.

1
mesch

Wenn Sie das Kernmodul "Kontakt" verwenden, hoffen Sie, dass das Modul " Kontaktformularfelder " bald für Drupal 7) fertig wird.

Mit diesem Modul können dem standortweiten Kontaktformular zusätzliche Felder wie die Profilmodulschnittstelle hinzugefügt werden. Der Administrator kann die Felder definieren und diese werden auf dem Kontaktformular vor Ort verfügbar sein. Bitte beachten Sie, dass diese Felder vorerst nicht für das persönliche Kontaktformular verfügbar sind, da ich keine spezifischen Anforderungen sehe.

Wenn Sie jetzt etwas wollen: 4 Optionen:

  • 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, sodass sie sich zumindest wieder bewegt und nach Abschluss eine sehr gute Möglichkeit zum Hinzufügen von Feldern bietet, genau wie bei Inhaltstypen.

(Hinzufügen dieser für Suchbot Arena;))

1
Robin

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

Genießen!

0
Druvision