opencart功能插件在系统中如何工作
2016-12-08 17:12
295 查看
opencart 是如何使用插件添加功能
opencart 是如何使用插件替换功能
在前文中有提到功能插件上传的格式与目录结构
一是以压缩方式 .ocmod.zip 上传安装
二是以 . ocmod.xml 文件上传安装
这两者都会有一个 xml 配置文件,在这xml文件配置可实现添加功能、替换功能
再次了解一下这上传的过程
\system\storage\modification\admin\controller\extension\installer.php
方法 upload() , 上传安装文件
方法 xml() , 将上成功的 xml 文件内容写入表 modification 中
完成这些过程后系统会提示上传成功
上传成功后系统还没有将功能应用上,还需要到 扩展功能 -> 代码调整 下刷新调整
这模块下这么一句话 " 任何时候想启用/禁用或删除代码调整,只需要点击刷新按钮来重建代码调整缓存! "
在系统目录下有这么一个目录,这一个目录就是用户代码的调整或者说替换
\system\storage\modification\
比如前文我说到FTP无法使有可安将另一插件QuickFix+OC2.2.0.0
再我安装一个导入导出产品数据的功能
安装了这两插件功能后在这目录会生成一些文件
\system\storage\modification\admin\controller\extension\installer.php
这个文件新添加了一个方法 localcopy() ,并替换了ftp 上传的功能
\system\storage\modification\admin\controller\common\column_left.php
这个文件对界面功能菜单新添加了一个导入导出的入口
这两个是刷新重建代码的文件
这两个文件在 \admin 对应目录都是存在的,当系统需要使用到这两个文件时会优先载入
\system\storage\modification 目录下对应的文件
可注意到 \system\startup.php 这个文件中有这一个函数 function
modification($filename)
这是两个配置文件
<modification>
<name>Local copy OCMOD by iSenseLabs</name>
<version>1.3</version>
<link>http://isenselabs.com</link>
<author>iSenseLabs</author>
<code>isensealabs_quickfix_ocmod</code>
<file path="admin/controller/extension/installer.php">
<operation error="skip">
<search ><![CDATA['url' => str_replace('&', '&', $this->url->link('extension/installer/ftp', 'token=' . $this->session->data['token'],]]></search>
<add position="replace"><![CDATA['url' => str_replace('&', '&', $this->url->link('extension/installer/localcopy', 'token=' . $this->session->data['token'],]]></add>
</operation>
<operation>
<search><![CDATA[public function unzip() {]]></search>
<add position="before"><![CDATA[
public function localcopy() {
...
}]]></add>
</operation>
</file>
</modification>
<modification>
<name>Export/Import Tool (V3.7) for OpenCart 2.x</name>
<code>Export/Import Tool (V3.7) for OpenCart 2.x</code>
<version>2.x-3.6</version>
<author>mhccorp.com</author>
<file path="admin/view/template/common/menu.tpl">
<operation error="skip">
<search><![CDATA[<li><a href="<?php echo $backup; ?>"><?php echo $text_backup; ?></a></li>]]></search>
<add position="replace"><![CDATA[<li><a href="<?php echo $backup; ?>"><?php echo $text_backup; ?></a></li><li><a href="<?php echo $export_import; ?>"><?php echo $text_export_import; ?></a></li>]]></add>
</operation>
</file>
<file path="admin/controller/common/column_left.php">
<operation error="skip">
<search><![CDATA[if ($this->user->hasPermission('access', 'tool/log')) {]]></search>
<add position="before"><![CDATA[
if ($this->user->hasPermission('access', 'tool/export_import')) {
$tool[] = array(
'name'
=> $this->language->get('text_export_import'),
'href' => $this->url->link('tool/export_import', 'token=' . $this->session->data['token'], true),
'children' => array()
);
}
]]></add>
</operation>
</file>
<file path="admin/language/*/common/column_left.php">
<operation error="skip">
<search><![CDATA[$_['text_backup']]]></search>
<add position="after"><![CDATA[
$_['text_export_import'] = 'Export / Import';
]]></add>
</operation>
</file>
</modification>
file标签 path属性指定代码调整文件
operation 标签是调整的动作
search 标签是查找调整的位置
add 标签添加代码具体动作 before 、after、replace
opencart 是如何使用插件替换功能
在前文中有提到功能插件上传的格式与目录结构
一是以压缩方式 .ocmod.zip 上传安装
二是以 . ocmod.xml 文件上传安装
这两者都会有一个 xml 配置文件,在这xml文件配置可实现添加功能、替换功能
再次了解一下这上传的过程
\system\storage\modification\admin\controller\extension\installer.php
方法 upload() , 上传安装文件
方法 xml() , 将上成功的 xml 文件内容写入表 modification 中
完成这些过程后系统会提示上传成功
上传成功后系统还没有将功能应用上,还需要到 扩展功能 -> 代码调整 下刷新调整
这模块下这么一句话 " 任何时候想启用/禁用或删除代码调整,只需要点击刷新按钮来重建代码调整缓存! "
在系统目录下有这么一个目录,这一个目录就是用户代码的调整或者说替换
\system\storage\modification\
比如前文我说到FTP无法使有可安将另一插件QuickFix+OC2.2.0.0
再我安装一个导入导出产品数据的功能
安装了这两插件功能后在这目录会生成一些文件
\system\storage\modification\admin\controller\extension\installer.php
这个文件新添加了一个方法 localcopy() ,并替换了ftp 上传的功能
\system\storage\modification\admin\controller\common\column_left.php
这个文件对界面功能菜单新添加了一个导入导出的入口
这两个是刷新重建代码的文件
这两个文件在 \admin 对应目录都是存在的,当系统需要使用到这两个文件时会优先载入
\system\storage\modification 目录下对应的文件
可注意到 \system\startup.php 这个文件中有这一个函数 function
modification($filename)
这是两个配置文件
<modification>
<name>Local copy OCMOD by iSenseLabs</name>
<version>1.3</version>
<link>http://isenselabs.com</link>
<author>iSenseLabs</author>
<code>isensealabs_quickfix_ocmod</code>
<file path="admin/controller/extension/installer.php">
<operation error="skip">
<search ><![CDATA['url' => str_replace('&', '&', $this->url->link('extension/installer/ftp', 'token=' . $this->session->data['token'],]]></search>
<add position="replace"><![CDATA['url' => str_replace('&', '&', $this->url->link('extension/installer/localcopy', 'token=' . $this->session->data['token'],]]></add>
</operation>
<operation>
<search><![CDATA[public function unzip() {]]></search>
<add position="before"><![CDATA[
public function localcopy() {
...
}]]></add>
</operation>
</file>
</modification>
<modification>
<name>Export/Import Tool (V3.7) for OpenCart 2.x</name>
<code>Export/Import Tool (V3.7) for OpenCart 2.x</code>
<version>2.x-3.6</version>
<author>mhccorp.com</author>
<file path="admin/view/template/common/menu.tpl">
<operation error="skip">
<search><![CDATA[<li><a href="<?php echo $backup; ?>"><?php echo $text_backup; ?></a></li>]]></search>
<add position="replace"><![CDATA[<li><a href="<?php echo $backup; ?>"><?php echo $text_backup; ?></a></li><li><a href="<?php echo $export_import; ?>"><?php echo $text_export_import; ?></a></li>]]></add>
</operation>
</file>
<file path="admin/controller/common/column_left.php">
<operation error="skip">
<search><![CDATA[if ($this->user->hasPermission('access', 'tool/log')) {]]></search>
<add position="before"><![CDATA[
if ($this->user->hasPermission('access', 'tool/export_import')) {
$tool[] = array(
'name'
=> $this->language->get('text_export_import'),
'href' => $this->url->link('tool/export_import', 'token=' . $this->session->data['token'], true),
'children' => array()
);
}
]]></add>
</operation>
</file>
<file path="admin/language/*/common/column_left.php">
<operation error="skip">
<search><![CDATA[$_['text_backup']]]></search>
<add position="after"><![CDATA[
$_['text_export_import'] = 'Export / Import';
]]></add>
</operation>
</file>
</modification>
file标签 path属性指定代码调整文件
operation 标签是调整的动作
search 标签是查找调整的位置
add 标签添加代码具体动作 before 、after、replace
相关文章推荐
- OpenCart布局(Layout)系统是如何工作的?
- OpenCart布局(Layout)系统是如何工作的?
- OpenCart布局(Layout)系统是如何工作的?
- 如何减少因原有系统主体功能模块调整带来的高风险?
- How Plugins Work 插件如何工作
- 如何提高功能自动化工具在实际工作中的覆盖
- 解析智能抄表工作系统是如何运作的
- 如何给自己的程序增加插件功能-用DLL做插件
- 企业级服务器设计与实现经验之插件系统--功能插件
- 如何做好WMS系统的准备工作
- 利用邮件跟踪功能作好系统维护工作
- 如何使用Joomla用户事件的插件系统 【转】
- FootStep 40、如何调用S60的系统摄像头功能进行拍照与摄像?
- 如何关闭系统文件保护功能
- 由成幻OnlineJudge学习如何做自己的Acm-Icpc在线评判系统-2.一些准备工作,以及文章约定
- 如何提高Linux系统命令行的工作效率
- How Do Windows NT System Calls REALLY Work?--Windows NT的系统调用究竟是如何工作的?
- 如何确定系统启用了32 位还是64位 Solaris 功能
- 如何提高功能自动化工具在实际工作中的覆盖
- 如何在锐起无盘系统中设置所有工作禁止u盘的使用?