2

请帮我解决以下问题:

我的网站在选择类别时显示相应的子类别,并显示“该类别中没有产品”的消息。这在向下钻取时发生,直到到达较低级别的子类别。

我想展示其子类别的所有产品。

请问我该怎么做?

非常感谢您的建议,

史蒂文

4

5 回答 5

3

打开/controllers/CategoryController.php并将以下代码添加到process()方法中,注意注释告诉您从哪里开始和结束添加代码

public function process()
{
    ....
            }
            if ($this->category->id != 1)
                $this->productListAssign();

            /* MODIFICATION STARTS HERE */  
            if(!(isset($this->cat_products) AND $this->cat_products) ){ 
                $this->category->id=array();
                foreach($subCategories as $k=>$v){
                    $this->category->id[]=$v['id_category'];
                }
                $this->productListAssign();

            }
            /* MODIFICATION ENDS HERE */    

            self::$smarty->assign(array( ...
}

然后打开classes/Category.php并更改 SQL 查询的 WHERE CLAUSE 行public function getProducts

    WHERE cp.`id_category` = '.(int)$this->id.($active ? ' AND p.`active` = 1' : '').'

    WHERE cp.`id_category` '.(is_array($this->id)?" IN(".implode(',',$this->id).") ": "=".(int)$this->id).($active ? ' AND p.`active` = 1' : '').'
于 2012-11-13T03:14:29.273 回答
2

您无需更改任何内容即可实现此目的。

只需将产品不仅分配给它所在的子类别,还分配给父类别(在 BO 中的产品编辑中)。

于 2013-07-15T18:14:42.230 回答
2

您也可以只安装分层导航模块(blocklayered)。此模块的默认行为是显示子类别产品,即使选择器小部件在页面上不可见/不活动也是如此。

于 2013-11-02T07:05:23.990 回答
1

在 categoryController.php 中,您可以找到该process()方法。那是获得类别页面上显示的所有信息的那个。$cat_product你会找到一个存储所有产品的变量(如果我的记忆好的话,我想它会被调用)。您可以轻松检查它是否为空。然后从这里你只需要获取子类别(在类别类中有一个方法),然后获取这些类别的产品(还有一个获取类别产品的方法)。这只是您必须遵循的逻辑,毕竟您需要的所有代码都已经在框架中。

于 2012-08-19T22:28:00.427 回答
-1

在主标题菜单上添加新类别非常简单,只需转到模块 - Pos Megamenu Customer 并添加您想要的任何内容。

完毕!!

于 2015-10-26T18:34:30.317 回答