以编程方式设置挂钩异常

Set hook exception programmatically

在prestashop的自定义模块中,如何为自定义模块的特殊页面(前端控制器)定义一个钩子异常?

我知道我可以在模块的 install() 方法中注册挂钩,例如$this->registerHook('displayHome') 和钩子可以在 improve -> design -> positions 下的 prestashop 管理面板中配置(还有 transplant a module 下)。这适用于实现 public function hookDisplayX($params) 方法的所有挂钩。

在移植模块时,可以为未执行模块钩子的页面定义异常。这会在 table PREFIX_hook_module_exceptions 中生成一个 DB 条目,其中包含模块文件名(格式 module-<modulename>-<controllername>)、一些模块 ID 和一些挂钩 ID。

现在的问题是,我将如何定义这个异常,例如在 install() 方法期间(或可能之后)。我唯一的信息是异常文件名(因为我知道哪个控制器负责显示内容)。

使用此代码:

$this->registerExceptions(
    Hook::getIdByName('hookNameHere'),
    array(
        'attachment',
        'contact',
        'other-page-name',
    )
);