如何在Prestashop 1.7中的自定义模块模板中获取$ product变量

时间:2019-07-02 11:45:36

标签: prestashop prestashop-1.7

我在努力使用自定义模块。我想在自定义模块模板中使用$ product变量。

这适用于每个产品页面,但不适用于类别,而首页却给我调试错误

Notice: Undefined index: product

喜欢

{$product.name}

当我把它包裹起来

 {foreach from=$products item="product"}
     {$product.name}
 {/foreach} 

然后$ product变量起作用,但我只想显示与产品匹配的变量。

有什么想法吗?

我已经通过ps_specials实现了具有所有所需接口的产品功能,例如

 $products = $this->getSpecialProducts();

 $this->smarty->assign(
    array(
        'products' => $products,
    )); 

 return false;

指导我如何在首页和类别页面中获取$ product变量(在{hook h ='displayProductListReviews'product = $ product}的自定义模块中,通过挂钩的自定义模板文件提供)


编辑。

我的功能现在看起来

 public function hookDisplayProductListReviews($params){

    $templateFile = 'test.tpl';
    $products = $this->getSpecialProducts($params['product']);
    $this->context->smarty->assign(
        array(
            'products' => $products,
        )); 
    return $this->fetch('module:'.$this->name.'/'.$templateFile);
}

到目前为止很好,因为有了

{foreach from=$products item=product} {$product->name} {/foreach}

我可以打印$ product-> name,但是...

如何在没有foreach循环的情况下使用它来打印功能getSpecialProducts(来自ps_specials模块)中收集的所有产品的名称?

1 个答案:

答案 0 :(得分:1)

您应该

public function hookDisplayProductListReviews($params){
    $products = $this->getSpecialProducts($params['product']);
}

使用{hook h='displayProductListReviews' product=$product})product=$product将包含在$ params中,您可以使用print_r($params);die();查看该变量中的确切内容