我正在使用OC 2.1开发一个OpenCart商店,我很难理解在控制器级别创建自定义更改的最佳解决方案。
下面是一个简化的例子,向您展示我想知道的内容:
我想修改我的页眉。我正在实现的图形设计对我的帐户链接使用了不同的编写方式,这取决于用户是否已经登录。这当然是一个非常简单的改变,所以以下是我的想法:
我可以编辑我的新模板的header.tpl
文件以使用:
<?php echo $logged ? $text_account_signed : $text_account; ?>
这需要更改语言文件,并且该文件位于模板文件夹之外。为了使这个例子不那么复杂,我将省略语言问题。
但是,要创建一个更MVC的解决方案,我应该在catalog/controller/header.php
文件中进行更改,不是吗?不幸的是,该文件在模板文件夹之外,因此在更新的情况下,更改将丢失或需要手动修复。
然而,我可以用extension.ocmod.xml
文件创建一个扩展名,这将对控制器header.php
文件进行更改,并且对于未来的更新来说会更安全(但不确定是否100%sage)。但我想,扩展的数量和/或创建它们的复杂性会极大地影响我的项目时间。这让我很想编辑OpenCart的源代码,让我未来的自己稍后担心它。但我关心这个家伙,我相信他在某个时候会因此恨我的。
所以,我真正的问题是:有没有一种方法可以在控制器级别创建OpenCart修改,而不会破坏未来的更新?
关于修改现有的Controller, Models, Languages
是的,您需要使用vQmod或OCMOD,对于template
是的,可以根据需要创建自己的模板。别无选择。
如果您使用的是vQmod或OCMOD,那么您不必担心更新,因为出现问题的可能性较小(问题可能只发生在主要更新中)。
对于vQmod,还有其他简单的工具,如vQgen和vQmanager可用的
对于Opencart总体一般信息