TransmitMailをPHPのテンプレートで使う場合
静的サイトのメールフォームにはTransmitMailをよく使わせてもらっています。 TransmitMailはPHP製汎用メールフォームで様々な項目が柔軟に設定できるのですごく重宝しています。ちなみにMITライセンスで改変、再配布も自由です。
TransmitMailの特徴
- HTML部分はテンプレートとして読み込むので自由にデザインができる
- 豊富なバリデーション
- ブラウザリロードの2重送信を防止
- ファイルが添付できる
自由にデザインができる
自由にデザインができるPHP製フォームは結構みかけますが、TransmitMailはtinyTemplateというテンプレートエンジンを使っていて見た目とロジック部分が別れていますので、素直にコーディングができます。マークアップエンジニアにやさしいメールフォームは伊達じゃなかった!
豊富なバリデーション
記述方法を覚える必要がありますが、設置マニュアルが公開されていますので、一読するとなんとなく理解できるかと思います。if文がつかえますので、未入力の項目だけクラスを振って色をつけるなんてこともできます。 jQueryを使った方が楽なのかもしれませんがアイデア次第で色々なことができるのはいい事です!
通常の記述方法
1 2 3 4 5 |
<input type="text" name="入力必須" value="{$入力必須}" /> <input type="hidden" name="required[]" value="入力必須 "/> {if:$required.入力必須} {$required.入力必須} {/if:$required.入力必須} |
未入力時にクラスを振る記述方法
1 2 3 4 5 6 7 8 9 10 |
<input type="text" name="入力必須" value="{$入力必須}{if:$required.入力必須}" class="hissu{/if:$required.入力必須" /> <input type="hidden" name="required[]" value="入力必須" /> 〜 <style type="text/css"> .hissu{ background:#FFF6F9; } </style> |
ブラウザリロードの2重送信を防止
フリーで公開されているメールフォームで多重送信防止しているフォームは稀少です!僕も自前のフォームでトランザクショントークンをつかって実装したことがありますが、汎用性を待たせるカスタマイズには至りませんでした。とにかく嬉しい機能です!
ファイルが添付できる
僕はEFO推進しています。メールフォームを複雑化しない方向で制作いたしますのであまり使わない機能なのですが同僚がこの機能のおかげで助かった!と絶賛していました。
TransmitMailをPHPのテンプレートで使う場合
作者さんのおっしゃる通り静的サイトの導入にはうってつけのTransmitMailなのですが、静的サイトでもテンプレート管理をPHPで行っているサイトではマニュアル通りに設置してもうまく動作しません。PHPファイルを読み込む事はできるのですが文字列として読み込むためか、include等のPHPタグが動きません。
力技なのですが、transmit mailのindex.phpに直接テンプレート箇所をincludeすれば僕の環境ではうまく動作いたしました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php include "../tmp/header.php" ?>//ヘッダーの読み込みを追加 <?php /* * System name : TransmitMail * Description : メール送信システム本体 〜 // HTML書き出し echo $tmpl->fetch(TMPL_INPUT); } include "../tmp/lnav.php";//ローカルナビの読み込みを追加 include "../tmp/footer.php";//フッターの読み込みを追加 |
その他のテンプレートもコンテンツ箇所だけの記述ですみますので、これはこれでいいのかもしれません。
- 2013年12月09日月曜日
- :Naruhiko Wakai
comments