优化帖子和评论审核,更新依赖组件
This commit is contained in:
parent
03f780ff88
commit
ace6ee5e21
@ -37,6 +37,9 @@ class Forum extends AdminController
|
||||
$data['is_reply'] = 0;
|
||||
break;
|
||||
case '5':
|
||||
$data['a.status'] = -1;
|
||||
break;
|
||||
case '6':
|
||||
$data['a.status'] = 0;
|
||||
break;
|
||||
}
|
||||
@ -120,7 +123,7 @@ class Forum extends AdminController
|
||||
//审核帖子
|
||||
public function check()
|
||||
{
|
||||
$data = Request::param();
|
||||
$data = Request::only(['id','status']);
|
||||
|
||||
//获取状态
|
||||
$res = Db::name('article')->where('id',$data['id'])->save(['status' => $data['status']]);
|
||||
@ -211,13 +214,17 @@ class Forum extends AdminController
|
||||
public function replys()
|
||||
{
|
||||
if(Request::isAjax()) {
|
||||
$data = Request::only(['name','content']);
|
||||
$data = Request::only(['name','content','status']);
|
||||
$map = array_filter($data);
|
||||
$where = array();
|
||||
if(!empty($map['content'])){
|
||||
$where[] = ['a.content','like','%'.$map['content'].'%'];
|
||||
unset($map['content']);
|
||||
}
|
||||
if(isset($data['status'])){
|
||||
$where[] = ['a.status','=',(int)$data['status']];
|
||||
unset($map['status']);
|
||||
}
|
||||
|
||||
/*
|
||||
$replys = Comment::field('id,article_id,user_id,content,create_time')->with([
|
||||
@ -252,7 +259,7 @@ class Forum extends AdminController
|
||||
$res = ['code'=>-1,'msg'=>'没有查询结果!'];
|
||||
}
|
||||
return json($res);
|
||||
}
|
||||
}
|
||||
|
||||
return View::fetch();
|
||||
}
|
||||
|
@ -67,6 +67,11 @@ class Index extends AdminController
|
||||
} else {
|
||||
$versions ='当前无可更新版本';
|
||||
}
|
||||
//评论、帖子状态
|
||||
$comm = Db::name('comment')->field('id')->where(['delete_time'=>0,'status'=>0])->select();
|
||||
$forum = Db::name('article')->field('id')->where(['delete_time'=>0,'status'=>0])->select();
|
||||
$comms = count($comm);
|
||||
$forums = count($forum);
|
||||
//运行时间
|
||||
$now = time();
|
||||
$count = $now-$this->sys['create_time'];
|
||||
@ -79,7 +84,7 @@ class Index extends AdminController
|
||||
}
|
||||
$runTime = $years ? "{$years}年{$days}天{$hos}时{$mins}分" : "{$days}天{$hos}时{$mins}分";
|
||||
|
||||
View::assign(['runTime'=>$runTime,'versions'=>$versions]);
|
||||
View::assign(['runTime'=>$runTime,'versions'=>$versions,'comms'=>$comms,'forums'=>$forums]);
|
||||
return View::fetch();
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">ID</label>
|
||||
<label class="layui-form-label">帖子ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
@ -18,21 +18,22 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">发帖名称</label>
|
||||
<label class="layui-form-label">标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">帖子状态</label>
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="sec">
|
||||
<option value="">选择状态</option>
|
||||
<option value="1">正常</option>
|
||||
<option value="5">禁止</option>
|
||||
<option value="6">待审</option>
|
||||
<option value="2">置顶</option>
|
||||
<option value="3">热门</option>
|
||||
<option value="3">加精</option>
|
||||
<option value="4">禁评</option>
|
||||
<option value="5">封禁</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@ -64,7 +65,7 @@
|
||||
</script>
|
||||
<script type="text/html" id="buttonHot">
|
||||
{{# if(d.hot == 1){ }}
|
||||
<button class="layui-btn layui-btn-xs">精贴</button>
|
||||
<button class="layui-btn layui-btn-xs">加精</button>
|
||||
{{# } else { }}
|
||||
<button class="layui-btn layui-btn-primary layui-btn-xs">正常</button>
|
||||
{{# } }}
|
||||
@ -78,7 +79,7 @@
|
||||
</script>
|
||||
<script type="text/html" id="buttonCheck">
|
||||
{if condition="checkRuleButton('admin/forum/check')"}
|
||||
<input type="checkbox" name="check" lay-skin="switch" lay-filter="forumcheck" lay-text="通过|禁止" {{# if(d.check == 1){ }} checked {{# } }} id="{{d.id}}" >
|
||||
<input type="checkbox" name="check" lay-skin="switch" lay-filter="forumcheck" lay-text="通过|{{# if(d.check == -1){ }}禁止{{# } }} {{# if(d.check == 0){ }}待审{{# } }}" {{# if(d.check == 1){ }} checked {{# } }} id="{{d.id}}" >
|
||||
{else /}<button class="layui-btn layui-btn-xs layui-btn-radius layui-btn-disabled">无权限</button>{/if}
|
||||
</script>
|
||||
<script type="text/html" id="table-forum-list">
|
||||
@ -116,24 +117,7 @@ var forumList = "{:url('Forum/list')}",
|
||||
//监听搜索
|
||||
form.on('submit(LAY-app-forumlist-search)', function(data){
|
||||
var field = data.field;
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"{:url('admin/Forum/list')}",
|
||||
data:{field},
|
||||
daType:"json",
|
||||
success:function (data){
|
||||
if (data.code == 0) {
|
||||
|
||||
} else {
|
||||
layer.open({
|
||||
content:data.msg,
|
||||
icon:5,
|
||||
anim:6
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$.post("{:url('admin/Forum/list')}",field);
|
||||
//执行重载
|
||||
table.reload('LAY-app-forum-list', {
|
||||
where: field
|
||||
@ -168,26 +152,19 @@ var forumList = "{:url('Forum/list')}",
|
||||
//监听帖子审核
|
||||
form.on('switch(forumcheck)', function(data){
|
||||
var data= data.elem;
|
||||
|
||||
if(data.checked == true){
|
||||
data.value = 1;
|
||||
}else{
|
||||
data.value = 0;
|
||||
}
|
||||
status = data.checked ? 1 : -1;
|
||||
//执行帖子审核
|
||||
$.ajax({
|
||||
type:'post',
|
||||
url:"{:url('admin/Forum/check')}",
|
||||
data:{id:data.id,status:data.value,},
|
||||
data:{id:data.id,status:status},
|
||||
dataType:'json',
|
||||
success:function(res){
|
||||
if(res.code == 0){
|
||||
layer.msg(res.msg,{
|
||||
icon:res.icon,
|
||||
time:2000
|
||||
}
|
||||
//,function(){location.reload();}
|
||||
);
|
||||
});
|
||||
} else {
|
||||
layer.open({
|
||||
title:'审核失败',
|
||||
@ -196,6 +173,7 @@ var forumList = "{:url('Forum/list')}",
|
||||
adim:6
|
||||
})
|
||||
}
|
||||
table.reload('LAY-app-forum-list');
|
||||
}
|
||||
});
|
||||
return false;
|
||||
|
@ -1,7 +1,6 @@
|
||||
{extend name="public:base" /}
|
||||
|
||||
{block name="body"}
|
||||
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||
@ -13,10 +12,21 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">回帖内容</label>
|
||||
<label class="layui-form-label">内容</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="content" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">状态</label>
|
||||
<div class="layui-input-block">
|
||||
<select name="status" lay-filter="fourm-check">
|
||||
<option value="">全部</option>
|
||||
<option value="0">待审</option>
|
||||
<option value="-1">禁止</option>
|
||||
<option value="1">通过</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<button class="layui-btn layuiadmin-btn-replys" data-type="reload" lay-submit lay-filter="LAY-app-forumreply-search">
|
||||
@ -37,7 +47,7 @@
|
||||
<a href="{$domain}/jie/{{d.cid}}.html" target="_blank">{{d.cardid}}</a>
|
||||
</script>
|
||||
<script type="text/html" id="buttonCheck">
|
||||
{if condition="checkRuleButton('admin/forum/recheck')"}<input type="checkbox" name="check" lay-skin="switch" lay-filter="recheck" lay-text="通过|禁止" {{# if(d.check == 1){ }} checked {{# } }} id="{{d.id}}" >
|
||||
{if condition="checkRuleButton('admin/forum/recheck')"}<input type="checkbox" name="check" lay-skin="switch" lay-filter="recheck" lay-text="通过|{{# if(d.check == -1){ }}禁止{{# } }} {{# if(d.check == 0){ }}待审{{# } }}" {{# if(d.check == 1){ }} checked {{# } }} id="{{d.id}}" >
|
||||
{else /}<button class="layui-btn layui-btn-xs layui-btn-radius layui-btn-disabled">无权限</button>{/if}
|
||||
</script>
|
||||
<script type="text/html" id="table-forum-replys">
|
||||
@ -75,29 +85,23 @@ var forumList = "{:url('Forum/list')}",
|
||||
//监听搜索
|
||||
form.on('submit(LAY-app-forumreply-search)', function(data){
|
||||
var field = data.field;
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"{:url('admin/Forum/replys')}",
|
||||
data:{field},
|
||||
daType:"json",
|
||||
success:function (data){
|
||||
if (data.code == 0) {
|
||||
|
||||
} else {
|
||||
layer.open({
|
||||
content:data.msg,
|
||||
icon:5,
|
||||
anim:6
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$.post("{:url('admin/Forum/replys')}",field);
|
||||
//执行重载
|
||||
table.reload('LAY-app-forumreply-list', {
|
||||
where: field
|
||||
});
|
||||
});
|
||||
|
||||
//状态选择
|
||||
form.on('select(fourm-check)',function(data){
|
||||
$.post("{:url('admin/Forum/replys')}",{"status":data.value});
|
||||
//执行重载
|
||||
table.reload('LAY-app-forumreply-list', {
|
||||
where: {
|
||||
status: data.value
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var active = {
|
||||
batchdel: function(){
|
||||
@ -126,26 +130,19 @@ var forumList = "{:url('Forum/list')}",
|
||||
//监听回贴审核
|
||||
form.on('switch(recheck)', function(data){
|
||||
var data= data.elem;
|
||||
|
||||
if(data.checked == true){
|
||||
data.value = 1;
|
||||
}else{
|
||||
data.value = 0;
|
||||
}
|
||||
status = data.checked ? 1 : -1;
|
||||
//执行回帖审核
|
||||
$.ajax({
|
||||
type:'post',
|
||||
url:"{:url('admin/Forum/recheck')}",
|
||||
data:{id:data.id,status:data.value,},
|
||||
data:{id:data.id,status:status},
|
||||
dataType:'json',
|
||||
success:function(res){
|
||||
if(res.code == 0){
|
||||
layer.msg(res.msg,{
|
||||
icon:res.icon,
|
||||
time:2000
|
||||
}
|
||||
//,function(){location.reload();}
|
||||
);
|
||||
});
|
||||
} else {
|
||||
layer.open({
|
||||
title:'审核失败',
|
||||
@ -154,6 +151,8 @@ var forumList = "{:url('Forum/list')}",
|
||||
adim:6
|
||||
})
|
||||
}
|
||||
|
||||
table.reload('LAY-app-forumreply-list');
|
||||
}
|
||||
});
|
||||
return false;
|
||||
|
@ -83,19 +83,19 @@
|
||||
<div carousel-item>
|
||||
<ul class="layui-row layui-col-space10">
|
||||
<li class="layui-col-xs6">
|
||||
<a lay-href="app/content/comment.html" class="layadmin-backlog-body">
|
||||
<a lay-href="{:url('admin/Forum/replys')}" class="layadmin-backlog-body">
|
||||
<h3>待审评论</h3>
|
||||
<p><cite>66</cite></p>
|
||||
<p><cite>{$comms}</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs6">
|
||||
<a lay-href="app/forum/list.html" class="layadmin-backlog-body">
|
||||
<a lay-href="{:url('admin/Forum/list')}" class="layadmin-backlog-body">
|
||||
<h3>待审帖子</h3>
|
||||
<p><cite>12</cite></p>
|
||||
<p><cite>{$forums}</cite></p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="layui-col-xs6">
|
||||
<a lay-href="template/goodslist.html" class="layadmin-backlog-body">
|
||||
<a lay-href="javascript:;" class="layadmin-backlog-body">
|
||||
<h3>待审商品</h3>
|
||||
<p><cite>99</cite></p>
|
||||
</a>
|
||||
|
@ -52,7 +52,7 @@ CREATE TABLE `tao_article` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`title` varchar(50) NOT NULL COMMENT '标题',
|
||||
`content` text NOT NULL COMMENT '内容',
|
||||
`status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '状态1显示0隐藏',
|
||||
`status` enum('0','-1','1') NOT NULL DEFAULT '1' COMMENT '状态1显示0待审-1禁止',
|
||||
`cate_id` int(11) NOT NULL COMMENT '分类id',
|
||||
`user_id` int(11) NOT NULL COMMENT '用户id',
|
||||
`is_top` enum('0','1') NOT NULL DEFAULT '0' COMMENT '置顶1否0',
|
||||
@ -323,7 +323,7 @@ CREATE TABLE `tao_comment` (
|
||||
`user_id` int(11) NOT NULL COMMENT '评论用户',
|
||||
`zan` tinyint(4) NOT NULL DEFAULT '0' COMMENT '赞',
|
||||
`cai` enum('1','0') NOT NULL DEFAULT '0' COMMENT '0求解1采纳',
|
||||
`status` enum('0','1') NOT NULL DEFAULT '1' COMMENT '1通过0禁止',
|
||||
`status` enum('0','-1','1') NOT NULL DEFAULT '1' COMMENT '1通过0待审-1禁止',
|
||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||
@ -503,7 +503,7 @@ CREATE TABLE `tao_system` (
|
||||
-- ----------------------------
|
||||
-- Records of tao_system
|
||||
-- ----------------------------
|
||||
INSERT INTO `tao_system` VALUES ('1', 'TaoLer社区演示站', '轻论坛系统', 'http://www.xxx.com', 'taoler', '/storage/logo/logo.png', '10', '2048', 'png|gif|jpg|jpeg|zip|rarr', '<a href=\"http://www.aieok.com\" target=\"_blank\">aieok.com 版权所有</a>', 'TaoLer,轻社区系统,bbs,论坛,Thinkphp6,layui,fly模板,', '这是一个Taoler轻社区论坛系统', '1', '1', '1', '0.0.0.0', '管理员|admin|审核员|超级|垃圾', '1.6.3', '', 'http://api.aieok.com', 'http://api.aieok.com/v1/cy', 'http://api.aieok.com/v1/upload/check', 'http://api.aieok.com/v1/upload/api', '1581221008', '1577419197');
|
||||
INSERT INTO `tao_system` VALUES ('1', 'TaoLer社区演示站', '轻论坛系统', 'http://www.xxx.com', 'taoler', '/storage/logo/logo.png', '10', '2048', 'png|gif|jpg|jpeg|zip|rarr', '<a href="https://www.aieok.com" target="_blank">TaoLer</a>', 'TaoLer,轻社区系统,bbs,论坛,Thinkphp6,layui,fly模板,', '这是一个Taoler轻社区论坛系统', '1', '1', '1', '0.0.0.0', '管理员|admin|审核员|超级|垃圾', '1.6.3', '', 'http://api.aieok.com', 'http://api.aieok.com/v1/cy', 'http://api.aieok.com/v1/upload/check', 'http://api.aieok.com/v1/upload/api', '1581221008', '1577419197');
|
||||
|
||||
-- ----------------------------
|
||||
-- Table structure for tao_user
|
||||
|
66
composer.lock
generated
66
composer.lock
generated
@ -8,16 +8,16 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "firebase/php-jwt",
|
||||
"version": "v5.2.1",
|
||||
"version": "v5.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/firebase/php-jwt.git",
|
||||
"reference": "f42c9110abe98dd6cfe9053c49bc86acc70b2d23"
|
||||
"reference": "3c2d70f2e64e2922345e89f2ceae47d2463faae1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/f42c9110abe98dd6cfe9053c49bc86acc70b2d23",
|
||||
"reference": "f42c9110abe98dd6cfe9053c49bc86acc70b2d23",
|
||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/3c2d70f2e64e2922345e89f2ceae47d2463faae1",
|
||||
"reference": "3c2d70f2e64e2922345e89f2ceae47d2463faae1",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -62,9 +62,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/firebase/php-jwt/issues",
|
||||
"source": "https://github.com/firebase/php-jwt/tree/v5.2.1"
|
||||
"source": "https://github.com/firebase/php-jwt/tree/v5.3.0"
|
||||
},
|
||||
"time": "2021-02-12T00:02:00+00:00"
|
||||
"time": "2021-05-20T17:37:02+00:00"
|
||||
},
|
||||
{
|
||||
"name": "league/flysystem",
|
||||
@ -1204,16 +1204,16 @@
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.22.1",
|
||||
"version": "v1.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
|
||||
"reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1",
|
||||
"reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -1231,7 +1231,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@ -1270,7 +1270,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1286,20 +1286,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-22T09:19:47+00:00"
|
||||
"time": "2021-05-27T09:27:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.22.1",
|
||||
"version": "v1.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -1314,7 +1314,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@ -1352,7 +1352,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1"
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1368,20 +1368,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2021-05-27T09:17:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.22.1",
|
||||
"version": "v1.23.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
|
||||
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
|
||||
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0",
|
||||
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -1396,7 +1396,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@ -1441,7 +1441,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1457,20 +1457,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-07T16:49:33+00:00"
|
||||
"time": "2021-02-19T12:13:01+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v4.4.22",
|
||||
"version": "v4.4.25",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7"
|
||||
"reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/c194bcedde6295f3ec3e9eba1f5d484ea97c41a7",
|
||||
"reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0",
|
||||
"reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -1536,7 +1536,7 @@
|
||||
"dump"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v4.4.22"
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v4.4.25"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -1552,7 +1552,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-04-19T13:36:17+00:00"
|
||||
"time": "2021-05-27T09:48:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "topthink/think-trace",
|
||||
|
@ -7,7 +7,7 @@ return [
|
||||
//应用名,此项不可更改
|
||||
'appname' => 'TaoLer',
|
||||
//版本配置
|
||||
'version' => '1.7.8',
|
||||
'version' => '1.7.9',
|
||||
//加盐
|
||||
'salt' => 'taoler',
|
||||
//数据库备份目录
|
||||
|
@ -18,17 +18,17 @@ layui.define(['table', 'form'], function(exports){
|
||||
elem: '#LAY-app-forum-list'
|
||||
,url: forumList //帖子数据接口
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 55, title: 'ID', sort: true}
|
||||
,{field: 'poster', title: '贴主'}
|
||||
,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl', align: 'center'}
|
||||
{type: 'checkbox'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true}
|
||||
,{field: 'poster', title: '贴主',width: 80}
|
||||
,{field: 'avatar', title: '头像', width: 80, templet: '#imgTpl'}
|
||||
,{field: 'content', title: '标题', width: 200,templet: '#title'}
|
||||
,{field: 'posttime', title: '时间', sort: true}
|
||||
,{field: 'top', title: '置顶', templet: '#buttonTpl', minWidth: 80, align: 'center'}
|
||||
,{field: 'hot', title: '精贴', templet: '#buttonHot', minWidth: 80, align: 'center'}
|
||||
,{field: 'reply', title: '评论状态', templet: '#buttonReply', minWidth: 80, align: 'center'}
|
||||
,{field: 'check', title: '审帖', templet: '#buttonCheck', minWidth: 80, align: 'center'}
|
||||
,{title: '操作', width: 80, align: 'center', fixed: 'right', toolbar: '#table-forum-list'}
|
||||
,{field: 'posttime', title: '时间',width: 120, sort: true}
|
||||
,{field: 'top', title: '置顶', templet: '#buttonTpl', width: 80, align: 'center'}
|
||||
,{field: 'hot', title: '精贴', templet: '#buttonHot', width: 80, align: 'center'}
|
||||
,{field: 'reply', title: '评论状态', templet: '#buttonReply', width: 80, align: 'center'}
|
||||
,{field: 'check', title: '审帖', templet: '#buttonCheck', width: 100, align: 'center'}
|
||||
,{title: '操作', width: 85, align: 'center', toolbar: '#table-forum-list'}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 15
|
||||
@ -134,15 +134,15 @@ layui.define(['table', 'form'], function(exports){
|
||||
elem: '#LAY-app-forumreply-list'
|
||||
,url: forumReplys
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 100, title: 'ID', sort: true}
|
||||
,{field: 'replyer', title: '回帖人'}
|
||||
,{field: 'cardid', title: '回帖ID',templet: '#title'}
|
||||
,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
|
||||
,{field: 'content', title: '回帖内容', width: 200}
|
||||
,{field: 'replytime', title: '回帖时间', sort: true}
|
||||
,{field: 'check', title: '审核', templet: '#buttonCheck'}
|
||||
,{title: '操作', width: 80, align: 'center', fixed: 'right', toolbar: '#table-forum-replys'}
|
||||
{type: 'checkbox'}
|
||||
,{field: 'id', width: 80, title: 'ID', sort: true}
|
||||
,{field: 'replyer', title: '回帖人', width: 80}
|
||||
,{field: 'cardid', title: '帖ID',templet: '#title'}
|
||||
,{field: 'avatar', title: '头像', width: 80, templet: '#imgTpl'}
|
||||
,{field: 'content', title: '评论', minWidth: 200}
|
||||
,{field: 'replytime', title: '回复时间', width: 120, sort: true}
|
||||
,{field: 'check', title: '审核', templet: '#buttonCheck', width: 100}
|
||||
,{title: '操作', width: 85, align: 'center', toolbar: '#table-forum-replys'}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 15
|
||||
|
@ -18,20 +18,21 @@ layui.define(['table', 'form'], function(exports){
|
||||
elem: '#LAY-user-manage'
|
||||
,url: userList //模拟接口
|
||||
,cols: [[
|
||||
{type: 'checkbox', fixed: 'left'}
|
||||
,{field: 'id', width: 50, title: 'ID', sort: true}
|
||||
,{field: 'username', title: '用户名', minWidth: 80}
|
||||
,{field: 'avatar', title: '头像', width: 100, templet: '#imgTpl'}
|
||||
,{field: 'phone', title: '手机',width: 150}
|
||||
{type: 'checkbox'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true}
|
||||
,{field: 'username', title: '用户名', minWidth: 100}
|
||||
,{field: 'nick', title: '昵称',minWidth: 100}
|
||||
,{field: 'avatar', title: '头像', width: 80, templet: '#imgTpl'}
|
||||
//,{field: 'phone', title: '手机',width: 80}
|
||||
,{field: 'email', title: '邮箱'}
|
||||
,{field: 'sex', width: 60, title: '性别',templet: '#sex'}
|
||||
,{field: 'ip', title: '登录IP'}
|
||||
,{field: 'city', title: '城市'}
|
||||
,{field: 'logintime', title: '最后登录', sort: true}
|
||||
,{field: 'jointime', title: '注册时间', sort: true}
|
||||
,{field: 'logintime', title: '最后登录',minWidth: 150, sort: true}
|
||||
,{field: 'jointime', title: '注册时间',minWidth: 120, sort: true}
|
||||
,{field: 'check', title: '状态', templet: '#buttonCheck', minWidth: 80, align: 'center'}
|
||||
,{field: 'auth', title: '超级管理员', templet: '#buttonAuth', minWidth: 80, align: 'center'}
|
||||
,{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#table-useradmin-webuser'}
|
||||
,{field: 'auth', title: '超级管理员', templet: '#buttonAuth', width: 60, align: 'center'}
|
||||
,{title: '操作', width: 150, align:'center', toolbar: '#table-useradmin-webuser'}
|
||||
]]
|
||||
,page: true
|
||||
,limit: 30
|
||||
|
30
vendor/composer/InstalledVersions.php
vendored
30
vendor/composer/InstalledVersions.php
vendored
@ -26,12 +26,12 @@ private static $installed = array (
|
||||
array (
|
||||
'firebase/php-jwt' =>
|
||||
array (
|
||||
'pretty_version' => 'v5.2.1',
|
||||
'version' => '5.2.1.0',
|
||||
'pretty_version' => 'v5.3.0',
|
||||
'version' => '5.3.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'f42c9110abe98dd6cfe9053c49bc86acc70b2d23',
|
||||
'reference' => '3c2d70f2e64e2922345e89f2ceae47d2463faae1',
|
||||
),
|
||||
'league/flysystem' =>
|
||||
array (
|
||||
@ -116,39 +116,39 @@ private static $installed = array (
|
||||
),
|
||||
'symfony/polyfill-mbstring' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5232de97ee3b75b0360528dae24e73db49566ab1',
|
||||
'reference' => '2df51500adbaebdc4c38dea4c89a2e131c45c8a1',
|
||||
),
|
||||
'symfony/polyfill-php72' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
|
||||
'reference' => '9a142215a36a3888e30d0a9eeea9766764e96976',
|
||||
),
|
||||
'symfony/polyfill-php80' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91',
|
||||
'reference' => 'eca0bf41ed421bed1b57c4958bab16aa86b757d0',
|
||||
),
|
||||
'symfony/var-dumper' =>
|
||||
array (
|
||||
'pretty_version' => 'v4.4.22',
|
||||
'version' => '4.4.22.0',
|
||||
'pretty_version' => 'v4.4.25',
|
||||
'version' => '4.4.25.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c194bcedde6295f3ec3e9eba1f5d484ea97c41a7',
|
||||
'reference' => '31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0',
|
||||
),
|
||||
'taoser/taoler' =>
|
||||
array (
|
||||
|
76
vendor/composer/installed.json
vendored
76
vendor/composer/installed.json
vendored
@ -2,17 +2,17 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "firebase/php-jwt",
|
||||
"version": "v5.2.1",
|
||||
"version_normalized": "5.2.1.0",
|
||||
"version": "v5.3.0",
|
||||
"version_normalized": "5.3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/firebase/php-jwt.git",
|
||||
"reference": "f42c9110abe98dd6cfe9053c49bc86acc70b2d23"
|
||||
"reference": "3c2d70f2e64e2922345e89f2ceae47d2463faae1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/f42c9110abe98dd6cfe9053c49bc86acc70b2d23",
|
||||
"reference": "f42c9110abe98dd6cfe9053c49bc86acc70b2d23",
|
||||
"url": "https://api.github.com/repos/firebase/php-jwt/zipball/3c2d70f2e64e2922345e89f2ceae47d2463faae1",
|
||||
"reference": "3c2d70f2e64e2922345e89f2ceae47d2463faae1",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -27,7 +27,7 @@
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">=4.8 <=9"
|
||||
},
|
||||
"time": "2021-02-12T00:02:00+00:00",
|
||||
"time": "2021-05-20T17:37:02+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
@ -59,7 +59,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/firebase/php-jwt/issues",
|
||||
"source": "https://github.com/firebase/php-jwt/tree/v5.2.1"
|
||||
"source": "https://github.com/firebase/php-jwt/tree/v5.3.0"
|
||||
},
|
||||
"install-path": "../firebase/php-jwt"
|
||||
},
|
||||
@ -646,17 +646,17 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
"version": "v1.22.1",
|
||||
"version_normalized": "1.22.1.0",
|
||||
"version": "v1.23.0",
|
||||
"version_normalized": "1.23.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-mbstring.git",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1"
|
||||
"reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"reference": "5232de97ee3b75b0360528dae24e73db49566ab1",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2df51500adbaebdc4c38dea4c89a2e131c45c8a1",
|
||||
"reference": "2df51500adbaebdc4c38dea4c89a2e131c45c8a1",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -671,11 +671,11 @@
|
||||
"suggest": {
|
||||
"ext-mbstring": "For best performance"
|
||||
},
|
||||
"time": "2021-01-22T09:19:47+00:00",
|
||||
"time": "2021-05-27T09:27:20+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@ -715,7 +715,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.1"
|
||||
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -735,17 +735,17 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php72",
|
||||
"version": "v1.22.1",
|
||||
"version_normalized": "1.22.1.0",
|
||||
"version": "v1.23.0",
|
||||
"version_normalized": "1.23.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php72.git",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9"
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -757,11 +757,11 @@
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"time": "2021-01-07T16:49:33+00:00",
|
||||
"time": "2021-05-27T09:17:38+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@ -800,7 +800,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.22.1"
|
||||
"source": "https://github.com/symfony/polyfill-php72/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -820,17 +820,17 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-php80",
|
||||
"version": "v1.22.1",
|
||||
"version_normalized": "1.22.1.0",
|
||||
"version": "v1.23.0",
|
||||
"version_normalized": "1.23.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/polyfill-php80.git",
|
||||
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91"
|
||||
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91",
|
||||
"reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91",
|
||||
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/eca0bf41ed421bed1b57c4958bab16aa86b757d0",
|
||||
"reference": "eca0bf41ed421bed1b57c4958bab16aa86b757d0",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -842,11 +842,11 @@
|
||||
"require": {
|
||||
"php": ">=7.1"
|
||||
},
|
||||
"time": "2021-01-07T16:49:33+00:00",
|
||||
"time": "2021-02-19T12:13:01+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
@ -892,7 +892,7 @@
|
||||
"shim"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.22.1"
|
||||
"source": "https://github.com/symfony/polyfill-php80/tree/v1.23.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -912,17 +912,17 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v4.4.22",
|
||||
"version_normalized": "4.4.22.0",
|
||||
"version": "v4.4.25",
|
||||
"version_normalized": "4.4.25.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7"
|
||||
"reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/c194bcedde6295f3ec3e9eba1f5d484ea97c41a7",
|
||||
"reference": "c194bcedde6295f3ec3e9eba1f5d484ea97c41a7",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0",
|
||||
"reference": "31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0",
|
||||
"shasum": "",
|
||||
"mirrors": [
|
||||
{
|
||||
@ -952,7 +952,7 @@
|
||||
"ext-intl": "To show region name in time zone dump",
|
||||
"symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
|
||||
},
|
||||
"time": "2021-04-19T13:36:17+00:00",
|
||||
"time": "2021-05-27T09:48:32+00:00",
|
||||
"bin": [
|
||||
"Resources/bin/var-dump-server"
|
||||
],
|
||||
@ -990,7 +990,7 @@
|
||||
"dump"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v4.4.22"
|
||||
"source": "https://github.com/symfony/var-dumper/tree/v4.4.25"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
|
30
vendor/composer/installed.php
vendored
30
vendor/composer/installed.php
vendored
@ -13,12 +13,12 @@
|
||||
array (
|
||||
'firebase/php-jwt' =>
|
||||
array (
|
||||
'pretty_version' => 'v5.2.1',
|
||||
'version' => '5.2.1.0',
|
||||
'pretty_version' => 'v5.3.0',
|
||||
'version' => '5.3.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'f42c9110abe98dd6cfe9053c49bc86acc70b2d23',
|
||||
'reference' => '3c2d70f2e64e2922345e89f2ceae47d2463faae1',
|
||||
),
|
||||
'league/flysystem' =>
|
||||
array (
|
||||
@ -103,39 +103,39 @@
|
||||
),
|
||||
'symfony/polyfill-mbstring' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => '5232de97ee3b75b0360528dae24e73db49566ab1',
|
||||
'reference' => '2df51500adbaebdc4c38dea4c89a2e131c45c8a1',
|
||||
),
|
||||
'symfony/polyfill-php72' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9',
|
||||
'reference' => '9a142215a36a3888e30d0a9eeea9766764e96976',
|
||||
),
|
||||
'symfony/polyfill-php80' =>
|
||||
array (
|
||||
'pretty_version' => 'v1.22.1',
|
||||
'version' => '1.22.1.0',
|
||||
'pretty_version' => 'v1.23.0',
|
||||
'version' => '1.23.0.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'dc3063ba22c2a1fd2f45ed856374d79114998f91',
|
||||
'reference' => 'eca0bf41ed421bed1b57c4958bab16aa86b757d0',
|
||||
),
|
||||
'symfony/var-dumper' =>
|
||||
array (
|
||||
'pretty_version' => 'v4.4.22',
|
||||
'version' => '4.4.22.0',
|
||||
'pretty_version' => 'v4.4.25',
|
||||
'version' => '4.4.25.0',
|
||||
'aliases' =>
|
||||
array (
|
||||
),
|
||||
'reference' => 'c194bcedde6295f3ec3e9eba1f5d484ea97c41a7',
|
||||
'reference' => '31ea689a8e7d2410016b0d25fc15a1ba05a6e2e0',
|
||||
),
|
||||
'taoser/taoler' =>
|
||||
array (
|
||||
|
18
vendor/firebase/php-jwt/.github/actions/entrypoint.sh
vendored
Normal file
18
vendor/firebase/php-jwt/.github/actions/entrypoint.sh
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
#!/bin/sh -l
|
||||
|
||||
apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
git \
|
||||
zip \
|
||||
curl \
|
||||
unzip \
|
||||
wget
|
||||
|
||||
curl --silent --show-error https://getcomposer.org/installer | php
|
||||
php composer.phar self-update
|
||||
|
||||
echo "---Installing dependencies ---"
|
||||
php composer.phar update
|
||||
|
||||
echo "---Running unit tests ---"
|
||||
vendor/bin/phpunit
|
77
vendor/firebase/php-jwt/.github/workflows/tests.yml
vendored
Normal file
77
vendor/firebase/php-jwt/.github/workflows/tests.yml
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
name: Test Suite
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
php: [ "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0" ]
|
||||
name: PHP ${{matrix.php }} Unit Test
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: ${{ matrix.php }}
|
||||
- name: Install Dependencies
|
||||
uses: nick-invision/retry@v1
|
||||
with:
|
||||
timeout_minutes: 10
|
||||
max_attempts: 3
|
||||
command: composer install
|
||||
- name: Run Script
|
||||
run: vendor/bin/phpunit
|
||||
|
||||
# use dockerfiles for old versions of php (setup-php times out for those).
|
||||
test_php55:
|
||||
name: "PHP 5.5 Unit Test"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Run Unit Tests
|
||||
uses: docker://php:5.5-cli
|
||||
with:
|
||||
entrypoint: ./.github/actions/entrypoint.sh
|
||||
|
||||
test_php54:
|
||||
name: "PHP 5.4 Unit Test"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Run Unit Tests
|
||||
uses: docker://php:5.4-cli
|
||||
with:
|
||||
entrypoint: ./.github/actions/entrypoint.sh
|
||||
|
||||
test_php53:
|
||||
name: "PHP 5.3 Unit Test"
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Run Unit Tests
|
||||
uses: docker://tomsowerby/php-5.3:cli
|
||||
with:
|
||||
entrypoint: ./.github/actions/entrypoint.sh
|
||||
|
||||
style:
|
||||
runs-on: ubuntu-latest
|
||||
name: PHP Style Check
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Setup PHP
|
||||
uses: shivammathur/setup-php@v2
|
||||
with:
|
||||
php-version: "7.0"
|
||||
- name: Run Script
|
||||
run: |
|
||||
composer require friendsofphp/php-cs-fixer
|
||||
vendor/bin/php-cs-fixer fix --diff --dry-run .
|
||||
vendor/bin/php-cs-fixer fix --rules=native_function_invocation --allow-risky=yes --diff src
|
2
vendor/firebase/php-jwt/LICENSE
vendored
2
vendor/firebase/php-jwt/LICENSE
vendored
@ -13,7 +13,7 @@ modification, are permitted provided that the following conditions are met:
|
||||
disclaimer in the documentation and/or other materials provided
|
||||
with the distribution.
|
||||
|
||||
* Neither the name of Neuman Vong nor the names of other
|
||||
* Neither the name of the copyright holder nor the names of other
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
|
||||
|
46
vendor/firebase/php-jwt/README.md
vendored
46
vendor/firebase/php-jwt/README.md
vendored
@ -19,8 +19,7 @@ composer require firebase/php-jwt
|
||||
Example
|
||||
-------
|
||||
```php
|
||||
<?php
|
||||
use \Firebase\JWT\JWT;
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
$key = "example_key";
|
||||
$payload = array(
|
||||
@ -57,14 +56,11 @@ $decoded_array = (array) $decoded;
|
||||
*/
|
||||
JWT::$leeway = 60; // $leeway in seconds
|
||||
$decoded = JWT::decode($jwt, $key, array('HS256'));
|
||||
|
||||
?>
|
||||
```
|
||||
Example with RS256 (openssl)
|
||||
----------------------------
|
||||
```php
|
||||
<?php
|
||||
use \Firebase\JWT\JWT;
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
$privateKey = <<<EOD
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
@ -112,13 +108,49 @@ $decoded = JWT::decode($jwt, $publicKey, array('RS256'));
|
||||
|
||||
$decoded_array = (array) $decoded;
|
||||
echo "Decode:\n" . print_r($decoded_array, true) . "\n";
|
||||
?>
|
||||
```
|
||||
|
||||
Example with a passphrase
|
||||
-------------------------
|
||||
|
||||
```php
|
||||
// Your passphrase
|
||||
$passphrase = '[YOUR_PASSPHRASE]';
|
||||
|
||||
// Your private key file with passphrase
|
||||
// Can be generated with "ssh-keygen -t rsa -m pem"
|
||||
$privateKeyFile = '/path/to/key-with-passphrase.pem';
|
||||
|
||||
// Create a private key of type "resource"
|
||||
$privateKey = openssl_pkey_get_private(
|
||||
file_get_contents($privateKeyFile),
|
||||
$passphrase
|
||||
);
|
||||
|
||||
$payload = array(
|
||||
"iss" => "example.org",
|
||||
"aud" => "example.com",
|
||||
"iat" => 1356999524,
|
||||
"nbf" => 1357000000
|
||||
);
|
||||
|
||||
$jwt = JWT::encode($payload, $privateKey, 'RS256');
|
||||
echo "Encode:\n" . print_r($jwt, true) . "\n";
|
||||
|
||||
// Get public key from the private key, or pull from from a file.
|
||||
$publicKey = openssl_pkey_get_details($privateKey)['key'];
|
||||
|
||||
$decoded = JWT::decode($jwt, $publicKey, array('RS256'));
|
||||
echo "Decode:\n" . print_r((array) $decoded, true) . "\n";
|
||||
```
|
||||
|
||||
Using JWKs
|
||||
----------
|
||||
|
||||
```php
|
||||
use Firebase\JWT\JWK;
|
||||
use Firebase\JWT\JWT;
|
||||
|
||||
// Set of keys. The "keys" key is required. For example, the JSON response to
|
||||
// this endpoint: https://www.gstatic.com/iap/verify/public_key-jwk
|
||||
$jwks = ['keys' => []];
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Firebase\JWT;
|
||||
|
||||
class BeforeValidException extends \UnexpectedValueException
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Firebase\JWT;
|
||||
|
||||
class ExpiredException extends \UnexpectedValueException
|
||||
|
2
vendor/firebase/php-jwt/src/JWK.php
vendored
2
vendor/firebase/php-jwt/src/JWK.php
vendored
@ -82,7 +82,7 @@ class JWK
|
||||
|
||||
switch ($jwk['kty']) {
|
||||
case 'RSA':
|
||||
if (\array_key_exists('d', $jwk)) {
|
||||
if (!empty($jwk['d'])) {
|
||||
throw new UnexpectedValueException('RSA private keys are not supported');
|
||||
}
|
||||
if (!isset($jwk['n']) || !isset($jwk['e'])) {
|
||||
|
38
vendor/firebase/php-jwt/src/JWT.php
vendored
38
vendor/firebase/php-jwt/src/JWT.php
vendored
@ -2,10 +2,10 @@
|
||||
|
||||
namespace Firebase\JWT;
|
||||
|
||||
use \DomainException;
|
||||
use \InvalidArgumentException;
|
||||
use \UnexpectedValueException;
|
||||
use \DateTime;
|
||||
use DomainException;
|
||||
use InvalidArgumentException;
|
||||
use UnexpectedValueException;
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
* JSON Web Token implementation, based on this spec:
|
||||
@ -42,6 +42,7 @@ class JWT
|
||||
public static $timestamp = null;
|
||||
|
||||
public static $supported_algs = array(
|
||||
'ES384' => array('openssl', 'SHA384'),
|
||||
'ES256' => array('openssl', 'SHA256'),
|
||||
'HS256' => array('hash_hmac', 'SHA256'),
|
||||
'HS384' => array('hash_hmac', 'SHA384'),
|
||||
@ -58,10 +59,12 @@ class JWT
|
||||
* @param string|array|resource $key The key, or map of keys.
|
||||
* If the algorithm used is asymmetric, this is the public key
|
||||
* @param array $allowed_algs List of supported verification algorithms
|
||||
* Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'
|
||||
* Supported algorithms are 'ES384','ES256', 'HS256', 'HS384',
|
||||
* 'HS512', 'RS256', 'RS384', and 'RS512'
|
||||
*
|
||||
* @return object The JWT's payload as a PHP object
|
||||
*
|
||||
* @throws InvalidArgumentException Provided JWT was empty
|
||||
* @throws UnexpectedValueException Provided JWT was invalid
|
||||
* @throws SignatureInvalidException Provided JWT was invalid because the signature verification failed
|
||||
* @throws BeforeValidException Provided JWT is trying to be used before it's eligible as defined by 'nbf'
|
||||
@ -101,8 +104,8 @@ class JWT
|
||||
if (!\in_array($header->alg, $allowed_algs)) {
|
||||
throw new UnexpectedValueException('Algorithm not allowed');
|
||||
}
|
||||
if ($header->alg === 'ES256') {
|
||||
// OpenSSL expects an ASN.1 DER sequence for ES256 signatures
|
||||
if ($header->alg === 'ES256' || $header->alg === 'ES384') {
|
||||
// OpenSSL expects an ASN.1 DER sequence for ES256/ES384 signatures
|
||||
$sig = self::signatureToDER($sig);
|
||||
}
|
||||
|
||||
@ -150,13 +153,14 @@ class JWT
|
||||
/**
|
||||
* Converts and signs a PHP object or array into a JWT string.
|
||||
*
|
||||
* @param object|array $payload PHP object or array
|
||||
* @param string $key The secret key.
|
||||
* If the algorithm used is asymmetric, this is the private key
|
||||
* @param string $alg The signing algorithm.
|
||||
* Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'
|
||||
* @param mixed $keyId
|
||||
* @param array $head An array with header elements to attach
|
||||
* @param object|array $payload PHP object or array
|
||||
* @param string|resource $key The secret key.
|
||||
* If the algorithm used is asymmetric, this is the private key
|
||||
* @param string $alg The signing algorithm.
|
||||
* Supported algorithms are 'ES384','ES256', 'HS256', 'HS384',
|
||||
* 'HS512', 'RS256', 'RS384', and 'RS512'
|
||||
* @param mixed $keyId
|
||||
* @param array $head An array with header elements to attach
|
||||
*
|
||||
* @return string A signed JWT
|
||||
*
|
||||
@ -189,7 +193,8 @@ class JWT
|
||||
* @param string $msg The message to sign
|
||||
* @param string|resource $key The secret key
|
||||
* @param string $alg The signing algorithm.
|
||||
* Supported algorithms are 'ES256', 'HS256', 'HS384', 'HS512', 'RS256', 'RS384', and 'RS512'
|
||||
* Supported algorithms are 'ES384','ES256', 'HS256', 'HS384',
|
||||
* 'HS512', 'RS256', 'RS384', and 'RS512'
|
||||
*
|
||||
* @return string An encrypted message
|
||||
*
|
||||
@ -213,6 +218,9 @@ class JWT
|
||||
if ($alg === 'ES256') {
|
||||
$signature = self::signatureFromDER($signature, 256);
|
||||
}
|
||||
if ($alg === 'ES384') {
|
||||
$signature = self::signatureFromDER($signature, 384);
|
||||
}
|
||||
return $signature;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
namespace Firebase\JWT;
|
||||
|
||||
class SignatureInvalidException extends \UnexpectedValueException
|
||||
|
2
vendor/services.php
vendored
2
vendor/services.php
vendored
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
// This file is automatically generated at:2021-05-10 13:56:23
|
||||
// This file is automatically generated at:2021-06-09 14:46:43
|
||||
declare (strict_types = 1);
|
||||
return array (
|
||||
0 => 'think\\captcha\\CaptchaService',
|
||||
|
46
vendor/symfony/polyfill-mbstring/Mbstring.php
vendored
46
vendor/symfony/polyfill-mbstring/Mbstring.php
vendored
@ -101,7 +101,7 @@ final class Mbstring
|
||||
$fromEncoding = 'Windows-1252';
|
||||
}
|
||||
if ('UTF-8' !== $fromEncoding) {
|
||||
$s = iconv($fromEncoding, 'UTF-8//IGNORE', $s);
|
||||
$s = \iconv($fromEncoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
return preg_replace_callback('/[\x80-\xFF]+/', [__CLASS__, 'html_encoding_callback'], $s);
|
||||
@ -112,7 +112,7 @@ final class Mbstring
|
||||
$fromEncoding = 'UTF-8';
|
||||
}
|
||||
|
||||
return iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
|
||||
return \iconv($fromEncoding, $toEncoding.'//IGNORE', $s);
|
||||
}
|
||||
|
||||
public static function mb_convert_variables($toEncoding, $fromEncoding, &...$vars)
|
||||
@ -129,7 +129,7 @@ final class Mbstring
|
||||
|
||||
public static function mb_decode_mimeheader($s)
|
||||
{
|
||||
return iconv_mime_decode($s, 2, self::$internalEncoding);
|
||||
return \iconv_mime_decode($s, 2, self::$internalEncoding);
|
||||
}
|
||||
|
||||
public static function mb_encode_mimeheader($s, $charset = null, $transferEncoding = null, $linefeed = null, $indent = null)
|
||||
@ -165,10 +165,10 @@ final class Mbstring
|
||||
if ('UTF-8' === $encoding) {
|
||||
$encoding = null;
|
||||
if (!preg_match('//u', $s)) {
|
||||
$s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
||||
$s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
} else {
|
||||
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
$s = \iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
$cnt = floor(\count($convmap) / 4) * 4;
|
||||
@ -194,7 +194,7 @@ final class Mbstring
|
||||
return $s;
|
||||
}
|
||||
|
||||
return iconv('UTF-8', $encoding.'//IGNORE', $s);
|
||||
return \iconv('UTF-8', $encoding.'//IGNORE', $s);
|
||||
}
|
||||
|
||||
public static function mb_encode_numericentity($s, $convmap, $encoding = null, $is_hex = false)
|
||||
@ -231,10 +231,10 @@ final class Mbstring
|
||||
if ('UTF-8' === $encoding) {
|
||||
$encoding = null;
|
||||
if (!preg_match('//u', $s)) {
|
||||
$s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
||||
$s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
} else {
|
||||
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
$s = \iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
static $ulenMask = ["\xC0" => 2, "\xD0" => 2, "\xE0" => 3, "\xF0" => 4];
|
||||
@ -264,7 +264,7 @@ final class Mbstring
|
||||
return $result;
|
||||
}
|
||||
|
||||
return iconv('UTF-8', $encoding.'//IGNORE', $result);
|
||||
return \iconv('UTF-8', $encoding.'//IGNORE', $result);
|
||||
}
|
||||
|
||||
public static function mb_convert_case($s, $mode, $encoding = null)
|
||||
@ -279,10 +279,10 @@ final class Mbstring
|
||||
if ('UTF-8' === $encoding) {
|
||||
$encoding = null;
|
||||
if (!preg_match('//u', $s)) {
|
||||
$s = @iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
||||
$s = @\iconv('UTF-8', 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
} else {
|
||||
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
$s = \iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
if (\MB_CASE_TITLE == $mode) {
|
||||
@ -342,7 +342,7 @@ final class Mbstring
|
||||
return $s;
|
||||
}
|
||||
|
||||
return iconv('UTF-8', $encoding.'//IGNORE', $s);
|
||||
return \iconv('UTF-8', $encoding.'//IGNORE', $s);
|
||||
}
|
||||
|
||||
public static function mb_internal_encoding($encoding = null)
|
||||
@ -353,7 +353,7 @@ final class Mbstring
|
||||
|
||||
$normalizedEncoding = self::getEncoding($encoding);
|
||||
|
||||
if ('UTF-8' === $normalizedEncoding || false !== @iconv($normalizedEncoding, $normalizedEncoding, ' ')) {
|
||||
if ('UTF-8' === $normalizedEncoding || false !== @\iconv($normalizedEncoding, $normalizedEncoding, ' ')) {
|
||||
self::$internalEncoding = $normalizedEncoding;
|
||||
|
||||
return true;
|
||||
@ -412,7 +412,7 @@ final class Mbstring
|
||||
$encoding = self::$internalEncoding;
|
||||
}
|
||||
|
||||
return self::mb_detect_encoding($var, [$encoding]) || false !== @iconv($encoding, $encoding, $var);
|
||||
return self::mb_detect_encoding($var, [$encoding]) || false !== @\iconv($encoding, $encoding, $var);
|
||||
}
|
||||
|
||||
public static function mb_detect_encoding($str, $encodingList = null, $strict = false)
|
||||
@ -487,7 +487,7 @@ final class Mbstring
|
||||
return \strlen($s);
|
||||
}
|
||||
|
||||
return @iconv_strlen($s, $encoding);
|
||||
return @\iconv_strlen($s, $encoding);
|
||||
}
|
||||
|
||||
public static function mb_strpos($haystack, $needle, $offset = 0, $encoding = null)
|
||||
@ -508,7 +508,7 @@ final class Mbstring
|
||||
return 0;
|
||||
}
|
||||
|
||||
return iconv_strpos($haystack, $needle, $offset, $encoding);
|
||||
return \iconv_strpos($haystack, $needle, $offset, $encoding);
|
||||
}
|
||||
|
||||
public static function mb_strrpos($haystack, $needle, $offset = 0, $encoding = null)
|
||||
@ -532,7 +532,7 @@ final class Mbstring
|
||||
}
|
||||
|
||||
$pos = '' !== $needle || 80000 > \PHP_VERSION_ID
|
||||
? iconv_strrpos($haystack, $needle, $encoding)
|
||||
? \iconv_strrpos($haystack, $needle, $encoding)
|
||||
: self::mb_strlen($haystack, $encoding);
|
||||
|
||||
return false !== $pos ? $offset + $pos : false;
|
||||
@ -613,7 +613,7 @@ final class Mbstring
|
||||
}
|
||||
|
||||
if ($start < 0) {
|
||||
$start = iconv_strlen($s, $encoding) + $start;
|
||||
$start = \iconv_strlen($s, $encoding) + $start;
|
||||
if ($start < 0) {
|
||||
$start = 0;
|
||||
}
|
||||
@ -622,13 +622,13 @@ final class Mbstring
|
||||
if (null === $length) {
|
||||
$length = 2147483647;
|
||||
} elseif ($length < 0) {
|
||||
$length = iconv_strlen($s, $encoding) + $length - $start;
|
||||
$length = \iconv_strlen($s, $encoding) + $length - $start;
|
||||
if ($length < 0) {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
return (string) iconv_substr($s, $start, $length, $encoding);
|
||||
return (string) \iconv_substr($s, $start, $length, $encoding);
|
||||
}
|
||||
|
||||
public static function mb_stripos($haystack, $needle, $offset = 0, $encoding = null)
|
||||
@ -653,7 +653,7 @@ final class Mbstring
|
||||
$pos = strrpos($haystack, $needle);
|
||||
} else {
|
||||
$needle = self::mb_substr($needle, 0, 1, $encoding);
|
||||
$pos = iconv_strrpos($haystack, $needle, $encoding);
|
||||
$pos = \iconv_strrpos($haystack, $needle, $encoding);
|
||||
}
|
||||
|
||||
return self::getSubpart($pos, $part, $haystack, $encoding);
|
||||
@ -732,12 +732,12 @@ final class Mbstring
|
||||
$encoding = self::getEncoding($encoding);
|
||||
|
||||
if ('UTF-8' !== $encoding) {
|
||||
$s = iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
$s = \iconv($encoding, 'UTF-8//IGNORE', $s);
|
||||
}
|
||||
|
||||
$s = preg_replace('/[\x{1100}-\x{115F}\x{2329}\x{232A}\x{2E80}-\x{303E}\x{3040}-\x{A4CF}\x{AC00}-\x{D7A3}\x{F900}-\x{FAFF}\x{FE10}-\x{FE19}\x{FE30}-\x{FE6F}\x{FF00}-\x{FF60}\x{FFE0}-\x{FFE6}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}]/u', '', $s, -1, $wide);
|
||||
|
||||
return ($wide << 1) + iconv_strlen($s, 'UTF-8');
|
||||
return ($wide << 1) + \iconv_strlen($s, 'UTF-8');
|
||||
}
|
||||
|
||||
public static function mb_substr_count($haystack, $needle, $encoding = null)
|
||||
|
@ -81,7 +81,7 @@ return array (
|
||||
'Ī' => 'ī',
|
||||
'Ĭ' => 'ĭ',
|
||||
'Į' => 'į',
|
||||
'İ' => 'i',
|
||||
'İ' => 'i̇',
|
||||
'IJ' => 'ij',
|
||||
'Ĵ' => 'ĵ',
|
||||
'Ķ' => 'ķ',
|
||||
|
@ -746,41 +746,41 @@ return array (
|
||||
'ύ' => 'Ύ',
|
||||
'ὼ' => 'Ὼ',
|
||||
'ώ' => 'Ώ',
|
||||
'ᾀ' => 'ᾈ',
|
||||
'ᾁ' => 'ᾉ',
|
||||
'ᾂ' => 'ᾊ',
|
||||
'ᾃ' => 'ᾋ',
|
||||
'ᾄ' => 'ᾌ',
|
||||
'ᾅ' => 'ᾍ',
|
||||
'ᾆ' => 'ᾎ',
|
||||
'ᾇ' => 'ᾏ',
|
||||
'ᾐ' => 'ᾘ',
|
||||
'ᾑ' => 'ᾙ',
|
||||
'ᾒ' => 'ᾚ',
|
||||
'ᾓ' => 'ᾛ',
|
||||
'ᾔ' => 'ᾜ',
|
||||
'ᾕ' => 'ᾝ',
|
||||
'ᾖ' => 'ᾞ',
|
||||
'ᾗ' => 'ᾟ',
|
||||
'ᾠ' => 'ᾨ',
|
||||
'ᾡ' => 'ᾩ',
|
||||
'ᾢ' => 'ᾪ',
|
||||
'ᾣ' => 'ᾫ',
|
||||
'ᾤ' => 'ᾬ',
|
||||
'ᾥ' => 'ᾭ',
|
||||
'ᾦ' => 'ᾮ',
|
||||
'ᾧ' => 'ᾯ',
|
||||
'ᾀ' => 'ἈΙ',
|
||||
'ᾁ' => 'ἉΙ',
|
||||
'ᾂ' => 'ἊΙ',
|
||||
'ᾃ' => 'ἋΙ',
|
||||
'ᾄ' => 'ἌΙ',
|
||||
'ᾅ' => 'ἍΙ',
|
||||
'ᾆ' => 'ἎΙ',
|
||||
'ᾇ' => 'ἏΙ',
|
||||
'ᾐ' => 'ἨΙ',
|
||||
'ᾑ' => 'ἩΙ',
|
||||
'ᾒ' => 'ἪΙ',
|
||||
'ᾓ' => 'ἫΙ',
|
||||
'ᾔ' => 'ἬΙ',
|
||||
'ᾕ' => 'ἭΙ',
|
||||
'ᾖ' => 'ἮΙ',
|
||||
'ᾗ' => 'ἯΙ',
|
||||
'ᾠ' => 'ὨΙ',
|
||||
'ᾡ' => 'ὩΙ',
|
||||
'ᾢ' => 'ὪΙ',
|
||||
'ᾣ' => 'ὫΙ',
|
||||
'ᾤ' => 'ὬΙ',
|
||||
'ᾥ' => 'ὭΙ',
|
||||
'ᾦ' => 'ὮΙ',
|
||||
'ᾧ' => 'ὯΙ',
|
||||
'ᾰ' => 'Ᾰ',
|
||||
'ᾱ' => 'Ᾱ',
|
||||
'ᾳ' => 'ᾼ',
|
||||
'ᾳ' => 'ΑΙ',
|
||||
'ι' => 'Ι',
|
||||
'ῃ' => 'ῌ',
|
||||
'ῃ' => 'ΗΙ',
|
||||
'ῐ' => 'Ῐ',
|
||||
'ῑ' => 'Ῑ',
|
||||
'ῠ' => 'Ῠ',
|
||||
'ῡ' => 'Ῡ',
|
||||
'ῥ' => 'Ῥ',
|
||||
'ῳ' => 'ῼ',
|
||||
'ῳ' => 'ΩΙ',
|
||||
'ⅎ' => 'Ⅎ',
|
||||
'ⅰ' => 'Ⅰ',
|
||||
'ⅱ' => 'Ⅱ',
|
||||
@ -1411,4 +1411,79 @@ return array (
|
||||
'𞥁' => '𞤟',
|
||||
'𞥂' => '𞤠',
|
||||
'𞥃' => '𞤡',
|
||||
'ß' => 'SS',
|
||||
'ff' => 'FF',
|
||||
'fi' => 'FI',
|
||||
'fl' => 'FL',
|
||||
'ffi' => 'FFI',
|
||||
'ffl' => 'FFL',
|
||||
'ſt' => 'ST',
|
||||
'st' => 'ST',
|
||||
'և' => 'ԵՒ',
|
||||
'ﬓ' => 'ՄՆ',
|
||||
'ﬔ' => 'ՄԵ',
|
||||
'ﬕ' => 'ՄԻ',
|
||||
'ﬖ' => 'ՎՆ',
|
||||
'ﬗ' => 'ՄԽ',
|
||||
'ʼn' => 'ʼN',
|
||||
'ΐ' => 'Ϊ́',
|
||||
'ΰ' => 'Ϋ́',
|
||||
'ǰ' => 'J̌',
|
||||
'ẖ' => 'H̱',
|
||||
'ẗ' => 'T̈',
|
||||
'ẘ' => 'W̊',
|
||||
'ẙ' => 'Y̊',
|
||||
'ẚ' => 'Aʾ',
|
||||
'ὐ' => 'Υ̓',
|
||||
'ὒ' => 'Υ̓̀',
|
||||
'ὔ' => 'Υ̓́',
|
||||
'ὖ' => 'Υ̓͂',
|
||||
'ᾶ' => 'Α͂',
|
||||
'ῆ' => 'Η͂',
|
||||
'ῒ' => 'Ϊ̀',
|
||||
'ΐ' => 'Ϊ́',
|
||||
'ῖ' => 'Ι͂',
|
||||
'ῗ' => 'Ϊ͂',
|
||||
'ῢ' => 'Ϋ̀',
|
||||
'ΰ' => 'Ϋ́',
|
||||
'ῤ' => 'Ρ̓',
|
||||
'ῦ' => 'Υ͂',
|
||||
'ῧ' => 'Ϋ͂',
|
||||
'ῶ' => 'Ω͂',
|
||||
'ᾈ' => 'ἈΙ',
|
||||
'ᾉ' => 'ἉΙ',
|
||||
'ᾊ' => 'ἊΙ',
|
||||
'ᾋ' => 'ἋΙ',
|
||||
'ᾌ' => 'ἌΙ',
|
||||
'ᾍ' => 'ἍΙ',
|
||||
'ᾎ' => 'ἎΙ',
|
||||
'ᾏ' => 'ἏΙ',
|
||||
'ᾘ' => 'ἨΙ',
|
||||
'ᾙ' => 'ἩΙ',
|
||||
'ᾚ' => 'ἪΙ',
|
||||
'ᾛ' => 'ἫΙ',
|
||||
'ᾜ' => 'ἬΙ',
|
||||
'ᾝ' => 'ἭΙ',
|
||||
'ᾞ' => 'ἮΙ',
|
||||
'ᾟ' => 'ἯΙ',
|
||||
'ᾨ' => 'ὨΙ',
|
||||
'ᾩ' => 'ὩΙ',
|
||||
'ᾪ' => 'ὪΙ',
|
||||
'ᾫ' => 'ὫΙ',
|
||||
'ᾬ' => 'ὬΙ',
|
||||
'ᾭ' => 'ὭΙ',
|
||||
'ᾮ' => 'ὮΙ',
|
||||
'ᾯ' => 'ὯΙ',
|
||||
'ᾼ' => 'ΑΙ',
|
||||
'ῌ' => 'ΗΙ',
|
||||
'ῼ' => 'ΩΙ',
|
||||
'ᾲ' => 'ᾺΙ',
|
||||
'ᾴ' => 'ΆΙ',
|
||||
'ῂ' => 'ῊΙ',
|
||||
'ῄ' => 'ΉΙ',
|
||||
'ῲ' => 'ῺΙ',
|
||||
'ῴ' => 'ΏΙ',
|
||||
'ᾷ' => 'Α͂Ι',
|
||||
'ῇ' => 'Η͂Ι',
|
||||
'ῷ' => 'Ω͂Ι',
|
||||
);
|
||||
|
@ -55,7 +55,7 @@ if (!function_exists('mb_detect_order')) {
|
||||
function mb_detect_order($encoding = null) { return p\Mbstring::mb_detect_order($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_parse_str')) {
|
||||
function mb_parse_str($string, &$result = []) { parse_str($string, $result); }
|
||||
function mb_parse_str($string, &$result = []) { parse_str($string, $result); return (bool) $result; }
|
||||
}
|
||||
if (!function_exists('mb_strlen')) {
|
||||
function mb_strlen($string, $encoding = null) { return p\Mbstring::mb_strlen($string, $encoding); }
|
||||
|
@ -48,10 +48,10 @@ if (!function_exists('mb_detect_encoding')) {
|
||||
function mb_detect_encoding(?string $string, array|string|null $encodings = null, ?bool $strict = false): string|false { return p\Mbstring::mb_detect_encoding((string) $string, $encodings, (bool) $strict); }
|
||||
}
|
||||
if (!function_exists('mb_detect_order')) {
|
||||
function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order((string) $encoding); }
|
||||
function mb_detect_order(array|string|null $encoding = null): array|bool { return p\Mbstring::mb_detect_order($encoding); }
|
||||
}
|
||||
if (!function_exists('mb_parse_str')) {
|
||||
function mb_parse_str(?string $string, &$result = []): bool { parse_str((string) $string, $result); }
|
||||
function mb_parse_str(?string $string, &$result = []): bool { parse_str((string) $string, $result); return (bool) $result; }
|
||||
}
|
||||
if (!function_exists('mb_strlen')) {
|
||||
function mb_strlen(?string $string, ?string $encoding = null): int { return p\Mbstring::mb_strlen((string) $string, $encoding); }
|
||||
@ -78,7 +78,7 @@ if (!function_exists('mb_stristr')) {
|
||||
function mb_stristr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_stristr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strrchr')) {
|
||||
function mb_strrchr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrchr((string) $haystack, (string) $needle, $before_needle, (bool) $encoding); }
|
||||
function mb_strrchr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrchr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
|
||||
}
|
||||
if (!function_exists('mb_strrichr')) {
|
||||
function mb_strrichr(?string $haystack, ?string $needle, ?bool $before_needle = false, ?string $encoding = null): string|false { return p\Mbstring::mb_strrichr((string) $haystack, (string) $needle, (bool) $before_needle, $encoding); }
|
||||
|
@ -28,7 +28,7 @@
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
2
vendor/symfony/polyfill-php72/Php72.php
vendored
2
vendor/symfony/polyfill-php72/Php72.php
vendored
@ -182,7 +182,7 @@ final class Php72
|
||||
$s = \chr(0xF0 | $code >> 18).\chr(0x80 | $code >> 12 & 0x3F).\chr(0x80 | $code >> 6 & 0x3F).\chr(0x80 | $code & 0x3F);
|
||||
}
|
||||
|
||||
if ('UTF-8' !== $encoding) {
|
||||
if ('UTF-8' !== $encoding = $encoding ?? mb_internal_encoding()) {
|
||||
$s = mb_convert_encoding($s, $encoding, 'UTF-8');
|
||||
}
|
||||
|
||||
|
2
vendor/symfony/polyfill-php72/composer.json
vendored
2
vendor/symfony/polyfill-php72/composer.json
vendored
@ -25,7 +25,7 @@
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
2
vendor/symfony/polyfill-php80/composer.json
vendored
2
vendor/symfony/polyfill-php80/composer.json
vendored
@ -30,7 +30,7 @@
|
||||
"minimum-stability": "dev",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "1.22-dev"
|
||||
"dev-main": "1.23-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/polyfill",
|
||||
|
10
vendor/symfony/var-dumper/README.md
vendored
10
vendor/symfony/var-dumper/README.md
vendored
@ -8,8 +8,8 @@ of `var_dump`.
|
||||
Resources
|
||||
---------
|
||||
|
||||
* [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
|
||||
* [Contributing](https://symfony.com/doc/current/contributing/index.html)
|
||||
* [Report issues](https://github.com/symfony/symfony/issues) and
|
||||
[send Pull Requests](https://github.com/symfony/symfony/pulls)
|
||||
in the [main Symfony repository](https://github.com/symfony/symfony)
|
||||
* [Documentation](https://symfony.com/doc/current/components/var_dumper/introduction.html)
|
||||
* [Contributing](https://symfony.com/doc/current/contributing/index.html)
|
||||
* [Report issues](https://github.com/symfony/symfony/issues) and
|
||||
[send Pull Requests](https://github.com/symfony/symfony/pulls)
|
||||
in the [main Symfony repository](https://github.com/symfony/symfony)
|
||||
|
@ -1,5 +1,5 @@
|
||||
<div class="fly-footer html5plus-hide">
|
||||
<p> Copyright © {:date('Y')}{$sysInfo.copyright|raw}v{:config('taoler.version')}</p>
|
||||
<p> Copyright © {:date('Y')} {$sysInfo.copyright|raw}v{:config('taoler.version')}</p>
|
||||
<p>
|
||||
<a href="#" target="_blank">站务反馈</a>
|
||||
<a href="#" target="_blank">获取本站源码</a>
|
||||
|
Loading…
x
Reference in New Issue
Block a user