Blog

【ECCUBE】管理画面の商品検索項目にメーカーを追加

2014/09/26

ECCUBE2.11~

クライアントより、商品マスタの検索項目にメーカーを追加してほしいという要望があり、
下記サイトを参考にカスタムをしました。

参考サイト
http://ec-cube.nakweb.com/blog/2201.html

1.data/Smarty/templates/admin/products/index.tpl でメーカー欄を追加する。

<tr>
    <th>メーカー</th>
    <td colspan=”3″>
         <!–{assign var=key value=”search_maker_id”}–>
         <span class=”attention”><!–{$arrErr[$key]}–></span>
            <select name=”<!–{$key}–>” style=”<!–{$arrErr[$key]|sfGetErrorColor}–>”>
         <option value=””>選択してください</option>
         <!–{html_options options=$arrMaker selected=$arrForm[$key].value}–>
         </select>
    </td>
</tr>

2.data/class/pages/admin/products/LC_Page_Admin_Products.php の Init でコード追加。

$masterData = new SC_DB_MasterData_Ex();
$this->arrPageMax = $masterData->getMasterData(‘mtb_page_max’);
$this->arrDISP = $masterData->getMasterData(‘mtb_disp’);
$this->arrSTATUS = $masterData->getMasterData(‘mtb_status’);
$this->arrPRODUCTSTATUS_COLOR = $masterData->getMasterData(‘mtb_product_status_color’);
//以下の行を追加
$this->arrMaker = SC_Helper_DB_Ex::sfGetIDValueList(‘dtb_maker’, ‘maker_id’, ‘name’);

3.同じくdata/class/pages/admin/products/LC_Page_Admin_Products.php の lfInitParam でコード追加。

// 検索条件
$objFormParam->addParam(‘商品ID’, ‘search_product_id’, INT_LEN, ‘n’, array(‘NUM_CHECK’, ‘MAX_LENGTH_CHECK’));
$objFormParam->addParam(‘商品コード’, ‘search_product_code’, STEXT_LEN, ‘KVna’, array(‘SPTAB_CHECK’, ‘MAX_LENGTH_CHECK’));
$objFormParam->addParam(‘商品名’, ‘search_name’, STEXT_LEN, ‘KVa’, array(‘SPTAB_CHECK’, ‘MAX_LENGTH_CHECK’));
$objFormParam->addParam(‘カテゴリ’, ‘search_category_id’, STEXT_LEN, ‘n’, array(‘SPTAB_CHECK’, ‘MAX_LENGTH_CHECK’));
$objFormParam->addParam(‘種別’, ‘search_status’, INT_LEN, ‘n’, array(‘MAX_LENGTH_CHECK’));
// 以下の行を追加
$objFormParam->addParam(‘メーカー’, ‘search_maker_id’, STEXT_LEN, ‘n’, array(‘SPTAB_CHECK’, ‘MAX_LENGTH_CHECK’));

4.同じくdata/class/pages/admin/products/LC_Page_Admin_Products.php の buildQuery でコード追加。

// 商品ステータス
case ‘search_product_statuses':
       $arrPartVal = $objFormParam->getValue($key);
       $count = count($arrPartVal);
       if ($count >= 1) {
           $where .= ‘ ‘
               . ‘AND product_id IN (‘
               . ‘    SELECT product_id FROM dtb_product_status WHERE product_status_id IN (‘ . SC_Utils_Ex::repeatStrWithSeparator(‘?’, $count) . ‘)’
               . ‘)';
            $arrValues = array_merge($arrValues, $arrPartVal);
        }
        break;
    // メーカー(以下の行を追加)
    case ‘search_maker_id':
        $where.= ‘ AND maker_id = ?';
        $arrValues = $objFormParam->getValue($key);
break;

以上でカスタム完了です。

ゼヒトモ内でのプロフィール: ROCKSTREAMゼヒトモのホームページ作成・制作サービス仕事をお願いしたい依頼者と様々な「プロ」をつなぐサービス

カテゴリー

月間アーカイブ

MORE

ミュージシャンズ・プラザ

神社仏閣ホームーページ制作

ホームページ制作問合せ