我有两个自定义模块。例如,
Module_A
Module_B
我已经按照模块A的顺序创建了模块B的 module.xml 。像这样,
<module name="Module_B" setup_version="0.0.1">
<sequence>
<module name="Module_A"/>
</sequence>
</module>
我想覆盖Module_B中Module_A的模板文件,并且我使用的是luma主题。
我已经尝试在 app / design / frontend / Magento / luma / Module_A / templates /(phtml文件)中覆盖它。但这似乎不起作用。
答案 0 :(得分:1)
要覆盖模块phtml文件,我将采用以下两种方法之一:
-
使用XML布局覆盖模板
在Module_B中使用xml布局文件覆盖phtml文件,以告知Magento从Module_B而不是Module_A加载该块的phtml文件。 即使对于布局块中的重大更改,这也是一种非常有效的方法,但是对于将来的更新中的任何更改,您都必须跟踪块名称。
请按照this answer进行操作,以了解如何使用xml布局替换功能更改特定块的phtml文件。
-
使用主题文件覆盖模板
创建Luma的子主题(或其他主题),并开始包含Module_A模块的phtml文件,如下所示:
app/design/frontend/customtheme/Module_A/{layout,templates,web}/(phtml file)
就个人而言,如果您想对Module_A呈现的块进行一些快速更改和修复,我更喜欢这种方法。
您可以将Luma作为参考,因为它基本上可以做到这一点。