对于我的个人购物网站,我试图覆盖默认luma主题的一些XML和PHTML文件.我只是直接找到vendor / theme-frontend-luma文件夹。
只是想知道我以后何时进行Magento升级我的自定义更改是否会被删除?
最新回答
- 2019-12-51 #
对于我的个人购物网站,我试图覆盖默认luma主题的一些XML和PHTML文件.我只是直接找到vendor / theme-frontend-luma文件夹。
只是想知道我以后何时进行Magento升级我的自定义更改是否会被删除?
在Magento 2中有几种不同的方法可以覆盖模板.选项是
Path (theme)
Layout (theme, module)
Plugin (module)
如果要覆盖主题的模板,则只需将主题放在该主题中模块目录的相应路径中.例如,如果你想覆盖
布局Magento/Wishlist/view/frontend/templates/view.phtml
你可以在{theme_dir}/Magento_Wishlist/view/frontend/templates/view.phtml
中添加你自己的view.php文件 并且将使用该模板而无需更改任何xml文件.在这种情况下,擦除模板覆盖的唯一方法是更新或其他模块是否更改了定义它的块的模板属性,或者另一个模块或扩展是否进入插件路由。对于此选项,您只需覆盖块的模板属性.这样做意味着如果另一个模块尝试对同一个块执行相同的操作并且在您的xml之后合并它们,如果magento更改了块的名称,或者布局文件被重命名,那么您的更改将被擦除. / p> 插件
插件会覆盖传递给块类的toHtml方法的模板.这可能是最不常规的方法,也是最难调试的,但它可以完成这项工作.如果定义该模板的块上的class属性已更改,或者如果另一个模块也尝试以相同方式覆盖该模板,则可能会覆盖您的模板。
总结......是的,这是可能的. Magento的更新不太可能会破坏您对模板的覆盖.您更关心的应该是其他第三方模块。