如何在钩子内获得当前产品?

时间:2013-05-07 14:22:28

标签: prestashop

如何在hookdisplayTop中获取当前产品?

这是我确定我在“产品”页面中的当前方式:

if ( Dispatcher::getInstance()->getController() == "product") {
  //i'm in the product page
}

2 个答案:

答案 0 :(得分:6)

如果您在ProductController中,那么您总是可以获得当前产品的product_id而无需使用覆盖(如果过度使用,这些可能会很快失控,应该是最后的手段):

if ($id_product = (int)Tools::getValue('id_product'))
    $product = new Product($id_product, 
                           true,
                           $this->context->language->id, 
                           $this->context->shop->id);
if (!Validate:: isLoadedObject($product))
    return;

答案 1 :(得分:0)

解决了:

class ProductController extends ProductControllerCore
{
  public function getProduct() 
  {
    return $this->product;
  }
}
  1. 创建了“ProductController”(上面的代码)
  2. 的覆盖
  3. 在钩子中只需致电:$ this-> context-> controller-> getProduct()