バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 商品一覧(全商品一覧)ページで特定カテゴリの商品を非表示にしたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
YUYU-YU
投稿日時: 2019/5/30 14:31
対応状況: −−−
半人前
登録日: 2019/5/29
居住地:
投稿: 18
商品一覧(全商品一覧)ページで特定カテゴリの商品を非表示にしたい
[EC-CUBE] 3.0.17

■実現したい機能
全商品一覧ページで特定カテゴリの商品を非表示にしたい。
ただし、上記で非表示にしたカテゴリのカテゴリページには商品を表示できるようにしたい。

■参考記事
●【3.0.15】商品一覧ページに特定の商品を表示させない方法
http://ec-cube.nakweb.com/eccube3/3660

下記はEC-CUBE2.X系でのカスタマイズ記事です。
●【EC-CUBE2】非公開カテゴリーの作成
http://zero-one-x.com/archives/141
●[EC-CUBE 2.12.4] 商品一覧ページで特定のカテゴリを含む商品を非表示にする
http://ec-cube.nakweb.com/blog/2210.html

上記記事を参考に素人なりに弄ってみたのですが、
全商品が表示されなくなったり、システムエラーになってしまいます。

恐らく、/src/Eccube/Repository/ProductRepository.phpに条件を追加すれば実現可能かと考えています。

どなたか分かる方、ご教授をお願い致します。
kazumi
投稿日時: 2019/5/31 11:22
対応状況: −−−
常連
登録日: 2019/4/15
居住地:
投稿: 45
Re: 商品一覧(全商品一覧)ページで特定カテゴリの商品を非表示にしたい
YUYU-YU さん、初めまして。

「/src/Eccube/Repository/ProductRepository.php」の「getQueryBuilderBySearchData」のメソッド内の104行目あたりから商品の一覧表示時のカテゴリー検索の条件設定の箇所があり、以下のようにelse句で追加していただくと実装できましたよ。


        // category
        $categoryJoin = false;
        if (!empty($searchData['category_id']) && $searchData['category_id']) {
            $Categories = $searchData['category_id']->getSelfAndDescendants();
            if ($Categories) {
                $qb
                    ->innerJoin('p.ProductCategories', 'pct')
                    ->innerJoin('pct.Category', 'c')
                    ->andWhere($qb->expr()->in('pct.Category', ':Categories'))
                    ->setParameter('Categories', $Categories);
                $categoryJoin = true;
            }
        // ここから分岐を追加
        } else {
            $qb
                ->innerJoin('p.ProductCategories', 'pct')
                ->innerJoin('pct.Category', 'c')
                ->andWhere($qb->expr()->notIn('pct.Category', ':Categories'))
                ->setParameter('Categories', array(1, 4));
            $categoryJoin = true;
        }
        // ここまで

YUYU-YU
投稿日時: 2019/5/31 12:02
対応状況: 解決済
半人前
登録日: 2019/5/29
居住地:
投稿: 18
Re: 商品一覧(全商品一覧)ページで特定カテゴリの商品を非表示にしたい
kazumi様

迅速なご回答ありがとうございます。

ご教授頂きましたように、else句を追加することで、
実現したい動作をさせることができました。

なんとお礼を申し上げてよいのか、感謝してもしきれません。

この度は、本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,709名です
総投稿数は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.