Prestashop 1.7中的定制挂钩

时间:2017-01-07 23:27:57

标签: module hook prestashop-1.7

我尝试为滑块模块创建Prestashop 1.7.0.3的自定义Hook。我插入:

displaySlider: - ps_imageslider

在block“hooks”上的theme.yml文件上。 然后插入:

{if $page.page_name == 'index'} 
   {hook h='displaySlider'}
{/if} 

在标题和section id =“wrapper”标记之间的theme / templates / layouts / layout-both-columns.tpl文件中。根据这篇文章:Custom Hooks in Prestashop 1.7当我尝试从后端更改滑块模块位置时,一切都会正常工作,但钩子没有显示在可用钩子上。

4 个答案:

答案 0 :(得分:4)

我今天在同一个问题上工作。

我成功地让它出现,这可能不是好方法,我希望它不是好方法,因为它很奇怪。

在你的theme.yml中,你必须像这样设置你的钩子:

global_settings:
  hooks:
    custom_hooks:
      - name: displayFooterBefore
        title: displayFooterBefore
        description: Add a widget area above the footer

如果你想在位置页面看到你的钩子,你必须切换到另一个模板然后回到你的模板。 (刷新的种类)

您还可以查看Prestashop中不完整的文档: http://developers.prestashop.com/themes/hooks/index.html

我希望在这个页面中有另一种刷新钩子的方法......

答案 1 :(得分:1)

所以只是要清楚。在 Prestashop 中添加新钩子

  1. 在\themes\yourTheme\config\theme.yml 中添加
 
    custom_hooks:
          - name: displayYourCustomHook
          - title: displayYourCustomHook
          - description: This is a Custom hook

  1. 在同一个文件中,在 modules_to_hook 部分:
 displayYourCustomHook:
        - ps_moduleIwantoHook
        - ps_anotherModuleIwantToHook

  1. 您想在 .tpl 文件中的任何位置添加钩子:
 
...
   {hook h='displayYourCustomHook'}
...
  1. 最后,在您的后台,您将当前主题更改为其他主题,然后保存。之后,您更改为上一个主题(您实际要使用的主题),再次保存,您的钩子应该可见。这样做的目的是“刷新”您的 Prestashop 网站识别的钩子。

这适用于 Prestashop 1.7.7

答案 2 :(得分:0)

我花了很多时间来寻找为什么我的自定义钩子没有出现在正面的原因,谢谢。

为了改进此过程,可以在外观>主题和徽标中使用重置按钮。

这避免了必须激活另一个主题。

答案 3 :(得分:0)

我看到我在 2 年前投票赞成接受的解决方案,但现在想出了一个更好的解决方案。 根据 Prestashop 1.7 hooks doc,您所要做的就是将您的钩子注册为任何其他普通钩子,它会自动创建。所以粘贴如下内容:

$this->registerHook('displayAtSpecificPlace');

在你的模块中 install() 并重新安装模块。