Prestashop beforeRequest 中间件

锤子机器人

我正在尝试为 Prestashop 1.6 构建一个模块,如果目标 URL 存在于数据库中,它将重定向用户。

我要做的是以下几点:

public function checkRedirection ($url) {
    $line = Db::getInstance()->executeS('SELECT * FROM ps_custom_redirection WHERE url = ' . pSQL($url));

    if (!sizeof($line)) {
        return null;
    }

    header('Location: ' . $line[0]['destination']);
    http_response_code($line[0]['http_code']);
    exit();
}

现在,我可以在displayTop钩子被触发时运行这个函数但我宁愿在请求过程开始时启动此功能。

Prestashop 是否提供这样的钩子?如果没有,我可以创建一个吗?我应该在哪里编写代码来触发它?

安德尔

执行的第一个钩子是actionDispatcher——如果你愿意,你可以使用它。

你会发现这个钩子在/classes/Dispatcher.php. 搜索代码Hook::exec('actionDispatcher', $params_hook_action_dispatcher);

如果要将此挂钩添加到模块中,则需要在主模块文件中使用其名称,如下所示:

public function install() { return parent::install() && $this->registerHook('actionDispatcher'); }

public function hookActionDispatcher($params) { // your code Tools::redirect($url); }

Tools::redirect($url);如果重定向,则在 Prestashop中使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章