Labo

[EC-CUBE 2.11.2] お問い合わせフォームに会社名を追加したい

2011年09月25日 / 投稿者名:fukap


これも個人的によく行うカスタマイズです。
前回の「お問い合わせフォームを追加したい」の続きとして、今回は会社名を追加してみます。
会社名は任意項目で、お名前の上に配置しました。

 

 

1.data/Smarty/templates/default/contact/repair.tpl に会社名欄を追加

        <table summary="お問い合わせ">
            <tr>
                <th>会社名</th>
                <td>
                    <span class="attention"><!--{$arrErr.corporate_name}--></span>
                    &nbsp;<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}-->

[EC-CUBE 2.11.2] お問い合わせフォームに会社名を追加したい への3件のコメント

  1. とまと より:

    素晴らしいサイトをありがとうございます。
    一つ質問させて頂いてもよろしいでしょうか。
    現在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がどこにも登録されていないせいかなと思うのですが・・・これはどこで登録したら良いのでしょうか。

    お忙しい所誠に恐縮ですがご教授頂ければありがたいです。

    なお、本来はこの追加した物を「カテゴリー」にしてそれをそのままメールのタイトルにしたいと思っています。ゆくゆくこちらで取り上げて頂けるようでしたらよろしくお願いします。

  2. fukap より:

    こんにちは。
    バージョンが違うのと、状況も少し違うようなので、
    コードの読み替えが必要になるかもしれませんね。

    data/class/pages/contact/LC_Page_Contact.php を見てみると、
    POSTされたmodeの値によって条件分岐を行っており、
    値が’complete’の場合は、POSTされた値をセットし、
    エラーチェックを行った上で、完了ページへ移動しているのがわかると思います。

    case ‘complete’: の下に、var_dump($_POST); などを挿入して、
    必要な値がPOSTされているかなどを、まず確認されると良いと思います。

  3. refluks より:

    Everything is very open with a precise description of the challenges.
    It was definitely informative. Your website is very helpful.
    Thank you for sharing!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

* Copy This Password *

* Type Or Paste Password Here *

*

コメント欄にコードを挿入したい場合は、[php][/php] を使ってください。