Drupal Webformモジュール

DrupalのコアモジュールContactでお問合せフォームを簡単に設置できますが、フィールドを追加したり、複数を設置するのは困難です。

この辺を実現してくれるのがWebformモジュールです。問合せフォームを思った通りに作成し、メール送信するだけでなく、データベース化されるので、アンケートとか様々な調査分析にも非常に有効です。

このWebformモジュールでWebformというコンテンツタイプができるのですが、フォーム作成はCCKとは別のものです。この辺が分りにくいのでまとめておきます。

Webformでは入力フィールドはコンテンツとして作成します。Webformのコンテンツタイプで記事を作成し、まずは入力必須項目のタイトルだけ入力して、その他の項目はそのままで保存してしまいましょう。

するとフィールドを作っていくページ(edit/components)に遷移します。フィールドの名前を入力し、フィールドタイプを選択して追加ボタンをクリックします。ここでのフィールドの名前はlabel要素になります。

次画面でtextfieldの場合の最大文字数やボックスの幅、selectの場合のoption値、入力必須項目などそのフィールドを細かく設定できます。ここで高度な設定のところに隠れているField Keyが必要になります。このField Keyはフィールドのname値としてsubmitted[name]のように設定されます。

select(選択)で作成すると、詳細設定でmultipleにチェックして、Listboxを外すとチェックボックスに、Listboxをチェックするとプルダウンリスト、両方外すとラジオボタンになります。

個々のフィールドを設置した後、一覧で必須項目やメールに送信するかどうか、優先順位を一覧で操作できます。

フィールドを設置できたらコンテンツ自体の設定画面(Configuration)に戻ります。Webform mail settingで送信先のメアドを設定します。

E-mail from nameにはメール上の送信者名になります。Componentを選択するとフィールド値を持ってくることができます。同様にE-mail from addressには送信者のメールアドレス、E-mail subjectはメールのタイトルとなるのでComponentからフィールド値を選択すると便利です。

Resultsのタブでユーザーの問合せや投票を一覧表示することができます。この結果はCSVでダウンロードできるので、いろんな集計ができるようになります。

これまでフィールドがDateの場合、タイムゾーンの設定とうまくリンクせず、メールに送信できないという問題があったのですが、最新のWebform 5.x-2.4ではこの問題が解決されています。DateやTimeのフィールドを活用して、簡単な予約フォームが作成できますよ!