有模块时为什么要使用主题?


9

在我的自定义模块中,我添加了文件

Vendor/Theme/view/layout/default.xml

我正在使用自定义模块中的模板/块/布局来覆盖网站的许多全局模板。我还将附加我自己的全局样式,该样式存在于该view/web模块的目录中。

我应该为此使用主题吗?有一种设计模式优于另一种设计模式的理由吗?例如。用完app/designapp/code吗?

Answers:


13

可以做任何你喜欢的,但如果它是正确的事情做的这是一个问题在这里。

模组

模块应该添加或更改网上商店的功能,并且应该/应该转移到其他Magento 2网上商店。模块可以具有自己的布局,模板和样式,并且可以更改常规布局,模板和样式(如果这对于模块的功能是必需的)。模块主要集中于单个功能,因此(相对)较小,这使得Magento 2网上商店有很多。

可以轻松地启用和禁用模块,这将导致它们添加或更改的特定功能出现或消失。它不应该引起整个站点的改变。

主题

主题会更改全球网上商店的布局,模板和样式,并且不应添加或删除任何功能。尽管打包(付费)主题可以包含特殊功能,但这通常是在与此主题相关的模块中完成的。主题应该是可以互换的,因此可以应用于任何Magento 2网上商店,但是Magento 2网上商店也可以轻松切换主题(例如,在多商店设置中可以有多个)。


因此,如果您问“在哪里用模板/块/布局覆盖网站的许多全局模板”,答案将是主题

同样,您可以做任何您想做的事,但是如果其他人将加入或接管开发,他/她将希望站点全局主题更改在主题中而不在模块中。当事情没有按预期完成时,这会减慢开发速度并使维护变得困难。


1
确实,我想以正确的方式做事。感谢有用的答案,我将开始将其中一些更改迁移到主题。
Daniel Thompson

3

这个答案是我认为这不是Magento的标准

何时使用主题作为布局和模板以及何时使用模块

主题

当您需要将更改放在一个地方时,需要在不同的商店或网站中显示更改的外观,并且您有多个主题,然后可以直接更改主题

模组

当您为需求开发任何模块或扩展时,如果您认为更改应该是全局的,则将布局和模板放入模块本身

我建议始终在模块中制作一个主副本,如果要根据需要进行更改,请复制主题并在模板中进行更改。

这样,您可以解决问题,例如如果主题更改,则模块文件也在那里

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.