フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

[ec-cube] PCからの会員登録フォームに携帯メアドを追加する

without comments

EC-CUBEのバージョンは2.11.4です。

Classに追加

/data/class/helper/SC_Helper_Customer.php

400行目付近、黄色背景の2行を追加する

        if (SC_Display_Ex::detectDevice() !== DEVICE_TYPE_MOBILE){
            $objFormParam->addParam("FAX番号1", 'fax01', TEL_ITEM_LEN, 'n', array("SPTAB_CHECK"));
            $objFormParam->addParam("FAX番号2", 'fax02', TEL_ITEM_LEN, 'n', array("SPTAB_CHECK"));
            $objFormParam->addParam("FAX番号3", 'fax03', TEL_ITEM_LEN, 'n', array("SPTAB_CHECK"));
            $objFormParam->addParam('メールアドレス', 'email', null, 'a', array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK"));
            $objFormParam->addParam('携帯メールアドレス', 'email_mobile', null, 'a', array("NO_SPTAB", "MOBILE_EMAIL_CHECK", "SPTAB_CHECK" ,"MOBILE_EMAIL_CHECK"));// ←これを追加

            if(!$isAdmin) {
                $objFormParam->addParam("パスワード(確認)", 'password02', STEXT_LEN, 'a', array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK"), "", false);
                $objFormParam->addParam('メールアドレス(確認)', "email02", null, 'a', array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK","SPTAB_CHECK" , "EMAIL_CHAR_CHECK"), "", false);
            }
        } else {
                $objFormParam->addParam('携帯メールアドレス', 'email_mobile', null, 'a', array("NO_SPTAB", "MOBILE_EMAIL_CHECK", "SPTAB_CHECK" ,"MOBILE_EMAIL_CHECK"));// ←これを追加
            if (!$is_mypage) {
                $objFormParam->addParam('メールアドレス', 'email', null, 'a', array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MOBILE_EMAIL_CHECK"));
            }
        }

テンプレートも少し手を加える

入力画面:/data/Smarty/templates/default/frontparts/form_personal_input.tpl

黄色背景の行を追加、または削除する

<!–{if $emailMobile}–>の括りを削除して「携帯メールアドレス」の箇所が表示出来る様にする

    <!--{if $emailMobile}-->
        <tr>
            <th>携帯メールアドレス</th>
            <td>
                <!--{assign var=key1 value="`$prefix`email_mobile"}-->
                <!--{assign var=key2 value="`$prefix`email_mobile02"}-->
                <!--{if $arrErr[$key1] || $arrErr[$key2]}-->
                <div class="attention"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></div>
                <!--{/if}-->
                <input type="text" name="<!--{$key1}-->" value="<!--{$arrForm[$key1]|h}-->" style="<!--{$arrErr[$key1]|sfGetErrorColor}-->; ime-mode: disabled;" maxlength="<!--{$smarty.const.MTEXT_LEN}-->" class="box300 top" /><br />
                <input type="text" name="<!--{$key2}-->" value="<!--{$arrForm[$key2]|h}-->" style="<!--{$arrErr[$key1]|cat:$arrErr[$key2]|sfGetErrorColor}-->; ime-mode: disabled;" maxlength="<!--{$smarty.const.MTEXT_LEN}-->" class="box300" /><br />
                <span class="attention mini">確認のため2度入力してください。</span>
            </td>
        </tr>
    <!--{/if}-->

確認画面:/data/Smarty/templates/default/entry/confirm.tpl

以下を適当な箇所に追加する

<tr>
	<th>携帯メールアドレス</th>
	<td>
		<!--{if strlen($arrForm.email_mobile) > 0}-->
		<a href="<!--{$arrForm.email_mobile|escape:'hex'}-->"><!--{$arrForm.email_mobile|escape:'hexentity'}--></a>
		<!--{else}-->
		(未登録)
		<!--{/if}-->
	</td>
</tr> 

出来たかどうか確認

会員登録フォームに出て来たら実際に登録してみて、DBを直接の覗くか、MYページの情報変更画面からも確認できる。