关于opencart模块应用中,js引用的一些思考

跟传统的最优的页面结构有所区别,opencart的js或者局部css引用,会在单独模块下引入。
一般,大家共识的最优的方案,即css在页面head部分引入,js在页面footer后面引入。

其实,这个问题很简单,就是opencart的扩展方式就是模块,即开即用,随时弃用。
一开始,我也忽略了这个问题。
我做模板时,按常规思路,把css全部在head部分引入,插件js,全部在footer文件里引入。
当我注意到浏览器控制台有报错时,我才想到,有些应用了插件的模块没有启用,js引入了,但是找不到对象。

再想想opencart官方demo的做法,一开始觉得不合常规的,现在也觉得很合理了。
虽然在页面中间引用js或css,不是最优化的方式,或者就是看起来很奇怪,但是,当不再使用这个模块时,页面也不会出现多余的js,优点就体现出来了。

当然,有全局公共的js文件,还是适合在head或者footer里引入的。
针对那些模块化的插件使用,还是在对应模块下引用为佳。

关于opencart新增一个布局模板的内容位置模块

2020年8月13日更新:此篇文章的广泛使用待验证,我在尝试添加左右两侧的布局时,能显示,但是无法保存布局中的更改。

做笔记,留给自己以后看。

默认的一些布局排版不够用,就需要新增自定义位置,实现定制化模块。
默认的就左右上下。如果布局中出现上中下,中间又分了左右,中间的左右可能又有上中下的布局。这样的需求很常见,然后布局就不够用了。

新增一个的布局位置,还是需要去前端和后台两个对应的文件夹下修改文件。
catalog文件夹下:

1、controller文件夹,common, 复制一个content_top, 例如重命名为content_body.
修改文件内ControllerCommonContentTop为ControllerCommonContentBody,并全文查找content_top, 修改为content_body(共计两处需要修改)。

2、仍然是以上文件夹内,打开home.php文件,在对应位置新增行content_body即可。

3、view文件夹,theme, 对应主题模板的文件夹内,template, common, 复制content_top, 重命名为content_body.

4、至于新增布局的放置位置,需要去对应模板里修改。
例如首页,在common文件夹下,打开home.twig文件,把content_body新增到需要的位置即可。

admin文件夹下:

1、language文件夹,对应的语言包内,design, layout.php文件, 新增一行text_content_body.

2、view文件夹,template, design, 打开layout_form.twig文件。
找到id=”module-content-top”的table,并复制一个,重命名为id=”module-content-body”,修改这个table里的content_top为content_body(共计两处);修改相关字符content-top为content-body(共计两处)。

回到后台,规划设计里面,布局排版,打开首页,就可以看到新增了一个内容主体,添加需要的模块进去即可。

关于opencart后台新增模块的一些说明

关于opencart的一些教程说明,旨在为自己提供个笔记。
我不是专业开发者,纯粹是外行,自己做一点点小小的定制。

模块里适合做前端产品展示的,可自由选择产品的,就是featured这个模块了。
其他几个模块,例如latest,bestseller,special等,规则是既定的,最新产品,就是最后添加的几个,热卖,就是销量最高的等等。
所以,需要自由选择,就是featured这个模块。

新增模块就是在featured的基础上。
需要分别在前端展示和后台编辑两个部分新增对应文件。
切记,模块可识别的命名方式为下划线的方式,连字符无法识别。

catalog文件夹下,按文件夹名称排序:
1、controller, extension, module文件夹内,复制一个featured文件,重命名为featured_latest。
打开文件,修改名称,将ControllerExtensionModuleFeatured,改为ControllerExtensionModuleFeaturedLatest,全文查找featured,修改为featured_latest。

2、language文件夹下,找到对应语言的文件夹,extension, module, 复制对应文件,并修改文件内对应标题名称即可。

3、view文件夹下,theme, 对应主题名称的文件夹下,template, extension, module,复制对应文件,修改名称,然后打开文件,将写好的HTML模块,按文件规则修改好即可。

admin文件夹下,按文件夹名称排序:
1、controller, extension, module文件夹内,复制一个featured文件,重命名为featured_latest。
打开文件,修改名称,将ControllerExtensionModuleFeatured,改为ControllerExtensionModuleFeaturedLatest,全文查找featured,修改为featured_latest。

2、language文件夹下,找到对应语言的文件夹,extension, module, 复制对应文件,并修改文件内对应标题名称即可。

3、view文件夹下,template, extension, module,复制对应文件,修改名称。

回到后台,扩展功能里,打开扩展功能子模块,下拉选项里选择模组,就可以找到新增的模块了。

关于OpenCart 报错“currency.php”

如果OpenCart网站后台报告如下错误:model/localisation/currency.php on line 141
这是由于OpenCart开启汇率自动更新,而OpenCart默认提供的汇率接口失效所导致的。只要关闭汇率自动更新即可解决该问题。

关闭汇率自动更新的方法如下:
在OpenCart后台“系统设置”中点击“网店设置”,在右侧对应网站列表的后方点击编辑按钮。
随后在新开页面中选择“本地参数”选项卡,将表单中“自动更新汇率”选项选择为“否”,最后保存即可。