为了账号安全,请及时绑定邮箱和手机立即绑定

在 Prestashop 1.7 的后台中显示自定义挂钩

在 Prestashop 1.7 的后台中显示自定义挂钩

PHP
白板的微信 2022-08-05 16:10:10
我正在尝试在Prestashop的默认产品表中显示一些内容。我已经设法覆盖了树枝模板。{% extends 'PrestaShopBundle:Admin/Product/CatalogPage/Lists:list.html.twig' %}我通过在覆盖的模板中键入随机字符串来验证它,并且它成功出现在产品列表中。之后,我在我的模块中创建了一个自定义钩子:$this->registerHook('displayModProfit');我验证了钩子是否已在数据库中注册。是的。ps_hook我在模块中添加了一个方法,以便显示带有钩子的测试消息。该方法称为 。hookDisplayModProfit然后我在覆盖的模板中使用。{{ renderhook('displayModProfit') }}list.html.twig但是,它不起作用。在我想要测试消息显示的位置没有显示任何内容。我检查了数据库,意识到我的模块没有附加到钩子上。我在后台“职位”选项卡中也找不到钩子。我读了一点,人们建议在文件中添加一个条目。问题是,我不是在做一个特定主题的钩子。我正在制作一个后台钩子。如何将我的模块附加到它?custom_hookstheme.yml
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

在我看来,您只是忘记在自定义钩子添加后重置模块。有必要在系统中注册您的钩子。或者,您可能没有在方法中添加返回语句。hookDisplayModProfit

如果您正确遵循下一个说明,一切都应该像超级按钮一样工作

  1. 覆盖树枝模板文件。将同名文件放在模块内的正确目录中。在您的情况下,它是 并扩展原始文件 。不要忘记,我们只能扩展原始模板中存在的块。例如:your_module/views/PrestaShop/Admin/Product/CatalogPage/Lists/list.html.twig{% extends 'PrestaShopBundle:Admin/Product/CatalogPage/Lists:list.html.twig' %}

    {% block product_catalog_form_table_row %}    {{ renderhook('displayModProfit') }} {% endblock %}

  2. 在您的模块主php文件中添加到安装方法中。$this->registerHook('displayModProfit')

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

  3. 在主 php 文件中,添加一个带有 return 语句的方法hookDisplayModProfit

    public function hookDisplayModProfit() {    return 'Hello world!'; }

  4. 重置模块以注册新挂钩。


查看完整回答
反对 回复 2022-08-05
  • 1 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号