如何在不复制孔 Prestashop 主题的情况下覆盖产品列表/显示名称



我创建了一个模块来添加一个 oneToMany 链接Product->artists

这在后台(CRUD +表单上的产品链接)上完美运行。

现在我想覆盖 Prestashop 1.6 默认主题,只在产品列表、产品展示和产品弹出窗口的标题下添加艺术家姓名。

我想避免只复制十行 HTML 标签的洞主题......

这样做

的最佳和正确的方法是什么?

Prestashop主题系统的工作原理如下:

  1. 模块或控制器创建模板文件。
  2. 模块可以覆盖此模板文件。
  3. 主题可以覆盖此模板文件。

如果您的主题已经在处理此模板文件,您将无法在模块中更改它。

最简单的解决方案是修改主题模板文件。


如果要将数据添加到模板中,可以使用Prestashop Hook系统。在产品页面中有许多钩子:

  • HOOK_EXTRA_LEFT
  • HOOK_EXTRA_RIGHT
  • HOOK_PRODUCT_OOS
  • HOOK_PRODUCT_ACTIONS
  • HOOK_PRODUCT_TAB
  • HOOK_PRODUCT_TAB_CONTENT
  • HOOK_PRODUCT_CONTENT

如果这个钩子中的一个没有方便地放在页面上,请添加一点 JQuery 以根据需要在 DOM 中移动它。


有一个解决方法,但它不是一个干净的解决方案。您可以覆盖产品控制器,而不是$this->setTemplate(_PS_THEME_DIR_.'product.tpl');模块中声明您自己的模板文件...这真的不是我会考虑的解决方案。

最新更新