Webform

Webform について
概要

簡単に、問い合わせフォーム、イベント申込フォームなど、さまざまなフォームを作成することができます。

スクリーンショット

Webformサンプル

環境

Drupal 6   Drupal 7

インストール

ダウンロード  drupal.org/project/webform

環境設定
  • 返信のThanksメールを送信したい

問い合わせをした人に返信のメール(Thanksメール)を送る場合は、作成するページコンテンツなどで、Webformを選択し、メールを選択します。

「E-MAIL TO」のところで、Component value 「emailアドレス」 を選択し、追加をクリック。

「E-mail to address」 で Component emailアドレス を選択し、返信先、送信するメッセージなどを書き込み設定することで、問い合わせ終了後に、問い合わせをした人に、返信のThanksメールが届きます。

Acquia Drupal 7 module Webform 返信Thanksメールの送信法法

  • バージョンアップ

Webform 7.x-3 から 7.x-4 にバージョンアップする場合は、通常のモジュールのバージョンアップと同様に行います。 

既存のバージョンをモジュールの非アクティブに変更し、Webformモジュールを削除して新しいモジュールと入れ替えます。

その後、Webformモジュールをアクティブにして、最後に、update.phpスクリプト実行します。

備考

テキストで選択する場合は、safe_key を各選択するテキストごとに設定します。 プルダウンメニューやラジオボタンなどの形式で使用。 

safe_keyのサンプルフォーマット 

1436|日本

1568|アメリカ

1589|ドイツ

Webfomと連携してユーザー登録ができるモジュール Webform register は大変便利です。Durpla6版しからありませんが、簡単にユーザー登録時に、さまざま質問を設定できます。 Webform register の詳細へ

便利な使い方
  • データを暗号化したい

Webform 3.x の場合

SSL機能を使わないで、Webformのデータを暗号化してDrupalのデータベースに保存するモジュール webform_encrypt を使うと暗号化できます。 encrypt モジュールが必要になります。

導入手順として、まず、encrypt モジュールをインストール。 admin -> 環境設定 -> encrypt で drupal_private_key ファイルの保存先を、絶対PATHで設定します。 そのディレクトリは、drupal root ディレクトリ以外とし、複数のDrupalを稼働する場合は、ディレクトリ名を別名にする。 ディレクトリのパーミッションを調整。

webform_encrypt モジュールのインストール。 フォームのコンポーネントを編集し、Encryption オプションを使用するをクリックして保存します。 その項目は暗号化され、メールなどで転送された場合でも、[Value Encrypted] という表現で、見ることができません。 サイトにログインして、Webformの結果を見ることで、見ることができます。 encrypt モジュールで暗号化されて、Drupalサイト内だけで見れる仕組みです。

 

  • 添付ファイルは管理者だけが見れるように

標準のWebformで添付ファイルを設定すると、アップロードしたファイルはだれでも見れる状態です。Drupal 7 のプライベートファイル機能を使ってアップロードするディレクトリを一般には公開しない設定が可能になります。 

Webformのフォームコンポーネントでタイプ「ファイル」を選択し、プライベートファイルを使用するにチェック、必要であればそのディレクトを入力設定します。

この設定で、アップロードしたファイルはプライベート設定のディレクトリに保存され、サイトの権限でアクセス管理が設定可能です。

上記の暗号化と組み合わせる場合、始めに暗号化モジュールの実行を行い、その後、プライベートファイルの設定を行うとwebform_encryptモジュールに関連するエラーが起こります。

解決策の一つとして、まず、webform_encryptモジュールでフォームコンポーネントを暗号化する状態でフォームを作成し、保存します。

次に、webform_encryptモジュールを使用しない設定に変更し、Webformのフォームコンポーネントでタイプ「ファイル」を選択し、プライベートファイルを使用するにチェック、必要であればそのディレクトを入力設定します。

その後、webform_encryptモジュールを使用する設定に変更し、暗号化の項目が有効になっているか、ファイルのアップロード先がプライベートファイルで、ディレクトリも設定されているか確認します。 

以上で添付ファイルがサイト権限で制御できるようになります。

 

  • 送信前にプレビューで確認したい

送信前のプレビュー機能は、標準ではありません。2013年12月24日現在ではパッチコマンドでの適用で可能となります。

環境: Drupal 7.24  Webform 7.x-4.0-beta1 

このパッチはマルチフォームで途中の送信内容確認で作成したものです。今後、たぶん、Drupal 8 版からwebform標準機能に組み込まれる可能性がありますが。詳細は以下のページで確認して下さい。

https://drupal.org/node/435232

このパッチプログラムは、webform 7.x-4.x-dev が対象です。

# cd drupal/sites/all/modules/

# patch < ./webform_preview-435232.patch
can't find file to patch at input line 5
Perhaps you should have used the -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/includes/webform.pages.inc b/includes/webform.pages.inc
|index 5aeaf3a..001a1ec 100644
|--- a/includes/webform.pages.inc
|+++ b/includes/webform.pages.inc
--------------------------
File to patch: ./includes/webform.pages.inc
patching file ./includes/webform.pages.inc
Hunk #1 succeeded at 239 (offset 1 line).
Hunk #2 succeeded at 332 (offset 1 line).
Hunk #3 succeeded at 447 (offset 1 line).
patching file webform.install
patching file webform.module

# drush updatedb
 Webform  7413  Add preview page columns to the webform table.
Do you wish to run all pending updates? (y/n): y
Performed update: webform_update_7413                           [ok]
'all' cache was cleared.                                                       [success]
Finished performing updates.                                              [ok]

# drush cron
Cron run successful.                                                           [success]

その後、上記パッチの修正で、複数のパッチが出ているので、同様にパッチを適用させます。

 

  • フォーム内の「セレクト」フィールドで複数の問合せ先を設定し、個別に送信先メールアドレスを設定する

webform 7.x-4.0 からの機能だと思いますが、以下のようにメールのコンポーネントで「セレクト」フィールドを設定すると、項目ごとにメールアドレスが設定できる。

 

主な拡張モジュール

Webform Layout ダウンロード ここから  フィールドの中で行のレイアウトを設定できる

 

Webform Matrix Component ダウンロード ここから マトリックスやテーブルのコンポーネントを定義できる

 

Webform Table Element ダウンロード ここから   テーブルの中に複合的なコンポーネントを定義できる

 

Webform Validation  ダウンロード ここから  フォームページごとのバリデーションチェック

emailのテキストが同じかどうか確認するときに、使用するregexを設定しますが、 \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b

もしくは次のサイトで確認します ここから  この情報は次のサイトで詳細がわかります ここから  

Validationに関するモジュールとして

ClientSide Validation  ダウンロード ここから   ClientSide ValidationはForm API Validation モジュールを使っています ダウンロード ここから  

 

 

 

タグ: 

オープンソースソフトウェア: 

CMS: