メールフォームプラグインV1.20(その5・テキストの入力欄の追加)

メールフォームプラグインでは、任意のフィールドをフォームに入れることができます(ただしファイルのアップロードを除く)。
例えば、こちらのページのようなメールフォームを作ることができます。

今日は、テキストの入力欄(<input type="text"…>または<textarea…></textarea>)の追加方法を解説します。

1.メールフォームのテンプレートへのタグの追加

まず、メールフォームのテンプレート(インデックス・テンプレートとして作成したもの)に、テキスト用のフィールドを追加します。

これは通常のフォームの通りです。
1行のテキストを入力する欄は、以下のようなタグで追加することができます。

<input type="text" name="フィールド名" size="幅" />

また、複数行のテキストを入力する欄は、以下のようなタグで追加することができます。

<textarea name="フィールド名" rows="行数" cols="幅"></textarea>

なお、フィールド名のつけ方は任意です。
ただし、以下の名前はメールフォームプラグインの中で使用していますので、これらとは重複しないものにする必要があります。

  • ajax
  • mail_author
  • mail_email
  • mail_subject
  • mail_text
  • mail_post
  • mail_preview
  • mail_blog_id
  • mail_preview_template
  • mail_error_template
  • mail_post_template
  • mail_reply_from
  • mail_reply_subject
  • mail_reply_send
  • mail_reply_template
  • mail_body_template
  • mail_to_email

2.送信前確認等のテンプレートへのタグの追加

送信前確認/送信エラー等のテンプレートでは、メールフォームで入力された値を表示することが必要になります。

各フィールドに入力された値は、「MTMailPreviewExtParam」というタグで得ることができます。
書き方は以下の通りです。

<$MTMailPreviewExtParam name="フィールド名"$>

このタグと、inputタグやtextareaタグを以下のように組み合わせれば、メールフォームで入力された内容を、送信前確認等のテンプレートのフォーム部分に反映することができます。

・1行のテキストを入力する欄の場合

<input type="text" name="フィールド名" size="幅" value="<$MTMailPreviewExtParam name="フィールド名"$>" />

・複数行のテキストを入力する欄の場合は

<textarea name="フィールド名" rows="行数" cols="幅"><$MTMailPreviewExtParam name="フィールド名"$></textarea>

また、確認用として、フォームの入力欄に値を表示するのではなく、通常のHTMLの中に表示したい場合もあります。
その場合も、MTMailPreviewExtParamタグを利用することができます。

ただし、複数行のテキストの場合、改行を<br />タグに変換する必要があります。
「<$MTMailPreviewExtParam name="フィールド名" convert_breaks="1"$>」のようにすると、エントリーの本文と同様の改行変換処理が行われます(段落ごとにpタグで囲まれ、段落内の改行がbrタグに変換されます)。

3.例その1

メールフォームに、サイトのアドレスを入力する欄を追加したいとします。
この場合、メールフォームのテンプレートのフォーム部分には、以下のようなタグを入れます。

<p>
サイトのアドレス<br />
<input type="text" name="mail_url" size="30" />
</p>

また、送信前確認や送信エラーのテンプレートのフォーム部分には、以下のようなタグを入れます。

<p>
サイトのアドレス<br />
<input type="text" name="mail_url" size="30" value="<$MTMailPreviewExtParam name="mail_url"$>" />
</p>

4.例その2

メールフォームに、「追記」の欄(複数行入力可)を追加したいとします。

この場合、メールフォームのテンプレートのフォーム部分には、以下のようなタグを入れます。

<p>
追記<br />
<textarea name="mail_more" rows="10" cols="50" /></textarea>
</p>

送信前確認や送信エラーのテンプレートのフォーム部分には、以下のようなタグを入れます。

<p>
追記<br />
<textarea name="mail_more" rows="10" cols="50" /><$MTMailPreviewExtParam name="mail_more"$></textarea>
</p>

また、追記をフォームの中ではなく、通常のHTMLの一部として表示したい場合は、以下のようなタグを入れます。

<p>追記</p>
<$MTMailPreviewExtParam name="mail_more" convert_breaks="1"$>

5.前後のエントリー

メールフォームプラグインは解説が長いので、エントリーを複数に分けています。
前後のエントリーは以下のリンクで参照することができます。

前のエントリー(その4・送信前確認等のテンプレート)
次のエントリー(その6・チェックボックスの追加)

また、サイドバーの「関連するエントリー」の箇所に、メールフォーム関連のエントリーの一覧が表示されていますので、そちらもご利用ください。