TNC Ajax Contact Form Field Module
■ エンティティに、メール送信機能を具備したメールフォームを追加する
■ Ajax化により、ページ遷移無しでのメールフォームの入力・確認・送信を可能にする
モジュールの概要
TNC Ajax Contact Form Field Module は、名前に「Field」と入っているので、Drupal をよくご存知の方にはお分かりのことと思いますが、Field Module と連動して機能するタイプのモジュールです(Field Module につきましては、「TNC HTML Slideshow Field Module」のページの冒頭部分で、簡単に説明しています)。

TNC Ajax Contact Form Field Module は、その Field Module と連動することにより、具体的には、「node」を始めとした全てのコンテンツタイプ(=「Entity」)に、メール送信機能を具備したメールフォーム表示エリアを追加します。つまり、TNC Ajax Contact Form Field Module により、メールフォーム専用のページを設置することなく、既存・新規を問わず、あらゆるコンテンツタイプに、メールフォーム機能を追加的に持たせることができるわけです。もちろん、特定のページをメールフォーム専用とすることも可能です。また、Ajax 化されているため、入力の確認・送信をページ遷移無しで行うことができるようになっています。
開発履歴
2011年03月08日 UPDATE|Drupal 7 に対応しました(それに伴い、当モジュールの名称を変更しました)。
2010年03月08日 LAUNCH|当サイトにて、実運用を開始しました。
(アップデート内容の詳細につきましては、このページの最下部にてインフォメーションしております。)
メールフォーム / 迅速・柔軟な作成
ページ上で表示するメールフォームのフォーマットは、各コンテンツの編集ページにおいて作成します。送信する項目(ユーザーの方が入力する項目)としては、テキストフィールド(1行)、テキストエリア(複数行)、ラジオボタン、セレクトメニュー、チェックボックスに対応しています。また、編集ページにおいて、(1)どのようなタイプの送信項目をいくつ設ける、(2)それらにラベルや説明文を追加する、(3)各画面で表示される、ユーザーに対するメッセージを作成する、などの設定変更をリアルタイムで行うことが可能となっていますので(この部分は、具体的には、JavaScript による DOM scripting という技術を使って実現しています)、迅速かつ柔軟にメールフォームを作成・修正することができるようになっています。また、これらの設定はコンテンツごとに行いますので、各コンテンツで異なる書式のメールフォームを設置することができるようになっています。さらに、必須入力欄を指定することができ、その場合には、サーバー側で入力されているかどうかの確認を行います。
画面構成 / Ajax
デフォルト画面、確認画面、送信完了画面の3つの画面から構成されており、送信するためには、必ず確認画面を経なければならないようになっています。これは、入力ミスやいたずらを減少させることに繋がります。また、各画面間の遷移は、Ajax により、滑らかにスピーディに行います。つまり、JavaScript が有効な環境の場合には、ユーザーは、ページ遷移をいっさい伴わずにメール送信することが可能となります(当然ですが、JavaScript が有効でない環境の場合にも対応しています)。したがって、これは、ユーザーのメール送信のための手間・時間を減少させることに繋がります。そして、わずかですが、メール送信に伴うサーバー負荷も減少させます。
セキュリティ
セキュリティ面では、HTML インジェクション対策XSRF 対策等、様々な対策を行っております。また、不正アクセス等による個人情報の流出を避けるため、ユーザーの方が入力したデータは、サーバー側では保存しないような仕様になっています。
特徴
上記のような特徴は、メール送信機能を提供する他のモジュールでも実現されているものかもしれません。しかし、TNC Ajax Contact Form Field Module は、あらゆるページにメールフォーム機能を追加できるという際立った特徴があるため、それにより、大きなメリットを得られるのではないかと考えています。
メリット
つまり、TNC Ajax Contact Form Field Module を導入することにより得られるメリットは、上記の特徴に加えて、(1)コンテンツとメールフォームを同一ページで展開することができるため、ユーザーはページ遷移無しにメールフォームにアクセスできる、つまり、コンテンツを読んだユーザーが最小限の手間でメールフォームにアクセスできるため、TNC Ajax Contact Form Field Module は、ユーザーからの問い合わせ等を促進させるように機能する、(2)コンテンツごとにメールフォームの宛先アドレスを指定することができるため、各コンテンツからのコンタクトを適切な担当者に振り分けることにより、ユーザーからの問い合わせ対応を効率的・効果的に管理・実行することができる、(3)ユーザーからのメールには、どのコンテンツからのコンタクトであるかが明記されているため、ユーザーの関心を引いているコンテンツを特定しやすくなる、という点です。TNC Ajax Contact Form Field Module は、これらのメリットにより、ユーザーにとって価値あるサイトの構築・運営を目指します。
実例
当サイトにおけるメールフォームは、このページのものも含め、全て TNC Ajax Contact Form Field Module により提供されています。ページ下部の「Contact」というボタンをクリックしていただきますと、メールフォームが表示されますので、この件に関するお問い合わせ等がございましたら、ご利用いただけましたらと思います。
開発履歴(詳細)
2011年03月08日 UPDATE|Drupal 7 に対応しました(それに伴い、当モジュールの名称を変更しました)。
今回のアップデートにより、当モジュールを Drupal 7 上で使用することができるようになりました。それに伴い、当モジュールの名称を、旧来の「TNC CCK Contact Field Module」から、「TNC Ajax Contact Form Field Module」へと変更しました。名称変更の理由は、(1)Drupal がバージョン 6 からバージョン 7 へと進化するのに伴い、当モジュールが機能する基盤モジュールがそれまでの CCK Module から Field Module となった(そのため、名称中の「CCK」というキーワードは実体にそぐわなくなった)、(2)当モジュールのコア機能として Ajax 対応している(=ページ遷移を伴わずにコンタクトフォームへの入力・確認・送信が可能である)ということがあると考えた、ためです。また、第1の理由による当然の帰結として、当モジュールは、Drupal 7 から導入された「Entity」という概念・実装に対応しています(「Entity」については、ブログ「DIARY :: AROUND THE CORNER」のエントリー 「Entity 化する Drupal」 で、若干の解説を行っています)。つまり、当モジュールは、「node」だけでなく、全ての「Entity」に対して、追加フィールドとして機能するようになっています。ちなみに、このページを含めて、当サイト上でこのモジュールを利用している「Drupal、6つの自由自在をもたらすCMS」、「TNC Ajax Wiki Site Module」、「Information 0022」などのページは、TransNetCreation の開発による当サイト専用のカスタムの「Entity」となっています(なお、「Contact」ページは「node」を利用しています)。