月別アーカイブ: 2011年9月

EC-CUBE:2.11 カスタマー情報の追加メモ

1:データベース:dtb_customerに必要な項目を追加

2:それらの項目にセレクトボックスなどの配列情報があればマスターデータも用意する。マスターデータのテーブルは[mtb_]で始まるテーブルとして設置。

3:下記、拡張クラスのfunction init()の中で新しい変数を設定し追加したマスターデータを代入しておく。

  • data/class_extends/page_extends/admin/customer/LC_Page_Admin_Customer_Edit_Ex.php
  • data/class_extends/page_extends/admin/customer/LC_Page_Admin_Customer_Ex.php
  • data/class_extends/page_extends/admin/mail/LC_Page_Admin_Mail_Ex.php
  • data/class_extends/page_extends/admin/total/LC_Page_Admin_Total_Ex.php
  • data/class_extends/page_extends/entry/LC_Page_Entry_Ex.php
  • data/class_extends/page_extends/mypage/LC_Page_Mypage_Change_Ex.php
  • data/class_extends/page_extends/shopping/LC_Page_Shopping_Ex.php

[php]
function init() {
parent::init();
$masterData = new SC_DB_MasterData_Ex();
$this->[任意の編集名:例:arrHeight] = $masterData->getMasterData(“[追加したマスタデータテーブル名:例:mtb_height]”);
}
[/php]

4:テンプレートを修正する

  • /data/Smarty/templates/default/frontparts/form_personal_input.tpl
  • /data/Smarty/templates/admin/customer/edit.tpl

[php]
<!–{if $flgFields > 1}–>
<tr>
<th>[タイトル:例:身長]<span>※</span></th>
<td>
<!–{assign var=key1 value=”`$prefix`[キーとなる変数:例:height]”}–>
<!–{if $arrErr[$key1]}–>
<div><!–{$arrErr[$key1]}–></div>
<!–{/if}–>
<select name=”<!–{$key1}–>”>
<option value=”” selected=”selected”>身長を選択</option>
<!–{html_options options=[マスターテーブルの変数名:例:$arrHeight] selected=$arrForm[$key1]}–>
</select>
</td>
</tr>
<!–{/if}–>
[/php]

  • /data/Smarty/templates/default/entry/confirm.tpl
  • /data/Smarty/templates/admin/customer/edit_confirm.tpl
  • /data/Smarty/templates/default/mypage/change_confirm.tpl
  • /data/Smarty/templates/default/shopping/confirm.tpl
  • /data/Smarty/templates/default/mail_templates/order_mail.tpl

[php]
<tr>
<th>[タイトル:例:身長]<span>※</span></th>
<td>
<!–{$arrForm.[変数名:例:height]|h}–>
</td>
</tr>
[/php]

5:データチェックを追加する。データチェックのヘルパークラスの拡張クラスにファンクションを追加する。
/data/class_extends/helper_extends/SC_Helper_Customer_Ex.php
sfCustomerCommonParam()をオーバーライドし、ファンクションsfCustomerCommonParamEx()を追加で呼ぶようにする。
[php]
function sfCustomerCommonParam (&$objFormParam) {
parent::sfCustomerCommonParam($objFormParam);
SC_Helper_Customer_Ex::sfCustomerCommonParamEx($objFormParam);
}

function sfCustomerCommonParamEx (&$objFormParam) {
//カスタマイズここから
$objFormParam->addParam(“身長”, ‘height’, STEXT_LEN, ‘n’, array(“EXIST_CHECK”, “SPTAB_CHECK”, “MAX_LENGTH_CHECK”));
//カスタマイズココまで
}
[/php]