类别页面产品过滤器

Category Page Product Filter

我是 prestashop 的新手,我正在尝试创建一个简单的产品过滤器以显示在类别页面上。 我设法使用 hookDisplayLeftColumn 方法的钩子在页面上输出我的过滤器,但是我有几个问题。 现在我正在连接到 leftColumn,但过滤器将显示在具有 it.I 的任何页面上,只想在类别页面上显示它。

public function hookDisplayLeftColumn($params)
    {

        $data = array(
            'bar' => 'foo'
        );

        $this->context->smarty->assign($data);
        return $this->display(__FILE__, 'categoryfilter.tpl');
    }

这就是我过滤产品的棘手问题 part.How。 有什么方法可以挂钩并过滤结果吗?

如果您只想在类别页面中包含您的代码,请使用类似的内容:

public function hookDisplayLeftColumn($params)
{
    if (!isset($this->context->controller->php_self) or $this->context->controller->php_self != 'category')
         return false;

     $data = array(
         'bar' => 'foo'
     );

     $this->context->smarty->assign($data);
     return $this->display(__FILE__, 'categoryfilter.tpl');
}

您可以挂钩到 actionProductListOverride

钩子在CategoryController

中执行

如您所见,您在 params 数组中获得了三个属性。因为它们是通过引用传递的,所以您可以为它们分配您自己的过滤产品列表,并且 CategoryController 将拥有您的过滤数据。

确保将 hookExecuted 设置为 true,并且 catProducts 的数据结构应与 CategoryController 正常生成的数据结构和 nbProducts 相匹配应该有 总数 个过滤后的产品。

对于你问题的前半部分,sadlyblue给了你答案。