メールフォームプラグインV2.0・その6(「メールフォーム共通部分」テンプレートの作成)

メールフォームプラグインでは、メールフォームのテンプレートをカスタマイズすることで、さまざまなメールフォームを作ることができます。
今日は、「メールフォーム共通部分」のテンプレートを作る方法を解説します。

1.7種類のテンプレートを組み合わせる

メールフォームプラグインでは、以下の表のように、7種類のテンプレートを組み合わせて動作するようになっています。

テンプレート内容
メールフォームユーザーが最初にアクセスするメールフォームのページのテンプレートです。
送信確認メールフォームで「確認」ボタンがクリックされたときに表示するページのテンプレートです。
送信エラーメール送信の際にエラーがあったときに表示するページのテンプレートです。
送信完了メールの送信が完了したときに表示するページのテンプレートです。
メールフォーム共通部分メールフォーム/送信確認/送信エラーのテンプレートで共通な、メールフォームの本体部分(form要素の部分)のテンプレートです。
メール本文自分宛に送信されるメールの本文のテンプレートです。
返信メールメールを送信してきた人に自動返信する際のメールの文章のテンプレートです。

上記のうち、メールフォームテンプレートは、インデックステンプレートとして作成し、再構築してファイルに出力するようにします。
残りの6つのテンプレートは、テンプレートモジュールとして作成します。また、CGIによって動的に処理され、ファイルには出力されません。

2.「メールフォーム共通部分」テンプレートの作成

「メールフォーム共通部分」テンプレートは、メールフォームの中心である、form要素の部分を入れるモジュールです。
このモジュールを、メールフォーム/送信確認/送信エラーの各テンプレートに組み込んで、メールフォームのページを表示するという仕組みを取っています。

2-1.テンプレートの名前の付け方

「メールフォーム共通部分」のテンプレートは、テンプレートモジュールとして作ります。
モジュール名をつける際には、その先頭に「mail_common:」という接頭語をつける必要があります。
例えば、「mail_common:共通部分」のような名前をつけます。

2-2.formタグの書き方

formタグの書き方は以下のようになります。

<form method="post" action="<$MTCGIPath$>plugins/MailForm/mt-mail-form.cgi">

2-3.form内の各要素の書き方

送信者名/送信者のメールアドレス/件名はinputタグ、本文はtextareaタグで作ります。
また、「送信」と「確認」の2つのボタンも作ります。これらもinputタグで作ります。
inputタグとtextareaタグは、name属性を指定する必要があります。属性のつけ方は以下の表の通りです。

項目name属性
送信者名mail_author
メールアドレスmail_email
件名mail_subject
本文mail_body
送信ボタンmail_post
確認ボタンmail_preview

送信者名/メールアドレス/件名の各フィールドでは、value属性を以下のように指定します。

項目name属性
送信者名<$MTMailPreviewAuthor$>
メールアドレス<$MTMailPreviewEMail$>
件名<$MTMailPreviewSubject$>

また、本文のtextareaタグでは、以下のように、開始タグと終了タグの間に「<$MTMailPreviewBody$>」のタグを入れます。

<textarea id="mail_text" name="mail_text"><$MTMailPreviewBody$></textarea>

さらに、メールフォームの部分には、以下のタグも入れます。

<input type="hidden" name="mail_blog_id" id="mail_blog_id" value="<$MTBlogID$>" />

3.「メールフォーム共通部分」テンプレートのサンプルファイル

MTのディレクトリ→「plugins」ディレクトリ→「MailForm」ディレクトリ→「template_sets」ディレクトリの中に、サンプルのテンプレートセット(5種類)のディレクトリがあります。
「mt_standard」ディレクトリには、Movable Type標準テンプレートセット用のサンプルファイルがあります。
また、「koiki」ディレクトリには、小粋空間テンプレートセット用のサンプルファイルがあります。
それらのディレクトリの中の「mail_common.mtml」ファイルが、「メールフォーム共通部分」テンプレートの基本的なサンプルです。