EC-CUBEの小技:会員登録に会社名の項目を追加
ある項目を使って会社名項目に
この登録項目ですが、追加する事も可能ですが、データベースの面倒があるわけで、いざという時に怖いものがあります。
簡素化してできるものなら、そちらの方が絶対的に安全なので、今回はあるものを作りかえるやり方でいきます。
必須項目の解除
一応、個人の間口も欲しいでしょうので、必須を解除しましょう。
/data/class/helperのSC_Helper_Customer.php
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行目付近を以下のように変更
<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行目付近を以下に変更
<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行目付近を以下のように変更
$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行目付近を以下のように変更
会社名と氏名:
会社名 <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へ
以上ですね。
他にも修正部分が探せばありますが、なんとなく気付いた時にやっていって下さい。
