ZeroMail ver1.4.5

バグフィックスとver1.4で入れた機能に関する修正、あとコメントとかで頂いたリクエストの実装を行いました。
リポジトリで晒していたソースは1.4から段階的にバージョンアップしてたんですが、
ZIPで配布するのはこれが始めてになるので結構変更点があります。

なお、このバージョンから設置解説とバージョンヒストリーがCHANGELOG.txtというファイルに移ります。
init.phpがより修正しやすくなったと思います 😀

新機能

管理者宛メール件名と自動返信用ヘッダー・フッターのタグ置換

init.phpの「inputのnameとその名称設定」で設定してあるnameキーを中括弧で括って埋め込むと、
その部分をユーザーが入力した値に置換してメールを送信します。

例1(管理者宛件名):
{name}さんから問い合わせがありました。 → ああああさんから問い合わせがありました。

例2(自動返信ヘッダ):
{name}様、お問い合わせありがとうございます → ああああ様、お問い合わせありがとうございます

入力内容のマッチング

非表示フィールドでmatchを利用すると、フォームに入力された内容が他のフィールドの内容と一致するか確認します。

<input type="hidden" name="match" value="email+email2,hoge1+hoge2" />

確認したい入力フォームのnameを+で繋ぐと、後ろに記入されたものが前のものと一致するか調べます。
複数項目がある場合はカンマで分けてください。
確認する項目(後ろ)のnameをinit.phpの「inputのnameとその名称設定」に追加する必要はありません。

(Admin)複数のフォームを管理する

ログイン時にフォームのIDを入力することで管理するフォームを切り替えることが出来ます。

zeromail-admin

IDを入力しなかった場合はinit.phpが読み込まれます。

init_admin.phpに新しく追加された$zadmuse_fidにIDとタイトルを設定すると
ログイン後のサイドバーにメニューが表示されます。
init.phpのIDは0です。

zeromail-admin2

$zadmuse_fid = array('0'=>'お問い合わせ','2'=>'求人応募');

郵便番号住所検索について

バリデーションと分離してMooToolsのプラグイン化しました。
mootools-formpack.jsを読み込むと使用できます。

郵便番号の入力フィールドにクラスで validate-zipcode-btn または validate-zipcode-autocomp を付与してから、
郵便番号の入力フィールドが持つIDと同じクラス名を住所の入力フィールドに付与します。

<tr>
	<th scope="row"><label for="zipcode">郵便番号</label></th>
	<td><input name="zipcode" type="text" id="zipcode" size="8" class="validate-zipcode-btn" /></td>
</tr>
<tr>
	<th scope="row"><label for="address">住所</label></th>
	<td><input name="address" type="text" id="address" size="50" class="zipcode" /></td>
</tr>

検索で得られた住所は郵便番号フィールドのIDと同じクラスを持つ住所フィールドに表示されます。

validate-zipcode-btn → 有効な郵便番号が入力された後に住所検索ボタンを表示

validate-zipcode-autocomp → 有効な郵便番号が入力されると自動で住所検索

その他の変更点

  • アンダーバーの入力条件設定にスペースを許可
    → ふりがなをスペースで区切るから
  • 日本語ファイル名チェックの正規表現変更
    → 正しく判別されない場合があった為
  • init.phpの解説をCHANGELOG.txtに移す
    → init.phpとzeromail.phpの冒頭が長くなりすぎた
  • Ajaxにもrep
    → 入れ忘れてた
  • initのロードをrequireに
    → onceを消した
  • Ajax zipcode-btnと-autoを分離
    → addEventに変更
  • id使用可能な文字列追加+チェック厳密化
    → POSTそのままくっつけてたよアッー!
  • log.php 300kb超過警告
    → ダウンロードを催促します
  • Downloadロジック変更
    → 重くても安心
  • initファイルがない場合の例外処理
    → エラー出す
  • SJIS,EUCの文字化け修正
    → @mypacecreatorさんに指摘されたバグ。どうしてこうなってた…。
  • SJIS,EUCの正規表現チェック修正
    → 前の文字化け関連で。u修飾子つけたらUTF-8にせなあかんねん
  • ファイル添付エラーメッセージエンコード変換抜け
    → うっかり忘れてた

Leave a Comment.