バグフィックスと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を入力することで管理するフォームを切り替えることが出来ます。
IDを入力しなかった場合はinit.phpが読み込まれます。
init_admin.phpに新しく追加された$zadmuse_fidにIDとタイトルを設定すると
ログイン後のサイドバーにメニューが表示されます。
init.phpのIDは0です。
$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にせなあかんねん - ファイル添付エラーメッセージエンコード変換抜け
→ うっかり忘れてた