これも個人的によく行うカスタマイズです。
前回の「お問い合わせフォームを追加したい」の続きとして、今回は会社名を追加してみます。
会社名は任意項目で、お名前の上に配置しました。
1.data/Smarty/templates/default/contact/repair.tpl に会社名欄を追加
<table summary="お問い合わせ"> <tr> <th>会社名</th> <td> <span class="attention"><!--{$arrErr.corporate_name}--></span> <input type="text" class="box380" name="corporate_name" value="<!--{$arrForm.corporate_name.value|h|default:$arrData.corporate_name|h}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" style="<!--{$arrErr.corporate_name|sfGetErrorColor}-->; ime-mode: active;" /> </td> </tr> <tr> <th>お名前<span class="attention">※</span></th>
2.data/Smarty/templates/default/contact/confirm.tpl をコピーして、data/Smarty/templates/default/contact/repair_confirm.tpl を作成。
3.data/Smarty/templates/default/contact/repair_confirm.tpl に会社名欄を追加
<table summary="お問い合わせ内容確認"> <colgroup width="30%"></colgroup> <colgroup width="70%"></colgroup> <tr> <th>会社名</th> <td><!--{$arrForm.corporate_name.value|h}--></td> </tr> <tr> <th>お名前<span class="attention">※</span></th>
4.data/class/pages/contact/LC_Page_Contact_Repair.php を修正
93行目付近の $this->tpl_mainpage を以下のように修正
if (SC_Utils_Ex::isBlank($this->arrErr)) { // エラー無しで完了画面 $this->tpl_mainpage = 'contact/repair_confirm.tpl'; $this->tpl_title = 'お問い合わせ(確認ページ)'; }
145行目付近から開始する、lfInitParam() に以下を記述
$objFormParam->addParam("会社名", 'corporate_name', STEXT_LEN, 'KVa', array("SPTAB_CHECK","MAX_LENGTH_CHECK"));
5.「お問い合わせフォームを追加したい」に従って、
data/class/pages/contact/LC_Page_Contact_Repair.phpを作成されたのであれば、
data/Smarty/templates/default/mail_templates/repair_mail.tpl の適当な箇所に以下のコードを追加すれば、会社名が取得できると思います。
会社名:<!--{$arrForm.corporate_name.value}-->
素晴らしいサイトをありがとうございます。
一つ質問させて頂いてもよろしいでしょうか。
現在2.11.4を使用しており、別の問い合わせページを作ったのではなく、デフォルトの物を修正しているので
data/Smarty/templates/default/contact/index.tpl に会社名欄を追加
data/Smarty/templates/default/contact/confirm.tpl に会社名欄を追加
data/class/pages/contact/LC_Page_Contact.php を修正(145行目の追加のみ)
data/Smarty/templates/default/mail_templates/contact_mail.tplにコードを追加
・・としてみた所、入力出来、それをconfirmで確認するところまではいけるのですが、完了をクリックするとcompleteが出ずトップに戻ってしまい、更にメールも送信されません。
今のままだとcorporate_nameがどこにも登録されていないせいかなと思うのですが・・・これはどこで登録したら良いのでしょうか。
お忙しい所誠に恐縮ですがご教授頂ければありがたいです。
なお、本来はこの追加した物を「カテゴリー」にしてそれをそのままメールのタイトルにしたいと思っています。ゆくゆくこちらで取り上げて頂けるようでしたらよろしくお願いします。
こんにちは。
バージョンが違うのと、状況も少し違うようなので、
コードの読み替えが必要になるかもしれませんね。
data/class/pages/contact/LC_Page_Contact.php を見てみると、
POSTされたmodeの値によって条件分岐を行っており、
値が’complete’の場合は、POSTされた値をセットし、
エラーチェックを行った上で、完了ページへ移動しているのがわかると思います。
case ‘complete’: の下に、var_dump($_POST); などを挿入して、
必要な値がPOSTされているかなどを、まず確認されると良いと思います。
Everything is very open with a precise description of the challenges.
It was definitely informative. Your website is very helpful.
Thank you for sharing!