私は解決策を見つけようとしていますが、それでも運がありません。サブカテゴリから親カテゴリまでのすべての商品を表示したい。
Opencart1.5.3.1を使用しています
私は解決策を見つけようとしていますが、それでも運がありません。サブカテゴリから親カテゴリまでのすべての商品を表示したい。
Opencart1.5.3.1を使用しています
ソースを読んだ後、私はそれを理解しました:
catalog / controller / product / category.php(または関数model_catalog_product-> getProductsを呼び出している場所)に、以下を追加する必要がありますfilter_sub_category = true
。
$data = array(
'filter_category_id' => $top_category,
'filter_sub_category' => true,
'sort' => $sort,
'order' => $order,
'start' => ($page - 1) * $limit,
'limit' => $limit
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
それ以降のバージョンを使用している場合は、他の回答を確認してください;)
コアファイルを直接変更するのではなく、別の解決策は、vQmodを使用してファイルを変更することです。そうすれば、新しいバージョンにアップグレードするときに、行ったカスタム変更を再インストールする必要がありません。
以下は、vQmodでこれを実現するために使用するコードです。
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Display products in sub-categories while browsing a parent category</id>
<version>1.0.0</version>
<vqmver>2.4.0</vqmver>
<author>Jay Williams - jay@myd3.com</author>
<file name="catalog/controller/product/category.php">
<operation>
<search position="after"><![CDATA['filter_category_id' => $category_id,]]></search>
<add><![CDATA['filter_sub_category' => true,]]></add>
</operation>
</file>
</modification>
catalog / controller / product / category.php
Opencartバージョン2.1.0.2の場合、Ignacioのソリューションは次の場合にも問題なく機能します。
$data (of version 1.5.x)
と呼ばれるようになりました
$filter_data (line #169)
次に、行を追加するだけです
'filter_sub_category' => true、
行#170の後('filter_category_id' => $category_id,
)
Ignacioに感謝します!
vqmodメソッドが最適で、簡単に機能します。そのファイルとanything.xmlを追加し、vqmod>xmlに配置するだけです。
もう1つの情報を提供するだけで、最新バージョンはOpenCart独自のvqmod機能である「ocmod」を使用します。そこまで同じように機能します。
Opencart 3.xの場合:./ catalog / controller / product / category.php
探す:
'filter_category_id' => $category_id,
後に追加:
'filter_sub_category' => true,
ファイルを変更した後、「変更」と「クリア」に移動し、「更新」ボタンをクリックします