「メールフォーム共通部分」テンプレートの作成
メールフォームプラグインでは、メールフォームのテンプレートをカスタマイズすることで、さまざまなメールフォームを作ることができます。
「メールフォーム共通部分」のテンプレートを作る方法を解説します。
種類のテンプレートを組み合わせる
メールフォームプラグインでは、以下の表のように、7種類のテンプレートを組み合わせて動作するようになっています。
テンプレート | 内容 |
メールフォーム | ユーザーが最初にアクセスするメールフォームのページのテンプレートです。 |
送信確認 | メールフォームで「確認」ボタンがクリックされたときに表示するページのテンプレートです。 |
送信エラー | メール送信の際にエラーがあったときに表示するページのテンプレートです。 |
送信完了 | メールの送信が完了したときに表示するページのテンプレートです。 |
メールフォーム共通部分 | メールフォーム/送信確認/送信エラーのテンプレートで共通な、メールフォームの本体部分(form要素の部分)のテンプレートです。 |
メール本文 | 自分宛に送信されるメールの本文のテンプレートです。 |
返信メール | メールを送信してきた人に自動返信する際のメールの文章のテンプレートです。 |
上記のうち、メールフォームテンプレートは、インデックステンプレートとして作成し、再構築してファイルに出力するようにします。
残りの6つのテンプレートは、テンプレートモジュールとして作成します。また、CGIによって動的に処理され、ファイルには出力されません。
「メールフォーム共通部分」テンプレートの作成
「メールフォーム共通部分」テンプレートは、メールフォームの中心である、form要素の部分を入れるモジュールです。
このモジュールを、メールフォーム/送信確認/送信エラーの各テンプレートに組み込んで、メールフォームのページを表示するという仕組みを取っています。
1.テンプレートの名前の付け方
「メールフォーム共通部分」のテンプレートは、テンプレートモジュールとして作ります。
モジュール名をつける際には、その先頭に「mail_common:」という接頭語をつける必要があります。
例えば、「mail_common:共通部分」のような名前をつけます。
2.formタグの書き方
formタグの書き方は以下のようになります。
<form method="post" action="<$MTCGIPath$>plugins/MailForm/mt-mail-form.cgi">
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$>" />
「メールフォーム共通部分」テンプレートのサンプルファイル
MTのディレクトリ→「plugins」ディレクトリ→「MailForm」ディレクトリ→「template_sets」ディレクトリの中に、サンプルのテンプレートセット(3種類)のディレクトリがあります。
MT7/8用に最低限の要素を実装したテンプレートセット(Mont-blanc)です。
ディレクトリは下記3つになります。
・「mont-blanc」
・「mont-blanc_ajax」
・「mont-blanc_full」
それらのディレクトリの中の「mail_common.mtml」ファイルが、「メールフォーム共通部分」テンプレートの基本的なサンプルです。