2

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

displaySlider: - ps_imageslider

在“钩子”块上的 theme.yml 文件上。然后插入:

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

在 header 和 section id=”wrapper” 标签之间的 theme/templates/layouts/layout-both-columns.tpl 文件上。根据这篇文章:Prestashop 1.7 中的自定义挂钩一切正常,但是当我尝试从后端更改滑块模块位置时,挂钩未显示在可用挂钩上。

4

4 回答 4

7

我今天正在处理同样的问题。

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

在你的 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

我希望有另一种方法来刷新此页面中的钩子...

于 2017-01-08T10:48:36.860 回答
1

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

  1. 在 \themes\yourTheme\config\theme.yml 你添加
 
    自定义钩子:
          - 名称:displayYourCustomHook
          - 标题:displayYourCustomHook
          - 描述:这是一个自定义钩子

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

  1. 无论您要在 .tpl 文件中的何处添加钩子:
 
...
   {hook h='displayYourCustomHook'}
...
  1. 最后,从您的后台,您将当前主题更改为不同的主题,然后保存。之后,您更改为以前的主题(您实际要使用的主题),再次保存,您的钩子应该可见。这样做的目的是“刷新”您的 Prestashop 站点识别的钩子。

这适用于 Prestashop 1.7.7

于 2021-07-09T10:16:48.710 回答
0

我花了很多时间寻找为什么我的自定义钩子没有出现在前面,谢谢你的提示。

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

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

于 2019-06-28T14:30:54.620 回答
0

我看到我在 2 年前投票给自己接受的解决方案,但现在想出了一个更好的解决方案。根据Prestashop 1.7 hooks doc,您所要做的就是将您的钩子注册为任何其他正常的钩子,它将自动创建。所以粘贴类似的东西:

$this->registerHook('displayAtSpecificPlace');

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

于 2021-03-08T20:19:56.537 回答