niushop单商户V4版插件设计与开发

yumo6666小时前技术文章2

addon 插件目录) ├─alipay 插件名称 │ ├─ shop shop模块 │ │ ├─controller 控制器 │ │ ├─view 视图 │ │ │ ├─config 配置文件 │ │ ├─diy_view.php 自定义模板配置文件(必存在) │ │ ├─event.php 事件配置文件(必存在) │ │ ├─info.php 插件配置文件(必存在) │ │ ├─menu_shop.php 店铺端菜单配置(必存在) │ │ │ │─data 插件数据 │ │ │ ├─event 相关事件文件(钩子) │ │ ├─Install.php 安装插件执行事件(必存在) │ │ ├─UnInstall.php 卸载插件执行事件(必存在) │ │ ├─Pay.php 对应插件执行事件 │ ├─model 插件逻辑模块 │ ├─icon.png 插件logo

插件开发流程

下面以支付宝支付插件的开发流程进行讲解

  1. 设计插件名称,例如支付宝支付插件名称alipay.
  2. 添加插件目录,插件目录在addon文件夹下面,也就是addon/alipay.
  3. 设计插件logo,插件logo统一命名为icon.png,为统一样式插件logo推荐使用66*66的png图像,将图像放在alipay文件夹下面,也就是addon/alipay/icon.png。
  4. 创建插件的配置文件,首先创建配置文件夹config,也就是addon/config;其次创建基础配置文件diy_view.php,event.php,info.php,menu_shop.php。下面针对这几个文件的书写做一下说明。
  5. diy_view.php 模板与链接配置文件,里面有三项配置
  6. template:模板配置,如果当前插件有自定义的配置页面需要整体化配置可以在这里配置。
  7. util:自定义组件配置,如果当前插件需要在自定义页面中进行配置展示,可以开发,比如拼团需要在首页显示拼团专区等等。
  8. link:接设置,如果当前插件需要通过其他页面进行快捷跳转就要注册对应的链接 ,这样配置对应链接就可以显示,例如拼团专区的链接需要其他页面跳转
  9. 下面是拼团插件的配置:return [ 'template' => [ ], 'util' => [ [ 'name' => 'PINTUAN_LIST', 'title' => '拼团', 'type' => 'OTHER', 'controller' => 'Pintuan', 'value' => '{"sources" : "default", "categoryId" : 0, "goodsCount" : "6", "goodsId": [], "style": 1, "backgroundColor": "", "padding": 10, "list": {"imageUrl": "","title": "拼团专区"}, "listMore": {"imageUrl": "","title": "好友都在拼"}, "titleTextColor": "#000", "defaultTitleTextColor": "#000", "moreTextColor": "#858585", "defaultMoreTextColor": "#858585"}', 'sort' => '10000', 'support_diy_view' => '', 'max_count' => 0 ] ], 'link' => [ [ 'name' => 'PINTUAN', 'title' => '拼团', 'parent' => 'MARKETING_LINK', 'wap_url' => '', 'web_url' => '', 'sort' => 0, 'child_list' => [ [ 'name' => 'PINTUAN_PREFECTURE', 'title' => '拼团专区', 'parent' => '', 'wap_url' => '/promotionpages/pintuan/list/list', 'web_url' => '', 'sort' => 0 ], [ 'name' => 'MY_PINTUAN', 'title' => '我的拼团', 'parent' => '', 'wap_url' => '/promotionpages/pintuan/my_spell/my_spell', 'web_url' => '', 'sort' => 0 ], ] ] ], ]; 注意如果没有配置也要配置相应的空数组return [ 'template' => [ ], 'util' => [ ], 'link' => [ ], ];
  10. event.php 事件配置文件,监听事件会在系统启动后自动加载,同时存入缓存,系统更新或者安装插件时进行刷新,插件功能有自身内部功能与对外处理或者实现的功能,对内完成的功能可以通过插件本身的菜单或者api接口进行实现,比如拼团,内部功能就行拼团推广,建立团队,创建拼团订单等,实现的功能就是支付之后判断是否成团等等。支付宝支付,内部功能是支付宝支付配置相关,实现的功能就是支付方式展示,支付,支付的同步回调,支付的异步回调。而事件就是实现对应的方法,早期系统命名为钩子。下面说明支付宝支付注册的事件

