これまでに2.4系での商品項目追加の方法について説明してきましたが、
2.11系では少し手順の変わってくる部分がありますので、簡単に説明させて頂きます。
基本的な流れは2.4系の時と同じです。
1.DBのdtb_productsテーブルにカラムを追加
2.管理画面での対応をする
-商品登録、編集画面のテンプレートに追加項目を追加
-商品登録のvalidation、および登録項目を追加
-確認画面への表示
-商品CSVダウンロード、アップロードに項目を追加
3.一覧画面や詳細画面等の必要な個所に追加項目を表示する
1の手順については全く同じですが、2,3のあたりで少し違う部分があります。
1については同じ手順になりますので、説明を省きます。(詳しくは過去記事をご覧ください。)
2については、テンプレート編集のあたりは同じです。
validation、および登録項目についても同じですが、すこーしだけ違っています。見れば分かりますが念のために方法を簡単に説明します。
LC_Page_Admin_Products_Product_Ex.phpに以下の関数を追加していきます。
LC_Page_Admin_Products_Product.phpの同名の関数をコピペして編集するのが早いです。
[php]
<pre>function lfInitFormParam(&$objFormParam, $arrPost) {
・・・
//追加分の項目
$objFormParam->addParam("寸法", ‘size_info’, STEXT_LEN, ‘KVa’, array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
$objFormParam->addParam("製品情報", ‘product_info’, LTEXT_LEN, ‘KVa’, array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
・・・
$objFormParam->setParam($arrPost);
$objFormParam->convParam();
}
function lfRegistProduct(&$objUpFile, &$objDownFile, $arrList) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$objDb = new SC_Helper_DB_Ex();
// 配列の添字を定義
//追加項目
$checkArray = array(‘name’, ‘status’,’size_info’,’product_info’,
"main_list_comment", "main_comment",
"deliv_fee", "comment1", "comment2", "comment3",
"comment4", "comment5", "comment6", "main_list_comment",
"sale_limit", "deliv_date_id", "maker_id", ‘note’);
$arrList = SC_Utils_Ex::arrayDefineIndexes($arrList, $checkArray);
// INSERTする値を作成する。
$sqlval[‘name’] = $arrList[‘name’];
//追加項目
$sqlval[‘size_info’] = $arrList[‘size_info’];
$sqlval[‘product_info’] = $arrList[‘product_info’];
・・・
}</pre>
[/php]
この2つの関数だけで大丈夫です。
3についてはテンプレート等の編集はもちろん必要で、その方法は2.4系の時と変わりません。
ただし、2.11系ではSC_Productクラスを使って製品情報を扱うように変更されておりますので、
SC_Product_Ex.phpファイルを見つけて、次の関数に変更を加えて下さい。
これもSC_Product.phpから同名の関数をコピペすればいいです。
[php]
<pre>function alldtlSQL($where = "") {
$whereCause = "";
if (!SC_Utils_Ex::isBlank($where)) {
$whereCause = " WHERE " . $where;
}
/*
* point_rate, deliv_fee は商品規格(dtb_products_class)ごとに保持しているが,
* 商品(dtb_products)ごとの設定なので MAX のみを取得する.
*/
$sql = <<< __EOS__
(
SELECT dtb_products.product_id,
dtb_products.name,
dtb_products.maker_id,
dtb_products.status,
//追加項目
dtb_products.size_info,
dtb_products.product_info,
dtb_products.comment1,
dtb_products.comment2,
・・・
}</pre>
[/php]
以上です。
ほとんど同じですので2.4系のカスタマイズに慣れている方は特に問題ないのではないかと思います。