Prestashop 1.7 从自定义主题覆盖前端控制器

问题描述

在 PrestaShop 1.7 中,我有自己的主题,目前是主题。 在产品卡中,我需要显示多商店商店的列表。 由于我不知道是否可以使用认控制器 controllers/front/ProductController.PHP 获取有关多商店商店的信息,因此我想在我的自定义主题中扩展此控制器。

我正在使用如下代码创建文件 themes/myTheme/override/controllers/front/ProductController.PHP

class ProductController extends ProductControllerCore{
public $multiStores;

public function init()
{
    parent::init();
    echo 'test';
}

}

我希望在产品卡片页面上我能够看到我的文字“测试”。

但不幸的是什么也没发生,我的结论是这个控制器由于某种原因没有连接。

你能告诉我我做错了什么以及如何解决这种情况吗?

解决方法

您不能在这样的主题中覆盖前端控制器方法。

您需要通过放置来覆盖核心前端控制器 /override/controllers/front

中的代码

见:https://devdocs.prestashop.com/1.7/modules/concepts/overrides/

无论如何,您可以通过以下方式以更简洁的方式获得所需的结果 使用适当的前端挂钩(即 hookDisplayHeader)并构建一个简单的模块,检查上下文对象以查看您连接到哪个 id_shop