Prestashop 1.7 中的自定义钩子
Posted
技术标签:
【中文标题】Prestashop 1.7 中的自定义钩子【英文标题】:Custom Hooks in Prestashop 1.7 【发布时间】:2017-05-22 12:24:06 【问题描述】:我尝试为滑块模块为 Prestashop 1.7.0.3 创建一个自定义 Hook。我插入:
displaySlider:
- ps_imageslider
在“钩子”块上的 theme.yml 文件上。 然后插入:
if $page.page_name == 'index'
hook h='displaySlider'
/if
在主题/模板/布局/layout-both-columns.tpl 文件的标题和部分 id=”wrapper” 标签之间。根据这篇文章:Custom Hooks in Prestashop 1.7 一切正常,但是当我尝试从后端更改滑块模块位置时,可用的钩子上没有显示钩子。
【问题讨论】:
【参考方案1】:所以要清楚。在 Prestashop 中添加新钩子。
-
在 \themes\yourTheme\config\theme.yml 中添加
-
在同一文件中,在 modules_to_hook 部分:
displayYourCustomHook: - ps_moduleIwantoHook - ps_anotherModuleIwantToHook
-
您想在 .tpl 文件中的任何位置添加挂钩:
-
最后,从您的后台,您将当前主题更改为不同的主题,然后保存。之后,您更改为以前的主题(您实际要使用的主题),再次保存,您的钩子应该可见。这样做的目的是“刷新”您的 Prestashop 网站识别的钩子。
这适用于 Prestashop 1.7.7
【讨论】:
【参考方案2】:我看到我在 2 年前投票给自己接受的解决方案,但现在想出了一个更好的解决方案。 根据Prestashop 1.7 hooks doc,您所要做的就是将您的钩子注册为任何其他正常的钩子,它将自动创建。所以粘贴类似的东西:
$this->registerHook('displayAtSpecificPlace');
在你的模块中 install() 并重新安装模块。
【讨论】:
【参考方案3】:我花了很多时间寻找为什么我的自定义钩子没有出现在前面,谢谢你的提示。
为了改进流程,您可以在外观 > 主题和徽标中使用重置按钮。
这避免了必须激活另一个主题。
【讨论】:
【参考方案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
我希望有另一种方法来刷新这个页面中的钩子......
【讨论】:
谢谢。是的,我切换到另一个模板,然后回到我的,一切正常。我也相信这不是正确的方式,但正在工作,所以谢谢你的解决方案。 “您必须切换到另一个模板并返回您的模板”听起来您必须切换主题?我相信删除 shop[n].json 文件可以达到同样的效果。唉,对我来说,这些“技巧”都不会显示我的新钩子! :(以上是关于Prestashop 1.7 中的自定义钩子的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 prestashop 1.7 上的模块在前台创建自定义页面