Prestashop中的钩子是什么?

时间:2019-02-02 06:04:18

标签: prestashop prestashop-1.7

Prestashop中的钩子是什么?任何人都可以解释它是如何工作的,它会抛出图形表示形式。我是PS的新手,我不知道它的工作原理,也无法在其中传递变量。是否有任何技巧可以选择写钩子。

2 个答案:

答案 0 :(得分:3)

在PrestaShop中,您有两种钩子:

  1. Display-挂钩:您可以将它们视为位置,可以在其中放置设计元素,例如来自模块的位置。假设您要在页脚中放置横幅。然后将该模块“移植”到displayFooter,或选择一个使用所需钩子的模块。
  2. Action-挂钩:您可以将它们视为您希望采取行动的时机。假设您要乞求客户重新考虑是否从购物车中删除了某个项目,然后在actionObjectProductInCartDeleteAfter处添加了弹出窗口或其他内容,或者选择了使用所需钩子的模块。

如何在您说的模块中使用挂钩?

注册钩子(大部分时间在安装过程中完成),如下所示:

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

然后创建一个实际的钩子函数:

public function hookDisplayFooter($params) {
    dump($params); // Gives an overview of some available params.  
    return 'Hello world';
}

最后的钩子在这样的模板中执行:

{hook h='displayFooter'}

您还可以像这样从控制器执行钩子:

Hook::exec($hook_name, $hook_args);

更多信息可以在PrestaShop DevDocs中找到: https://devdocs.prestashop.com/1.7/modules/concepts/hooks/

答案 1 :(得分:0)

PrestaShop中的挂钩处理主题开发。它们对于将模块插入主题非常重要。在PrestaShop官方文档中,您可以找到list of basic hooks

要创建自己的钩子,请转到主题的目录,例如/ themes / classic /,然后在template /文件夹中选择所需的模板。例如,您可以选择位于/themes/classic/templates/_partials/header.tpl的网站标题模板。借助{hook h ='MyCustomNameHooks'}构造,将钩子添加到模板的标头:{hook h ='MySocialListHeader'}。有关创建钩子的详细信息,请参见here

如果您想知道如何在PrestaShop 1.7中使用自定义钩子,请read this。我们在其中包含了视频说明,因此将更易于理解如何管理钩子。