Magento2布局的覆盖
本章内容
并不是所有的自定义布局都能通过扩展现有布局来实现。如果自定义的量很大时,可以覆盖所需的布局文件。这就意味着你在主题中新建的布局文件将被用来代替默认的主题布局文件。
在这篇文章中,页面布局,页面配置和通用布局被称为布局文件,它们的覆盖是一样的。
这类覆盖了默认或父主题的布局文件被称为覆盖布局文件。
关于自定义覆盖布局的例子
- 抑制方法调用(如果块里有取消原始调用的方法,覆盖就没有必要了。这种情况下,你可以通过在取消方法调用的位置添加布局文件来自定义布局。)
- 修改方法参数
- 使用
remove
属性取消块/容器的输出 - 为块和容器设置XML属性
- 移除块参数
- 修改并抑制句柄包容
- 移除所有句柄指令,通过声明一个空句柄覆盖布局文件
如何覆盖一个布局
覆盖base布局
在如下位置放置一个同名的布局文件:
<theme_dir>
|__/<Namespace_Module>
|__/layout
|__/override
|__/base
|--<layout1>.xml
|--<layout2>.xml
这些文件覆盖如下布局:
<module_dir>/view/frontend/layout/<layout1>.xml
<module_dir>/view/frontend/layout/<layout2>.xml
覆盖主题布局
在如下位置放置一个同名的布局文件:
<theme_dir>
|__/<Namespace_Module>
|__/layout
|__/override
|__/theme
|__/<Parent_Vendor>
|__/<parent_theme>
|--<layout1>.xml
|--<layout2>.xml
这些文件覆盖如下布局:
<parent_theme_dir>/<Namespace>_<Module>/layout/<layout1>.xml
<parent_theme_dir>/<Namespace>_<Module>/layout/<layout1>.xml
注意:要覆盖页面布局文件时将文件名'layout'替换为'page_layout'
自定义错误
虽然布局覆盖机制提供了极大的定制灵活性,它也可以进行逻辑相关的改变。我们强烈建议你不要做以下修改:
- 更改块名或别名。块的名字不应该被修改,块的别名也应该与父元素中的保持一致。
- 更改句柄继承。例如,你不应该修改页面类型的父句柄。
相关文章
电商网站开发服务。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
上一篇:Magento2如何扩展一个布局 下一篇:如何更新Magento插件