2

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

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

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

2 回答 2

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;
于 2013-05-11T09:47:09.630 回答
0

解决了 :

class ProductController extends ProductControllerCore
{
  public function getProduct() 
  {
    return $this->product;
  }
}
  1. 创建了“ProductController”的覆盖(上面的代码)
  2. 在钩子中只需调用: $this->context->controller->getProduct()
于 2013-05-07T14:55:13.787 回答