后台管理系统ConsoleHtml
1.在插件目录下创建文件admin/listen/ConsoleHtml.php控制台绑定html事件,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class ConsoleHtml
{
public function handle()
{
$html['header'] = '定义你的css文件';
$html['content'] = '这是我在OneKeyAdmin里使用的第一个事件~~';
$html['footer'] = '定义你的JS文件 ';
return $html;
}
}
~~~
2.已绑定控制台页面,“这是我在OneKeyAdmin里使用的第一个事件”;
后台管理系统CommonGlobal
1.在插件目录下创建文件admin/listen/CommonGlobal.php模板全局变量,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class CommonGlobal
{
public function handle()
{
$global = [];
$global['ceshi'] = '这是后台模板全局变量';
return $global;
}
}
~~~
2.已绑定Global全局变量,打印console.log(Global)查看;
后台管理系统CommonHtml
1.在插件目录下创建文件admin/listen/CommonHtml.php模板全局html,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class CommonHtml
{
public function handle()
{
$html['header'] = '你想要引入的css文件';
$html['content'] = '你想要引入的html代码';
$html['footer'] = '你想要引入的js代码';
return $html;
}
}
~~~
2.已绑定全部html页面,“你想要引入的html代码”;
后台管理系统UploadEnd
1.在插件目录下创建文件admin/listen/UploadEnd.php文件上传结束事件,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class UploadEnd
{
public function handle(string $url)
{
echo "已获取$url,请做你想做的事";
}
}
~~~
2.上传结束后,获得$url参数;
后台管理系统ConfigHook
1.在插件目录下创建文件admin/listen/ConfigHook.php绑定系统配置钩子,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class ConfigHook
{
public function handle()
{
$arr[] = [
"title" => "测试配置", // 插件配置标题
"name" => "ceshi", // 插件配置别名
"url" => "ceshi/config/index", // 插件配置路由
];
return $arr;
}
}
~~~
2.已绑定常规管理->系统配置->我是测试配置;
后台管理系统UserConfigHook
1.在插件目录下创建文件admin/listen/UserConfigHook.php绑定会员配置钩子,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class UserConfigHook
{
public function handle()
{
$field[] = [
"title" => "测试",
"name" => "text", // 请参考common.js中的formType方法
"bind" => "el-input",// 请参考common.js中的formType方法
"value" => 0,
"field" => "ceshi",
"label" => "新增会员测试字段:",
];
return $field;
}
}
~~~
2.已绑定常规管理->系统配置->会员配置->新增测试字段(文本格式);
后台管理系统UserAdminField
1.在插件目录下创建文件admin/listen/UserAdminField.php绑定管理员自定义字段,例:
~~~php
<?php
namespace plugins\ceshi\admin\listen;
class UserAdminField
{
public function handle()
{
$field[] = [
"title" => "开关",
"name" => "switch", // 请参考common.js中的formType方法
"bind" => "el-switch", // 请参考common.js中的formType方法
"value" => false,
"field" => "technical_customer_service_switch",
"label" => "技术客服:",
];
$field[] = [
"title" => "字符",
"name" => "text",
"bind" => "el-input",
"value" => "",
"field" => "qq",
"label" => "客服QQ:",
];
return $field;
}
}
~~~
2.已绑定后台管理系统->管理员插件自定义字段;
前台主题模板AppCheckInit
1.在插件目录下创建文件index/listen/AppCheckInit.php主题模板初始化检测,例:
~~~php
<?php
namespace plugins\ceshi\index\listen;
class AppCheckInit
{
public function handle()
{
$arrIp = ['127.0.0.1'];
if (in_array(request()->ip(), $arrIp)) {
die('很抱歉,您被禁止访问此网站');
}
}
}
~~~
2.绑定主题模板初始化检测钩子;
前台主题模板UserDashboard
1.在插件目录下创建文件index/listen/UserDashboard.php主题模板会员中心主页,例:
~~~php
<?php
namespace plugins\ceshi\index\listen;
class UserDashboard
{
public function handle()
{
$dashboard = [
[
'number' => 0,
'icon' => 'el-icon-star-off',
'title' => 'Number of products collected', //可在语言包中设置
'url' => 'cms/user/productCollection',
"color" => "#18bc9c"
],
];
return $dashboard;
}
}
~~~
2.绑定主题模板->会员中心->主页数据统计;
前台主题模板PersonalPublic
1.在插件目录下创建文件index/listen/PersonalPublic.php主题模板会员中心侧边栏,例:
~~~php
<?php
namespace plugins\ceshi\index\listen;
class PersonalPublic
{
public function handle()
{
return [
['title' =>'会员中心侧边', 'url' => get_url('blog/user/letterList'), 'icon' => 'el-icon-chat-line-round', 'count' => 20],
];
}
}
~~~
2.绑定主题模板会员中心侧边栏;
前台主题模板RouteCheckEnd
1.在插件目录下创建文件index/listen/RouteCheckEnd.php主题模板路由检测完毕,例:
~~~php
<?php
namespace plugins\ceshi\index\listen;
class RouteCheckEnd
{
public function handle()
{
echo '路由检测完毕';
}
}
~~~
2.绑定主题模板路由检测完毕钩子;
前台主题模板UserRegisterEnd
1.在插件目录下创建文件index/listen/UserRegisterEnd.php主题模板用户注册完成钩子,例:
~~~php
<?php
namespace plugins\ceshi\index\listen;
class UserRegisterEnd
{
public function handle($registerInfo)
{
echo "注册完成啦";
}
}
~~~
2.绑定主题模板用户注册完成后;
前台主题模板UserLoginApi
1.在插件目录下创建文件index/listen/UserLoginApi.php主题模板会员第三方登录,例:
~~~php
<?php
namespace plugins\ceshi\index\listen;
class UserLoginApi
{
public function handle()
{
$api= [
[
'url' => 'ceshi/index/qqLogin',
'title' => 'QQ登录',
'cover' => '/image/xxx.png',
],
];
return $api;
}
}
~~~
2.绑定主题模板第三方登录;
前台主题模板CommonGlobal、CommonHtml
与后台管理系统调用方式一致只需要修改namespace plugins\\ceshi\\admin\\listen;命名空间admin改为index即可;