メールフォーム作成用プラグイン(その4)

2007年1月27日
メールフォームプラグインにクロスサイトスクリプティングの脆弱性等の不具合が見つかりました。申し訳ありません。
こちらのエントリーをご参照の上、最新版にアップデートしてください。

2007年1月23日
メールフォームプラグインのバージョン1.20を公開しました。
解説も更新しましたので、こちらのエントリーをご参照ください。

メールフォーム作成用プラグインの4回目として、送信前確認ページのテンプレートの作り方を解説します。

1.テンプレートモジュールの作成

送信前確認ページのテンプレートは、テンプレートモジュールとして作ります。
送信完了ページと同様の手順でテンプレートモジュールを新規作成、「mail_preview」という名前をつけます。

2.送信前確認ページに表示する内容

送信前確認ページは、コメントプレビューのページと同じように、メール送信フォームで入力された内容を再表示すると良いでしょう。
プラグインによって、MTMailPreviewAuthor等のタグが追加されています。
それらのタグを組み合わせて、送信前確認ページに表示する部分を作っていきます。

また、入力内容に誤りがあったときに、その内容をその場で修正できるように、メール送信フォームも再表示するようにすると良いと思います。
送信フォームの基本的な作り方は、メール送信フォームのテンプレートと同じです。
ただし、入力済みのお名前等を、フォームの各欄の初期値として指定するようにします。

なお、MTMailPreviewBodyタグでメールの本文を表示する場合、そのままでは改行がbrタグには変換されません。
改行をbrタグに変換するには、MTMailPreviewBodyタグに「convert_breaks="1"」のアトリビュートを付加します。
このようにした場合、エントリーの本文と同様に、メール本文の前後がpタグで囲まれます。

3.メール内容を再表示する例

メール内容を再表示するには、以下のようにタグを組み合わせると良いでしょう。

<p>以下の通りメールを送信します。</p>
<p>・お名前</p>
<p><$MTMailPreviewAuthor$></p>
<p>・メールアドレス</p>
<p><$MTMailPreviewEMail$></p>
<p>・件名</p>
<p><$MTMailPreviewSubject$></p>
<p>・本文</p>
<$MTMailPreviewBody convert_breaks="1"$>

4.メール送信フォームを再表示する例

メール送信フォームを再表示するには、以下のようにタグを組み合わせると良いでしょう。
MTMailPreviewAuthorなどのタグを使って、フォームの構成要素のvalue属性を指定するようにします。

<form action="<$MTCGIPath$>plugins/MailForm/mt-mail-form.cgi" method="post">
<p>お名前<br /><input type="text" size="30" name="mail_author" value="<$MTMailPreviewAuthor$>" /></p>
<p>メールアドレス<br /><input type="text" size="30" name="mail_email" value="<$MTMailPreviewEMail$>" /></p>
<p>タイトル<br /><input type="text" size="30" name="mail_subject" value="<$MTMailPreviewSubject$>" /></p>
<p>本文<br /><textarea rows="10" cols="50" name="mail_text"><$MTMailPreviewBody$></textarea></p>
<input type="submit" name="mail_preview" value="確認" />
<input type="submit" name="mail_post" value="送信" />
<input type="hidden" name="mail_blog_id" value="<$MTBlogID$>" />
</form>