如何在不复制孔 Prestashop 主题的情况下覆盖产品列表/显示名称?
How to override product list / show name without copy the hole Prestashop theme?
我创建了一个模块来添加 oneToMany link Product->artists
.
这在后台非常有效(CRUD + 表单上的产品 link)。
现在我想覆盖 Prestashop 1.6 默认主题,只在产品列表、产品展示和产品弹出窗口的标题下添加艺术家姓名。
我想避免仅十行 HTML 标签的孔主题的副本...
执行此操作的最佳和正确方法是什么?
Prestashop 主题系统的工作原理如下:
- 模块或控制器创建模板文件。
- 模块可以覆盖此模板文件。
- 主题可以覆盖此模板文件。
如果您的主题已经在处理这个模板文件,您将无法在模块中更改它。
最简单的解决方案是修改主题模板文件。
如果要向模板添加数据,可以使用 Prestashop Hook system。在产品页面有很多 Hooks:
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');
在您的模块中声明您自己的模板文件...这真的不是我会考虑的解决方案。
我创建了一个模块来添加 oneToMany link Product->artists
.
这在后台非常有效(CRUD + 表单上的产品 link)。
现在我想覆盖 Prestashop 1.6 默认主题,只在产品列表、产品展示和产品弹出窗口的标题下添加艺术家姓名。
我想避免仅十行 HTML 标签的孔主题的副本...
执行此操作的最佳和正确方法是什么?
Prestashop 主题系统的工作原理如下:
- 模块或控制器创建模板文件。
- 模块可以覆盖此模板文件。
- 主题可以覆盖此模板文件。
如果您的主题已经在处理这个模板文件,您将无法在模块中更改它。
最简单的解决方案是修改主题模板文件。
如果要向模板添加数据,可以使用 Prestashop Hook system。在产品页面有很多 Hooks:
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');
在您的模块中声明您自己的模板文件...这真的不是我会考虑的解决方案。