EC-CUBEの話(2) マスターデータを利用したお問い合わせフォーム

こんな使い方!

お問い合わせフォームの項目で、項目内容の変更が頻繁にある場合など、いちいちソースを書き換えるのは面倒くさいです。
そんなときは、マスターデータに登録してしまいしょう。

例)セミナーの申し込みなどは、申し込み日が過ぎると次回の申し込みフォームに流用するこもあり、日程などの書き換えはマスターデータでできるようにしちゃう。


改修するファイル

1. マスターデータのテーブルにデータの追加
2. phpファイルの改修
3. テンプレートファイルの改修 PC版の入力ページ/確認ページ SMP版の入力ページ/確認ページ
4. メールテンプレートの改修
5. テストをして動作の確認をする


マスターデータにテーブルの新規追加

簡単なやり方な場合は、mtb_jobs の定義だけを拝借して、コピー。
今回は、contact_day というテーブル名で追加します。

この時点で、管理画面の
システム設定>マスターデータ管理 のプルダウン項目に contact_day というのが表示されます。
中をみても、データ自体は、まだ入力してないので、空です。
IDと値を入れていきましょう。

完成の図!
マスターデータ追加


phpファイルの改修

/data/class/pages/contact_entry/LC_Page_Contact.php
まずは、マスターデータの読みこみを

$objFormParam->addParamに
入力フォームのチェックを追加

ひとまずPHPはこれでOK


テンプレートファイルの改修

入力画面

基本的に今回はPC版だけです。
/Smarty/defult/contact/index.tpl
に追加します。

今回は、セレクトボックスでもなく、ラジオボタンでもなく、一番苦手な、チェックボックスで表示します。
※カスタマイズするときによく使う技!デバックを出す方法

これをテンプレートの一番上に記述しておきます。
そうすると、Debug文が表示されて現在のmtb_contact_day の値が表示されます。

マスターデータの項目を表示されるソース

表示の図
マスターデータ追加時のフロント側入力ページ

確認画面

/Smarty/defult/contact/confirm.tpl

入力画面で入力した項目を今度は表示させます。


メールのTPLに表示

お問い合わせフォームのメールテンプレートに新しく追加した項目を表示

これで、メールテンプレートにも表示がされます。


まとめ

これで無事に設定は完了です。
更新頻度が高い場合は、ぜひマスターデータに情報を登録して、管理画面上から簡単に更新できるようにすることができるのもEC-CUBEの魅力です。
みなさんもぜひやってみてください。