Magento2:覆盖自定义模块模板

时间:2018-06-22 15:38:12

标签: magento2

我有两个自定义模块。例如,

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文件)中覆盖它。但这似乎不起作用。

1 个答案:

答案 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作为参考,因为它基本上可以做到这一点。