EC-CUBEの小技:会員登録に会社名の項目を追加

ある項目を使って会社名項目に
この登録項目ですが、追加する事も可能ですが、データベースの面倒があるわけで、いざという時に怖いものがあります。
簡素化してできるものなら、そちらの方が絶対的に安全なので、今回はあるものを作りかえるやり方でいきます。
必須項目の解除
一応、個人の間口も欲しいでしょうので、必須を解除しましょう。
/data/class/helperのSC_Helper_Customer.php
1 2 3 4 5 | 370行目付近を以下のように変更 $objFormParam ->addParam( '会社名' , 'name01' , STEXT_LEN, 'aKV' , array ( 'NO_SPTAB' , 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK' )); $objFormParam ->addParam( '氏名' , 'name02' , STEXT_LEN, 'aKV' , array ( 'EXIST_CHECK' , 'NO_SPTAB' , 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK' )); $objFormParam ->addParam( '会社名(フリガナ)' , 'kana01' , STEXT_LEN, 'CKV' , array ( 'NO_SPTAB' , 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK' , 'KANA_CHECK' )); $objFormParam ->addParam( '氏名(フリガナ)' , 'kana02' , STEXT_LEN, 'CKV' , array ( 'EXIST_CHECK' , 'NO_SPTAB' , 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK' , 'KANA_CHECK' )); |
単純に、EXIST_CHECKを外せばいいという事ですね。
会員登録画面の修正
/data/Smarty/templates/default/frontparts/form_personal_input.tpl
入力ページ:27行目付近を以下のように変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <tr> <th>会社名</th> <td> <!--{assign var =key1 value= "`$prefix`name01" }--> <!--{ if $arrErr [ $key1 ]}--> <div class = "attention" ><!--{ $arrErr [ $key1 ]}--></div> <!--{/ if }--> <input type= "text" name= "<!--{$key1}-->" value= "<!--{$arrForm[$key1]|h}-->" maxlength= "<!--{$smarty.const.STEXT_LEN}-->" style= "<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: active;" class = "box120" /> </td> </tr> <tr> <th>氏名<span class = "attention" >※</span></th> <td> <!--{assign var =key2 value= "`$prefix`name02" }--> <!--{ if $arrErr [ $key2 ]}--> <div class = "attention" ><!--{ $arrErr [ $key2 ]}--></div> <!--{/ if }--> <input type= "text" name= "<!--{$key2}-->" value= "<!--{$arrForm[$key2]|h}-->" maxlength= "<!--{$smarty.const.STEXT_LEN}-->" style= "<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: active;" class = "box120" /> </td> </tr> <tr> <th>会社名(フリガナ)</th> <td> <!--{assign var =key1 value= "`$prefix`kana01" }--> <!--{ if $arrErr [ $key1 ] }--> <div class = "attention" ><!--{ $arrErr [ $key1 ]}--></div> <!--{/ if }--> <input type= "text" name= "<!--{$key1}-->" value= "<!--{$arrForm[$key1]|h}-->" maxlength= "<!--{$smarty.const.STEXT_LEN}-->" style= "<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: active;" class = "box120" /> </td> </tr> <tr> <th>氏名(フリガナ)<span class = "attention" >※</span></th> <td> <!--{assign var =key2 value= "`$prefix`kana02" }--> <!--{ if $arrErr [ $key2 ]}--> <div class = "attention" ><!--{ $arrErr [ $key2 ]}--></div> <!--{/ if }--> <input type= "text" name= "<!--{$key2}-->" value= "<!--{$arrForm[$key2]|h}-->" maxlength= "<!--{$smarty.const.STEXT_LEN}-->" style= "<!--{$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: active;" class = "box120" /> </td> </tr> |
/data/Smarty/templates/default/entry/confirm.tpl
確認ページ:38行目付近を以下に変更
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <tr> <th>会社名</th> <td> <!--{ $arrForm .name01|h}--> </td> </tr> <tr> <th>会社名(フリガナ)</th> <td> <!--{ $arrForm .kana01|h}--> </td> </tr> <tr> <th>氏名<span class = "attention" >※</span></th> <td> <!--{ $arrForm .name02|h}--> </td> </tr> <tr> <th>氏名(フリガナ)<span class = "attention" >※</span></th> <td> <!--{ $arrForm .kana02|h}--> </td> </tr> |
非会員(ゲスト購入)の修正
やる必要はないですね。
会員にしといたほうが良いですよ、購入者というのは。
メールテンプレートの修正
/data/Smarty/templates/default/mail_tamplates/contact_mail.tpl
/data/Smarty/templates/default/mail_tamplates/order_mail.tpl
の2ファイルの【お名前】部分を【会社名と氏名】に書き換え。
パスワード再発行ページの修正
/data/class/pages/forgot/LC_Page_Forgot.php
必須の解除:178行目付近を以下のように変更
1 2 | $objFormParam ->addParam( '会社名' , 'name01' , STEXT_LEN, 'aKV' , array ( 'NO_SPTAB' , 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK' )); $objFormParam ->addParam( '氏名' , 'name02' , STEXT_LEN, 'aKV' , array ( 'EXIST_CHECK' , 'NO_SPTAB' , 'SPTAB_CHECK' , 'MAX_LENGTH_CHECK' )); |
/data/Smarty/templates/default/forgot/index.tpl
フォームを編集:48行目付近を以下のように変更
1 2 3 | 会社名と氏名: 会社名 <input type= "text" class = "box120" name= "name01" value= "<!--{$arrForm.name01|default:''|h}-->" maxlength= "<!--{$smarty.const.STEXT_LEN}-->" style= "<!--{$arrErr.name01|sfGetErrorColor}-->; ime-mode: active;" /> 氏名 <input type= "text" class = "box120" name= "name02" value= "<!--{$arrForm.name02|default:''|h}-->" maxlength= "<!--{$smarty.const.STEXT_LEN}-->" style= "<!--{$arrErr.name02|sfGetErrorColor}-->; ime-mode: active;" /> |
データベースを修正
データベース操作は、phpMyAdminの場合で説明します。
アカウントにログイン>EC-CUBEのデータベース>dtb_customer
そこにある「name01」「kana01」のヌル(NULL)項目をnullへ
以上ですね。
他にも修正部分が探せばありますが、なんとなく気付いた時にやっていって下さい。