2012-08-28 28 views

Trả lời

30

Sau khi đọc các nguồn, I figured it out:

Trong Danh mục hàng/điều khiển/sản phẩm/category.php (hoặc bất cứ nơi nào bạn đang gọi điện thoại chức năng model_catalog_product- > GetProducts), bạn cần phải thêm 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); 

Hãy chắc chắn rằng bạn đánh dấu vào câu trả lời khác nếu bạn đang sử dụng một phiên bản sau;)

+3

Điều này thực sự hữu ích. giải pháp đơn giản, tác động lớn đến trải nghiệm người dùng. –

+1

Chỉ cần làm rõ, điều này sửa đổi các tệp lõi của OpenCart, điều này khá khó chịu. Không phải là làm việc với vQmod cũng không tệ như địa ngục ... – Nacho

+1

Giải pháp tuyệt vời. Cảm ơn bạn Sir – amir

6

Một giải pháp khác, thay vì sửa đổi các tệp lõi trực tiếp, là sử dụng vQmod để sửa đổi tệp cho bạn. Bằng cách đó khi bạn nâng cấp lên phiên bản mới, bạn sẽ không phải cài đặt lại bất kỳ sửa đổi tùy chỉnh nào bạn đã thực hiện.

Dưới đây là một đoạn code bạn muốn sử dụng để thực hiện điều này trong 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 - [email protected]</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> 

Nguồn: https://gist.github.com/jaywilliams/8044763

1

phương pháp vqmod là tốt nhất và làm việc một cách dễ dàng. chỉ cần thêm rằng tập tin và anything.xml và đặt nó trong vqmod> xml

4

catalô/controller/sản phẩm/category.php

Đối với Opencart Version 2.1.0.2, các giải pháp của Ignacio việc phạt cũng chỉ là:

$data (of version 1.5.x) bây giờ được gọi

$filter_data (line #169)

Sau đó chỉ cần thêm dòng

'filter_sub_category' => true,

sau dòng # 170 ('filter_category_id' => $category_id,)

Cảm ơn Ignacio!

1

Chỉ cần đóng góp thêm một thông tin, phiên bản mới nhất sử dụng "ocmod", tính năng vqmod của OpenCart. Nó có thể làm việc theo cùng một cách thông qua đó.