在安装插件过程中会执行插件根目录上的Install.php 文件进行初始化。卸载插件会执行Uninstall.php,进行卸载事件处理。在系统中添加插件更新配置,会触发系统更新配置写入数据库中。修改完毕配置后需要手动取插件列表更新配置或者卸载重新安装,不然配置是不会生效的,
进入后台 - 系统管理 - 应用管理 - 设计新插件
创建成功后会在 根目录的 addons 目录下生成插件文件
请在创建的模块下的 common/backend.php 的各自应用文件内手动填写,安装后会自动注册进系统权限管理和菜单配置
例如:
$common = file_exists(__DIR__ . '/common.php') ? require __DIR__ . '/common.php' : [];
$backend = [
// ----------------------- 菜单配置 ----------------------- //
'config' => [
// 菜单配置
'menu' => [
'location' => 'default', // default:系统顶部菜单;addons:应用中心菜单
'icon' => 'fa fa-puzzle-piece',
],
// 子模块配置
'modules' => [
],
],
// ----------------------- 快捷入口 ----------------------- //
'cover' => [
],
// ----------------------- 菜单配置 ----------------------- //
'menu' => [
[
'title' => '股东管理',
'route' => 'default/index',
'icon' => '',
'params' => [
],
'child' => [
],
],
[
'title' => '股东等级',
'route' => 'level/index',
'icon' => '',
'params' => [
],
'child' => [
],
],
[
'title' => '提成明细',
'route' => 'commission/index',
'icon' => '',
'params' => [
],
'child' => [
],
],
[
'title' => '基础配置',
'route' => 'setting/index',
'icon' => '',
'params' => [
],
'child' => [
],
],
],
// ----------------------- 权限配置 ----------------------- //
'authItem' => [
[
'title' => '所有权限',
'name' => '',
],
],
];
return array_merge($common,$backend);
请在创建的模块下的 common/api.php 的各自应用文件内手动填写,安装后会自动注册进系统前端UR和其他配置
例如:
// ----------------------- 菜单配置 ----------------------- //
'config' => [
// 菜单配置
'menu' => [
'location' => 'default', // default:系统顶部菜单;addons:应用中心菜单
'icon' => 'fa fa-puzzle-piece',
],
// 子模块配置
'modules' => [
'v1' => [
'class' => 'addons\Boss\api\modules\v1\Module',
],
'v2' => [
'class' => 'addons\Boss\api\modules\v2\Module',
],
],
],
请在创建的模块下的 common/common.php 的各自应用文件内手动填写,安装后会自动注册进系统API链接和处理事件
return [
// ----------------------- API链接 ----------------------- //
'links' => [
[
'title' => '分红详情',
'route' => '/addons/boss/index',
'icon' => '',
'params' => []
],
[
'title' => '分红权益',
'route' => '/addons/boss/rights',
'icon' => '',
'params' => []
],
],
// ----------------------- 事件处理 ----------------------- //
'events' => [
[
'event_name' => 'order_pay',
'listeners' => [
'addons\Boss\common\listeners\OrderPaidListener',
]
],
[
'event_name' => 'order_finish',//订单完成
'listeners' => [
'addons\Boss\common\listeners\OrderFinishListener',
]
]
],
];
查看设置权限:系统管理->用户权限->角色管理->创建/编辑
可以用系统自带的开发工具插件生成对应的数据迁移文件,并遵循系统规范进行数据安装
默认继承插件各自内自动生成的 BaseController,如果自己有特殊需求可以修改继承
默认 BaseController 渲染的视图会自动载入左侧菜单,如果不需要请在 BaseController 里加入以下代码
/**
* @var string
*/
public $layout = "@backend/views/layouts/main";
注意:开发 api 的时候能使用 restful 的基类,但是不受路由规则管辖
api\controllers\OnAuthController,注意Curd是改过的,不想用系统的Curd可直接继承 api\controllers\ActiveController,如果设置控制器内方法不需要验证请设置 authOptional 属性api\controllers\UserAuthController注意:开发 merapi 的时候能使用 restful 的基类,但是不受路由规则管辖
merapi\controllers\OnAuthController,注意Curd是改过的,不想用系统的Curd可直接继承 merapi\controllers\ActiveController,如果设置控制器内方法不需要验证请设置 authOptional 属性merapi\controllers\UserAuthController完全可以根据Qimall正常的开发流程去开发对应的控制器、视图、插件内的应用
具体前缀入口看你是默认的系统配置还是独立域名
// 域名/插件名称/控制器/方法
域名/tiny-shop/index/index
对应路径:addons/TinyShop/frontend/controllers/IndexController
// 域名/backend/插件名称/控制器/方法
域名/backend/tiny-shop/index/index
对应路径:addons/TinyShop/backend/controllers/IndexController
// 域名/api/插件名称/插件模块/控制器/方法
域名/api/tiny-shop/v1/index/index
对应路径:addons/TinyShop/api/modules/v1/controllers/IndexController
...