質問 > その他 > 特定の商品のみ商品一覧に非表示にする方法 |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
d_taguchi |
投稿日時: 2019/10/11 17:38
対応状況: −−−
|
新米 登録日: 2019/9/25 居住地: 投稿: 9 |
特定の商品のみ商品一覧に非表示にする方法 ▼テンプレート
[EC-CUBE] 4.0.2(新規インストール) 当方、EC-CUBE開発初心者になります。 現在、デフォルトのテンプレートをベースにカスタマイズを行っているのですが、 商品一覧のページで特定の商品のみ非表示させるようソースを組んでおります。 (因みに、商品詳細のページはURL直打ちをすれば表示される仕様で問題ないです。) 現在、app/template/default/Product/list.twig のtwigのソースを編集し、145行目の
を
にする事で商品のサムネイル部分に商品ID18番の商品を非表示する事が出来ましたが、 「○○件の商品が見つかりました」の総商品数部分が変更されず 非表示にした商品が存在する状態の数で表示されてしまいます。 ここの部分も 「商品ID18番の商品があるとき、総商品数を-1する」 といった簡単なソースで良いのですが、 twigの書き方や、EC-Cubeの構造などまだ理解していない部分が多く、 どのように記述すればよいか分からないでいます。 私の勉強不足による要因ではありますが、 どなたかご教授いただけたら幸いです。 申し訳ありませんが、何卒よろしくお願いいたします。 |
468 |
投稿日時: 2019/10/17 11:28
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 特定の商品のみ商品一覧に非表示にする方法 商品一覧ページにはページネーションの機能があり、
全ページ数を算出するのにデータベースから商品データを取り出す時点で 検索条件に一致した全件の件数も同時に取得しています。 twig上のみで特定の商品を非表示にした場合、 質問になる検索結果の件数だけでなく、 全体のページ数、1ページあたりの表示件数の不整合(1ページ15件表示を選択しているにもかかわらず14件しか表示されない)が発生します。 その為、特定の商品を非表示にしたい場合、 twigで隠すのではなく、php側でデータベースの取得時から除外するようにする必要があります。 直接ソースを変更するのであれば /src/Eccube/Repository/ProductRepository.php function getQueryBuilderBySearchData()が フロントの商品抽出処理になります。 本体に手を加えず、リポジトリをカスタマイズする場合は 公式ドキュメントの以下のページのQueryBuilderを拡張する方法で対応できると思います。 http://doc4.ec-cube.net/customize_repository
|
d_taguchi |
投稿日時: 2019/10/17 11:59
対応状況: −−−
|
新米 登録日: 2019/9/25 居住地: 投稿: 9 |
Re: 特定の商品のみ商品一覧に非表示にする方法 ありがとうございます!
大変参考になりました。 私もtwig側でやるべきではないかなと 薄々感じてはおりました。 ご連絡いただいた内容を参考に ソースを組んでみたいと思います。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |