サイト連絡先フォームにフィールドを追加する


18

これは奇妙に私には難しいようです。私が考えたのは、コンテンツタイプにフィールドを追加するのと同じように、余分なフィールドを追加する場合です。しかし、違います。電話番号フィールドを連絡先フォームに追加する施設が見つかりませんか?誰もが知っていますか?

回答:


20

フォームフィールドがコンテンツタイプのように構成されることを期待することは、過度に一般化されています。コンテンツタイプは、Webサイトのコンテンツ(テキスト、画像など)、より具体的には、Drupalのノード(Drupalのコンテンツの主要部分)用です。フィールドおよびフィールドUIモジュールを使用すると、Web UIを使用してコンテンツタイプにフィールドを簡単に追加できます。特定の場合を除いて、フォームはWebサイトのコンテンツの一部ではなく、ユーザーが情報を追加および編集する方法です。

Drupalでフォームをカスタマイズ(変更)するための通常の方法は、フックを実装するカスタムモジュール作成することです。これにより、他のモジュールが提供する既存のフォームにフォーム要素を追加できます。この方法で連絡先フォームに追加されたフィールドの情報を使用するには、hook_mail_alter()の実装を使用して送信メールを変更する必要もあります。次のガイドでは、Drupal 7の両方の手順を説明します(このコメントにも注意してください)。hook_form_FORM_ID_alter

非コードソリューションは、フォームコンテンツタイプを提供するWebformモジュールを使用し、コンテンツとしてフォームをWebサイトに追加できるようにすることです。これらのフォームは、Web UIを介して構成できます。これらのフォームから送信された情報に対して、さまざまな処理ステップを構成できます。それらの1つはメール送信です。カスタムの連絡先フォームに使用することは、一般的な使用例です。Webformには、独自の概念と拡張ポイントが付属しています。一度だけのシンプルなフォームの場合、より簡単で高速なソリューションであることが判明する可能性がありますが、特定の機能のしきい値に達すると、サイズが大きく複雑になってカスタマイズが明らかになる場合があります。Webフォームに追加機能を追加するコストは、そもそもカスタムモジュールの作成を回避する利点よりも優れています。


1

お問い合わせフォームに使用しているモジュールによって異なります。一部のモジュールは、フィールドを追加するためのプログラミングを必要としないバックエンドインターフェイスを提供します。この機能を備えた非常に人気のあるモジュールはWebformです。

それを除いて、Drupalのフォームは、hook_form_alterフックを使用してカスタムモジュールを記述することで変更できます。mdouleの開発とこの特定のフックの使用に関するチュートリアルはたくさんあります。


1

コアContactモジュールを使用している場合は、Drupal 7 のContact form fieldsモジュールがすぐに終了することを期待してください

このモジュールでは、プロファイルモジュールインターフェイスのようなサイト全体の連絡先フォームにフィールドを追加できます。管理者はフィールドを定義でき、それらはサイト全体の連絡フォームで利用できます。これらのフィールドは、特定のニーズが見当たらないため、現時点では個人の連絡先フォームでは使用できません。

今すぐ欲しい場合:4つのオプション:

  • ノードタイプを使用し、それを連絡先フォームに変換します。
  • Webフォームを使用します。
  • カスタムモジュールを構築する
  • またはそれ以上:contact_fieldモジュールをfork / helpしてください!プロジェクトページが更新されたばかりなので、少なくとも再び移動し、コンテンツタイプと同様に、フィールドを追加する非常に素晴らしい方法を提供します。

(これを検索ボットアリーナに追加;))


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.