2012-08-28 21 views

Respuesta

30

Después de leer la fuente, lo he descubierto:

En el catálogo/controlador/producto/category.php (o donde sea que está llamando la función model_catalog_product- > getProducts) hay que añadir 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); 

Asegúrese de verificar las otras respuestas si está utilizando una versión posterior;)

+3

Esto es realmente útil. solución simple, gran impacto para la experiencia del usuario. –

+1

Solo para aclarar, esto modifica los archivos principales de OpenCart, lo cual es bastante desagradable. No es que trabajar con vQmod tampoco sea feo como el infierno ... – Nacho

+1

Gran solución. Gracias, señor – amir

6

Otra solución, en lugar de modificar los archivos principales directamente, es usar vQmod para modificar el archivo por usted. De esta forma, cuando actualice a una nueva versión, no tendrá que volver a instalar las modificaciones personalizadas que haya realizado.

a continuación es un código que se usa para lograr esto en 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> 

Fuente: https://gist.github.com/jaywilliams/8044763

1

el método vqmod es el mejor y funciona fácilmente. sólo tiene que añadir ese archivo y anything.xml y colocarlo en vqmod> xml

4

Catálogo/controlador/producto/category.php

Para Opencart versión 2.1.0.2, la solución de Ignacio multas funciona tan bien sólo eso:

$data (of version 1.5.x) ahora se llama

$filter_data (line #169)

Entonces sólo tiene que añadir la línea

'filter_sub_category' => true,

después de la línea # 170 ('filter_category_id' => $category_id,)

Gracias Ignacio!

1

Simplemente contribuyendo con una información más, las últimas versiones usan "ocmod", la función vqmod propia de OpenCart. Puede funcionar de la misma manera por allí.

Cuestiones relacionadas