return [ 'bind' => [ ], 'listen' => [ //支付异步回调 'PayNotify' => [ 'addon\alipay\event\PayNotify' ], //支付方式,后台查询 'PayType' => [ 'addon\alipay\event\PayType' ], //支付,前台应用 'Pay' => [ 'addon\alipay\event\Pay' ], //支付,关闭支付 'PayClose' => [ 'addon\alipay\event\PayClose' ], //支付,原路退款 'PayRefund' => [ 'addon\alipay\event\PayRefund' ], //支付,转账 'PayTransfer' => [ 'addon\alipay\event\PayTransfer' ], //支付,转账方式 'TransferType' => [ 'addon\alipay\event\TransferType' ] ], 'subscribe' => [ ], ];

默认文件书写: return [ 'bind' => [ ], 'listen' => [ ], 'subscribe' => [ ], ];

通过上述配置显示支付宝支付实现了支付回调,支付方式查询,支付方法,支付退款,支付关闭,支付转账功能,这样系统设计人员会针对不同体系的功能设计相应的事件接口,对应的支付插件开发人员只要实现对应的支付事件就可以,不用了解系统内部调用。注意每一个事件的实现都是注册相应的类文件,类文件放在对应插件的event目录,例如支付宝支付实现的类都放在addon/alipay/event。

7. info.php 插件基础配置文件,例如支付宝支付

return [ 'name' => 'alipay', 'title' => '支付宝支付', 'description' => '支付宝支付功能', 'type' => 'system', //插件类型 system :系统插件(自动安装), promotion:营销插件 tool:工具插件 'status' => 1, 'author' => '', 'version' => '1.0.9', 'version_no' => '202007130001', 'content' => '', ];

说明:name代表插件名称与插件目录一致,title代表插件中文名称,description代表插件简介,type代表插件类型,author代表作者,version代表插件版本编码,version_no代表插件序列号,插件升级会按照序列号判断,content代表插件说明

相关文章

《about face3 -交互设计精髓》读书笔记之控件篇

来人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。写这篇《aboutface3-交互设计精髓》读书笔记之控件篇,其实初衷是想恶补一下自己关于控件的知识。因为之前的工作中...

GitHub精选 | 可视化设计基础功能插件集合

《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个可视化设计所需要的基础功能插件集合——report-designer。report-d...

以某企业IM产品为例,选人控件设计的反思与总结

在一些业务场景中需要选择相应的人员,将人员展现出来供用户选择的控件即为选人控件。最近在负责某企业IM产品移动端的选人控件改版,下面针对改版中遇到的人数上限问题和选自己的问题进行反思与总结。一、人数上限...

一文读懂筛选控件设计_筛选按钮在哪个选项卡

筛选的作用是缩小展示范围,筛选控件有时会用于“频道切换”。比如内容型或电商产品,用tab切换不同频道,每个频道内有自己的形态。而到了 B 端产品,如一个 CRM 系统当中,筛选的逻辑比移动端的复杂,有...

听说设计界最强插件合集都在这里了,喜欢摸鱼的你赶紧来看看吧

听说设计界最强插件合集都在这里了,它包含超多插件,抠像、磨皮、光斑、光效、DR2.5美工神器等等,内容超级丰富。·它可以一键安装超多插件,需要哪个直接勾选,点击开始即可。·再回到PS打开窗口,在扩展功...

界面设计之路,自定义控件,不一样的单选列表框

一般来说,在项目中,基于Qt进行界面的开发,通常是使用Qt的基础控件,稍微复杂的界面,可以组合Qt的基础控件来实现,而外观,则可以通过更改样式来满足需求。但是,最近的项目中,要求实现的界面样式,仅仅通...