バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品CSVダウンロードで親カテゴリごと出力したい

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/10/13 19:11
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1638
商品CSVダウンロードで親カテゴリごと出力したい
EC-CBUE3.0.15

商品管理の商品CSVダウンロードで「商品カテゴリ(名称)」列があった場合、「フォーク,新入荷」のように出力されます。

これを「キッチンツール/食器/フォーク,新入荷」のように、親カテゴリごと出力したいと思っています。

下のソースのようにカスタマイズしましたが、★の箇所でOutOfMemoryExceptionが発生してしまいます。
どうしたら解決できるでしょうか?

src/Eccube/Service/CsvExportService.php
変更前
        } elseif ($data instanceof \Doctrine\Common\Collections\Collection) {
            // one to manyの場合は, カンマ区切りに変換する.
            $array = array();
            foreach ($data as $elem) {
                if (EntityUtil::isNotEmpty($elem)) {
                    $array[] = $elem->offsetGet($Csv->getReferenceFieldName());
                }
            }
            return implode($this->config['csv_export_multidata_separator'], $array);

        } elseif ($data instanceof \DateTime) {

変更後
        } elseif ($data instanceof \Doctrine\Common\Collections\Collection) {
            // one to manyの場合は, カンマ区切りに変換する.
            $array = array();
            foreach ($data as $elem) {
                if (EntityUtil::isNotEmpty($elem)) {

                    if ($elem instanceof \Eccube\Entity\ProductCategory) {
                        // 商品カテゴリ(名称) の場合は親カテゴリごと取得してスラッシュ区切りで設定
                        $category = $elem->getCategory();
                        $tmpArray = array($category->offsetGet('Name'));
                        do {
                            $parent = $category->getParent();
                            if ($parent) {
                                $tmpArray[] = $parent->offsetGet('Name');    // ★ エラー
                            }
                        } while ($parent);
                        $array[] = implode('/', array_reverse($tmpArray));
                    }
                    else {
                        $array[] = $elem->offsetGet($Csv->getReferenceFieldName());
                    }
                }
            }
            return implode($this->config['csv_export_multidata_separator'], $array);

        } elseif ($data instanceof \DateTime) {



----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

h_tanaka
投稿日時: 2017/10/13 19:34
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1638
Re: 商品CSVダウンロードで親カテゴリごと出力したい
自己解決しました。
無限ループしていました。

        } elseif ($data instanceof \Doctrine\Common\Collections\Collection) {
            // one to manyの場合は, カンマ区切りに変換する.
            $array = array();
            foreach ($data as $elem) {
                if (EntityUtil::isNotEmpty($elem)) {

                    if ($elem instanceof \Eccube\Entity\ProductCategory) {
                        // 商品カテゴリ(名称) の場合は親カテゴリごと取得してスラッシュ区切りで設定
                        $category = $elem->getCategory();
                        $tmpArray = array($category->offsetGet('Name'));
                        do {
                            $parent = $category->getParent();
                            if ($parent) {
                                $tmpArray[] = $parent->offsetGet('Name');
                            }
                            $category = $parent;    // ★ 追加
                        } while ($category);
                        $array[] = implode('/', array_reverse($tmpArray));
                    }
                    else {
                        $array[] = $elem->offsetGet($Csv->getReferenceFieldName());
                    }
                }
            }
            return implode($this->config['csv_export_multidata_separator'], $array);

        } elseif ($data instanceof \DateTime) {


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,707名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
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.