本文目录:
- 1、如何使用OpenCart 2.x Event事件系统
- 2、如何在linux环境下安装opencart安装设置
- 3、请问有人在用shopify吗? 感觉怎么样?有什么建议?
- 4、opencart 2.1.0.2 怎么设置中文
- 5、如何安装opencart批量上传插件
- 6、opencart这个程序怎么样,主要的优缺点在哪里?
如何使用OpenCart 2.x Event事件系统
OpenCart 2.x 包含很多新特性,其中之一就是专为开发者提供的事件系统,Event
System。它允许你在不修改原有系统代码的基础上(
当然也不使用vQmod或者是2.x版本新增的OCMOD修改代码,这样可以规避代码冲突的风险。
),规定某些特定操作执行的时候,触发特定的动作。比如说:在用户下单或是注册的时候,你可以使用事件系统向后台发送通知信息。
使用原理:
使用事件系统需要两个步骤:
注册事件处理器。
接入事件处理器。
在控制器文件中注册事件处理器十分简单。你可以使用一个包含所有方法的单独文件作为事件处理器
,也可以使用在控制器里分出一个方法。注册事件处理器你需要使用 extension/event 模型(OpenCart 2.0.1+)或者
tool/event 模型(OpenCart 2.0.0.0)。 extension/event 模型有两个方法:
addEvent($code, $trigger, $action) 注册事件 和 deleteEvent($code)
删除事件。你可以在你开发插件时,在intsall()方法里面使用addEvent。在卸载插件的方法 uninstall()中使用
deleteEvent。
$code 参数用于组合你的事件处理器。
$trigger 参数用于规定触发时的动作参数 .这里有许多预定的opencart系统触发参数: .
$action 参数用于定位你的事件处理器。它通常是一组标准的控制器路由,比如:module/mymodule/on_user_created。
实例
环境:opencart 2.0.1+。
假设我们要开发一个名叫“My Module”的模块。
后台控制器: admin/controller/module/mymodule.php .
前台文件: catalog/controller/module/mymodule.php .
需求:当有用户注册或是删除一个店铺的时候,发送一份email给网站管理员。触发的参数我们可以定义为 pre.admin.store.delete 和 post.customer.add。
首先我们可以在我们的模块中使用 install() 方法:
public function install() {
$this-load-model('extension/event');
$this-model_extension_event-addEvent('mymodule', 'pre.admin.store.delete', 'module/mymodule/on_store_delete');
$this-model_extension_event-addEvent('mymodule', 'post.customer.add', 'module/mymodule/on_customer_add');
}
卸载模块的流程方法 uninstall 如下:
public function install() {
$this-load-model('extension/event');
$this-model_extension_event-addEvent('mymodule', 'pre.admin.store.delete', 'module/mymodule/on_store_delete');
$this-model_extension_event-addEvent('mymodule', 'post.customer.add', 'module/mymodule/on_customer_add');
}
接下来我们接入事件处理器。`pre.admin.store.delete`
处理后台事件,所以他的处理器必须接入admin/中的控制器文件中。当店铺被删除时,我们需要一个处理器方法来发送通知给后台管理员。以 pre.
开头的事件表示在控制器方法执行前触发,以 post.
开头的事件则表示控制器方法执行之后触发。同时,我们也想要在我们的信息中包含店铺地址的域名,如果先执行完删除店铺的操作,那么我们就无法得到被删店铺
的域名了。
事件处理器:
public function on_store_delete($store_id) {
$this-load-model('setting/store');
$store_info = $this-model_setting_store-getStore($store_id);
$admin_mail = $this-config-get('config_email');
mail($admin_mail, "A store has been deleted", "The store " . $store_info['url'] . " was deleted.");
}
post.customer.add 需要在前台控制器catalog中写入事件处理器。当有新用户注册时,通知后台管理员。类似的方法如下:
public function on_customer_add($customer_id) {
$this-load-model('account/customer');
$customer_info = $this-model_account_customer-getCustomer($customer_id);
$admin_mail = $this-config-get('config_email');
mail($admin_mail, "New Customer", "A new customer has just
registered with the following e-mail: " . $customer_info['email']);
}
注意: 我们使用 mail() 函数发送邮件真实情况,我们可能要用到 OpenCart 的 Mail 类 发送 e-mails。
最后的代码如下:
admin/controller/module/mymodule.php
?php
class ControllerModuleMyModule extends Controller
{
public function install() {
$this-load-model('extension/event');
$this-model_extension_event-addEvent('mymodule', 'pre.admin.store.delete', 'module/mymodule/on_store_delete');
$this-model_extension_event-addEvent('mymodule', 'post.customer.add', 'module/mymodule/on_customer_add');
}
public function uninstall() {
$this-load-model('extension/event');
$this-model_extension_event-deleteEvent('mymodule');
}
public function on_store_delete($store_id) {
$this-load-model('setting/store');
$store_info = $this-model_setting_store-getStore($store_id);
$admin_mail = $this-config-get('config_email');
mail($admin_mail, "A store has been deleted", "The store " . $store_info['url'] . " was deleted.");
}
}
catalog/controller/module/mymodule.php
?php
class ControllerModuleMyModule extends Controller {
public function on_customer_add($customer_id) {
$this-load-model('account/customer');
$customer_info = $this-model_account_customer-getCustomer($customer_id);
$admin_mail = $this-config-get('config_email');
mail($admin_mail, "New Customer", "A new customer has just
registered with the following e-mail: " . $customer_info['email']);
}
}
进阶
除了上述的标准用法,事件系统也能用做创建跨模块接口。使用Event 对象
($this-event),你可以在任何地方触发任何的事件。你可以使用它触发你自定义的事件。设想你正在开发一个用户评论的模块。你可以在客
户发送评论的时候触发一个事件,这就允许其他的模块开发者为你的事件处理期创建自定义的处理方法,而不需要使用vQmod或者OCMOD来修改代码。它可
以确保Opencart变得更加稳定。
PS:Event类定义在 system/engine/event.php 文件中。
如何在linux环境下安装opencart安装设置
可以的,opencart的结构本身就是在linux的环境下开发的,兼容性会比window下面的php环境的兼容性好。
请问有人在用shopify吗? 感觉怎么样?有什么建议?
最近刚注册了个,尝试运营中。Shopify是基于SaaS的电商服务软件,所以不需要安装,也不用担心升级、维护、安全、程序开发、服务器相关配置等一系列问题,所以总体来说还是很方便的。
Shopify的前台页面可以根据自己需要翻译成任何语言,但后台仅支持英文。Shopify站点的运营、管理,也同样可以选择使用第三方ERP工具,不仅能解决英语基础薄弱的问题,关键是能实现集成化、系统化的管理流程。比如当前市面上的主流ERP店小秘已对接Shopify,一个账号可以同时授权多个Shopify站点,支持在店小秘完成打单、发货,发货后运单号自动回传到Shopify平台。也支持订单业绩汇总、利润计算等相关数据支持,有关仓库、采购、供货商管理等,也已实现一体化的管理流程。
opencart 2.1.0.2 怎么设置中文
Opencart是一款比较流行的电子商务平台,通过他的名称也能看得出是一款地道的电商平台,但是默认语言为英文,官网上有简体中文版本的翻译文件,但是不知道如何去更新,只能google,但是找到的方法都不奏效,更有误导的作用,只好自己去官网找资料,解决了此类问题。以下是解决办法,100%解决,保证正确——3mc2一手文章!!opencart1、下载简体中文包;2、在adminlanguage中新建一个zh-CN文件夹,将语言包中的admin目录中的文件放置于此文件夹中;3、在cataloglanguage中新建一个zh-CN文件夹,将语言包中的catlog中的文件放置于此文件家中;opencart简体中文语言设置代码如下:Language Name: Chinese SimplifiedCode: zh-CNLocale: zh,zh-hk,zh-cn,zh-cn.UTF-8,cn-gb,chineseImage: cn.pngDirectory: zh-CNStatus: EnabledSort Order: 15、在System - Settings - Your Store (Default) - Local中选择如下选项,保存即可显示简体中文页面:Opencart简体中文语言设置这里完整结束简体中文语言设置:Opencart简体中文语言设置成功
如何安装opencart批量上传插件
opencart国外的一个开源的外贸程序,这两天才接触到,在安装这个vqmod插件的时候,遇到了一点小问题,于是跟大家分享出来,先转发下大神给出的安装过程。然后说下菜鸟容易出现的误区!
什么是vqmod?vQmod 全称是 Virtual File Modification System ,又称快速虚拟MOD。是一个虚拟覆盖系统的设计,以避免原有系统核心文件被修改。具体了解可以去网上搜索,总之这个vqmod是个很重要的东西,当然你可以不使用,但是如果你遇到一个opencart插件声明需要vqmod的时候,你可以返回来看看这篇文章!
下载: 找到opencart的对应版本
自动安装:
备份网站数据及数据库,虽说没有兼容危险,还是以防万一好
解压上传vqmod文件夹到opencart网站根目录下
确保 vqmod 和 vqmod/vqcache/ 可写 (755或777) 一般755就行了,这个地方我认为755足矣。
确保 /index.php和/admin/index.php 可写
访问 http://你的域名/vqmod/install/ 安装
提示:VQMOD HAS BEEN INSTALLED ON YOUR SYSTEM! 则安装成功!
我当初看的一个人的帖子,我只看到了LED,后面没有,我以为没成功呢,就一直反复安装,结果还是不行,最后我问了大家,复制我安装后出现的代码,大家说是成功了的,只要不出现什么admin啥的就没事。
如果不是提示成功,请检查文件读写权限,或者手动安装!
手动安装:(我个人认为,几乎自动安装都能成功,只要权限设置好)
前期步骤和上面一样,打开 /index.php,然后搜索:
// Startup
require_once(DIR_SYSTEM . 'startup.php');
// Application Classes
require_once(DIR_SYSTEM . 'library/customer.php');
require_once(DIR_SYSTEM . 'library/currency.php');
require_once(DIR_SYSTEM . 'library/tax.php');
require_once(DIR_SYSTEM . 'library/weight.php');
require_once(DIR_SYSTEM . 'library/length.php');
require_once(DIR_SYSTEM . 'library/cart.php');
require_once(DIR_SYSTEM . 'library/affiliate.php');
替换为:
// vQmod
require_once('./vqmod/vqmod.php');
$vqmod = new VQMod();
// VQMODDED Startup
require_once($vqmod-modCheck(DIR_SYSTEM . 'startup.php'));
// Application Classes
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/customer.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/tax.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/length.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/cart.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/affiliate.php'));
打开 /admin/index.php 搜索:
// Startup
require_once(DIR_SYSTEM . 'startup.php');
// Application Classes
require_once(DIR_SYSTEM . 'library/currency.php');
require_once(DIR_SYSTEM . 'library/user.php'));
require_once(DIR_SYSTEM . 'library/weight.php');
require_once(DIR_SYSTEM . 'library/length.php');
替换为:
// vQmod
require_once('../vqmod/vqmod.php');
$vqmod = new VQMod();
// VQMODDED Startup
require_once($vqmod-modCheck(DIR_SYSTEM . 'startup.php'));
// Application Classes
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/currency.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/user.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/weight.php'));
require_once($vqmod-modCheck(DIR_SYSTEM . 'library/length.php'));
然后检查 /vqmod/vqcache/下有没有文件,有的话则可以开始用需要vqmod支持的插件进行测试!
注意:
1,/vqmod/install 文件夹不能删除
2,每次更新opencart的时候需要重新安装vqmod
3,官网说更新vqmod是没有风险的,但是建议大家做好备份工作!
opencart这个程序怎么样,主要的优缺点在哪里?
很不错的,速度很快,SEO优化很好,一般网站建好后,做好内容更新,对于2,3百万的关键词,自己上首页的。而且代码简单,适合二次开发。你可以去看看,有关于opencart的教程
【opencart怎么样】的内容来源于互联网,如引用不当,请联系我们修改。
网友留言: