cfFormMailer(SNIPPETS)

いわく、日本語の日本語による日本語のためのメールフォームスニペット
eFormが、確認画面の表示ができないので、確認画面を表示するにはこちらが便利。あと、eFormは標準では日本語送付ができないので、ISO版を入れないといけないが、これは最初から日本のサーバで日本語メールを送信するのが目的なので、そのあたりも便利か。
 
まず、こちらのサイト(網的脚本実験室)からダウンロード。
解凍してできたファイルのうちassets/snippets/cfFormMailerのフォルダを/assets/snippets/にアップロードする。
次に管理画面のリソース管理からスニペットスニペットの作成を選び、cfFormMailerというスニペットを作成する。中身はsnippet.cfFormMailer.phpの中身。
テンプレートとして、入力画面(サンプルではtmpl.input.html)、確認画面(サンプルではtmpl.conf.html)、完了画面(サンプルではtmpl.comp.html)、管理者宛メール(サンプルではtmpl.mail.admin.txt)、自動返信メール(サンプルではtmpl.mail.reply.txt)用のチャンクと、コンフィグ用のチャンク(サンプルではtmpl.chunk.config.txt)を作成する。
 
スニペットコールは

[!cfFormMailer?config=`コンフィグ用チャンク名`!]

 
入力値のチェックは、インプットタグに規定のオプションをつけることでできる。

<input type="text" name="field_name" value="" valid="need:method:other_param" />

need..入力必須項目。1=必須。null=未入力も可。
method..検証項目。カンマ区切りで複数指定も可。
 email メールアドレスチェック(半角に自動変換)
 num 数値チェック(半角に自動変換)
 len(n-m) 文字数チェック(m文字以下 | n〜m文字 | n文字以上)
 semas(フィールドネーム) 指定したフィールドネームと中身が一致するかチェックする。
   ver.0.0.6から実装。
other_param..未実装。
利用しない項目がある場合は

<input type="text" name="field_name" id="field_name" valid="1" />
<input type="text" name="field_name" id="field_name" valid=":email" />

のように記述する。
 
追加HTMLタグ:

<iferror></iferror>

エラーが存在する場合にタグ内を表示

<iferror.field_name></iferror>

field_name 項目にエラーが存在する場合にタグ内を表示

<iferror.(f1,f2[,f3...])></iferror>

f1またはf2(またはf3...)項目にエラーが存在する場合にタグ内を表示
 
プレイスホルダ:
[+field_name+]..field_name 項目に対応する値
[+error.field_name+]..field_name に対するエラーメッセージ
[+errors+]..全てのエラーを表示(
区切り)
[+senddate+]..送信日時(デフォルト書式: Y-m-d H:i:s)
 
eFormもそうだが、ファイル添付ができるのかどうかが不明。

チェックボックスを使うとき、tmp_inputにおける記述は

<input type="checkbox" name="impression[]" id="f_impression" value="なし" />

こんな感じ。
そのとき、tmp_confでのプレイスホルダの記述は

[+imporession|implode(<br />)+]

となる。
implode(記号)と記述すると、値の後ろに記号が表示される。
implodetag(タグ)と記述すると、値の前後をタグで挟む形で表示される。