バージョン選択

フォーラム

メニュー

オンライン状況

59 人のユーザが現在オンラインです。 (48 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 58
kggh もっと...

サイト内検索

プラグイン > バグ報告・利用に関する質問 > カテゴリ登録CSVについて

バグ報告・利用に関する質問

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
takka
投稿日時: 2012/10/4 11:58
対応状況: −−−
新米
登録日: 2012/10/3
居住地:
投稿: 2
カテゴリ登録CSVについて
プラグインでdtb_csvとdtb_categoryに項目を追加した後、カテゴリをCSVで登録しようとした際に、
既存のカテゴリの上書きの場合には追加項目も登録されますが、新規項目の場合は標準で設定されている項目のみしか登録されません。

LC_Page_Admin_Products_UploadCSVCategory.phpのlfRegistCategory()にて新規カテゴリの場合は、登録しか行われないのが原因のようです。

以下の様に修正して対応させてみました。
function lfRegistCategory($objQuery, $line, &$objFormParam) {
        // 登録データ対象取得
        $arrList = $objFormParam->getHashArray();
        // 登録時間を生成(DBのCURRENT_TIMESTAMPだとcommitした際、すべて同一の時間になってしまう)
        $arrList['update_date'] = $this->lfGetDbFormatTimeWithLine($line);

        // 登録情報を生成する。
        // テーブルのカラムに存在しているもののうち、Form投入設定されていないデータは上書きしない。
        $sqlval = SC_Utils_Ex::sfArrayIntersectKeys($arrList, $this->arrRegistColumn);

        // 必須入力では無い項目だが、空文字では問題のある特殊なカラム値の初期値設定
        $sqlval = $this->lfSetCategoryDefaultData($sqlval);

        $where = 'category_id = ?';
        if ($sqlval['category_id'] != '') {
            // 同じidが存在すればupdate存在しなければinsert
            $category_exists = $objQuery->exists('dtb_category', $where, array($sqlval['category_id']));
            if (!$category_exists) {
                $sqlval['create_date'] = $arrList['update_date'];
                // 新規登録
                $category_id = $this->registerCategory($sqlval['parent_category_id'],
                                        $sqlval['category_name'],
                                        $_SESSION['member_id'],
                                        $sqlval['category_id']);
            }
            $category_id = $sqlval['category_id'];
            // TODO: 削除時処理
        } else {
            // 新規登録
            $category_id = $this->registerCategory($sqlval['parent_category_id'],
                                        $sqlval['category_name'],
                                        $_SESSION['member_id']);
        }
        // UPDATEの実行
        $objQuery->update('dtb_category', $sqlval, $where, array($category_id));
        return $category_id;
    }


バグではなく、プラグイン側で対応するのが正解なのかもしれませんが、既存カテゴリの場合はdtb_csvで指定されたカラムを全て登録する動作になっていましたので、本体側を修正し対応しました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,099名です
総投稿数は110,036件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1649
8
red
1570
9
mcontact
1298
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.