类别页面产品过滤器
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
。
中执行
如您所见,您在 params 数组中获得了三个属性。因为它们是通过引用传递的,所以您可以为它们分配您自己的过滤产品列表,并且 CategoryController
将拥有您的过滤数据。
确保将 hookExecuted
设置为 true
,并且 catProducts
的数据结构应与 CategoryController
正常生成的数据结构和 nbProducts
相匹配应该有 总数 个过滤后的产品。
对于你问题的前半部分,sadlyblue给了你答案。
我是 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
。
如您所见,您在 params 数组中获得了三个属性。因为它们是通过引用传递的,所以您可以为它们分配您自己的过滤产品列表,并且 CategoryController
将拥有您的过滤数据。
确保将 hookExecuted
设置为 true
,并且 catProducts
的数据结构应与 CategoryController
正常生成的数据结构和 nbProducts
相匹配应该有 总数 个过滤后的产品。
对于你问题的前半部分,sadlyblue给了你答案。