帖子相关
This commit is contained in:
parent
38ac88505b
commit
a5acd6cb6e
@ -45,6 +45,13 @@ abstract class BaseController
|
||||
*/
|
||||
protected $middleware = [];
|
||||
|
||||
/**
|
||||
* article content
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $content = '';
|
||||
|
||||
/**
|
||||
* 构造方法
|
||||
* @access public
|
||||
@ -221,7 +228,7 @@ abstract class BaseController
|
||||
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false );
|
||||
curl_setopt($ch, CURLOPT_URL, $url);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
|
||||
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
|
||||
$file = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
return $this->saveAsImage($url, $file);
|
||||
@ -265,8 +272,9 @@ abstract class BaseController
|
||||
//下载网络图片到本地并替换
|
||||
public function downUrlPicsReaplace($content)
|
||||
{
|
||||
$this->content = $content;
|
||||
// 批量下载网络图片并替换
|
||||
$images = $this->getArticleAllpic($content);
|
||||
$images = $this->getArticleAllpic($this->content);
|
||||
if(count($images)) {
|
||||
foreach($images as $image){
|
||||
//1.带http地址的图片,2.非本站的网络图片 3.非带有?号等参数的图片
|
||||
@ -275,13 +283,13 @@ abstract class BaseController
|
||||
//下载远程图片(可下载)
|
||||
$newImageUrl = $this->downloadImage($image);
|
||||
//替换图片链接
|
||||
$content = str_replace($image, Request::domain().$newImageUrl, $content);
|
||||
$this->content = str_replace($image, Request::domain().$newImageUrl, $this->content);
|
||||
}
|
||||
}
|
||||
//不可下载的图片,如加密或者带有参数的图片如?type=jpeg,直接返回content
|
||||
}
|
||||
|
||||
return $content;
|
||||
return $this->content;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -166,7 +166,29 @@ class Comment extends AdminController
|
||||
return json(['code'=>0,'msg'=>'评论被禁止','icon'=>5]);
|
||||
}
|
||||
return json(['code'=>-1,'msg'=>'审核出错']);
|
||||
}
|
||||
|
||||
/**
|
||||
* 多选批量审核
|
||||
*
|
||||
* @return Json
|
||||
*/
|
||||
public function checkSelect()
|
||||
{
|
||||
$param = Request::param('data');
|
||||
$data = [];
|
||||
foreach($param as $v) {
|
||||
$data[] = ['id' => (int)$v['id'], 'status' => $v['check'] == '1' ? '-1' : '1'];
|
||||
}
|
||||
|
||||
//获取状态
|
||||
$res = $this->model->saveAll($data);
|
||||
|
||||
if($res){
|
||||
return json(['code'=>0,'msg'=>'审核成功','icon'=>6]);
|
||||
}else {
|
||||
return json(['code'=>-1,'msg'=>'失败啦','icon'=>6]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -277,6 +277,29 @@ class Forum extends AdminController
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 多选批量审核
|
||||
*
|
||||
* @return Json
|
||||
*/
|
||||
public function checkSelect()
|
||||
{
|
||||
$param = Request::param('data');
|
||||
$data = [];
|
||||
foreach($param as $v) {
|
||||
$data[] = ['id' => (int)$v['id'], 'status' => $v['check'] == '1' ? '-1' : '1'];
|
||||
}
|
||||
|
||||
//获取状态
|
||||
$res = $this->model->saveAll($data);
|
||||
|
||||
if($res){
|
||||
return json(['code'=>0,'msg'=>'审核成功','icon'=>6]);
|
||||
}else {
|
||||
return json(['code'=>-1,'msg'=>'失败啦','icon'=>6]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传接口
|
||||
*
|
||||
|
@ -5,74 +5,77 @@
|
||||
<title>管理员管理</title>
|
||||
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
|
||||
</head>
|
||||
<body class="pear-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline layuiadmin-input-useradmin">
|
||||
<label class="layui-form-label">回帖人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<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-form-item layui-inline">
|
||||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="comment-query">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
查询
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-md">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="comment-table" lay-filter="comment-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
<body class="pear-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="">
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline layuiadmin-input-useradmin">
|
||||
<label class="layui-form-label">回帖人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<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-form-item layui-inline">
|
||||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="comment-query">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
查询
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-md">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="comment-table" lay-filter="comment-table"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="comment-toolbar">
|
||||
<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
</script>
|
||||
<script type="text/html" id="comment-toolbar">
|
||||
<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="pear-btn layui-bg-orange pear-btn-md" lay-event="checkSelect">
|
||||
批量审核
|
||||
</button>
|
||||
</script>
|
||||
|
||||
|
||||
<script type="text/html" id="imgTpl">
|
||||
<img style="width: 25px; height: 25px;" src= {{ d.avatar }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonCheck">
|
||||
<input type="checkbox" name="check" lay-skin="switch" lay-filter="check" lay-text="通过|{{ d.check == 0 ? '待审' : '禁止' }}" {{ d.check == 1 ? 'checked' : '' }} id="{{d.id}}" >
|
||||
<script type="text/html" id="imgTpl">
|
||||
<img style="width: 25px; height: 25px;" src= {{ d.avatar }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonCheck">
|
||||
<input type="checkbox" name="check" lay-skin="switch" lay-filter="check" lay-text="通过|{{ d.check == 0 ? '待审' : '禁止' }}" {{ d.check == 1 ? 'checked' : '' }} id="{{d.id}}" >
|
||||
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="comment-bar">
|
||||
<!--<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>-->
|
||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
|
||||
</script>
|
||||
<script type="text/html" id="comment-bar">
|
||||
<!--<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>-->
|
||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
|
||||
</script>
|
||||
|
||||
</div>
|
||||
|
||||
@ -125,7 +128,9 @@
|
||||
window.refresh();
|
||||
} else if (obj.event === 'batchRemove') {
|
||||
window.batchRemove(obj);
|
||||
}
|
||||
} else if (obj.event === 'checkSelect') {
|
||||
window.checkSelect(obj);
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(comment-query)', function(data) {
|
||||
@ -246,6 +251,53 @@
|
||||
});
|
||||
}
|
||||
|
||||
// 全选审核
|
||||
window.checkSelect = function(obj) {
|
||||
var id = obj.config.id;
|
||||
var checkStatus = table.checkStatus(id);
|
||||
var data = checkStatus.data;
|
||||
|
||||
if (data.length === 0) {
|
||||
layer.msg("未选中数据", {
|
||||
icon: 3,
|
||||
time: 1000
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
layer.confirm('确定要审核?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function(index) {
|
||||
layer.close(index);
|
||||
let loading = layer.load();
|
||||
console.log(data)
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "{:url('content.comment/checkSelect')}",
|
||||
dataType: 'json',
|
||||
data: {data},
|
||||
success: function(result) {
|
||||
layer.close(loading);
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
table.reload('comment-table');
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
window.refresh = function(param) {
|
||||
table.reload('comment-table');
|
||||
}
|
||||
|
@ -5,339 +5,392 @@
|
||||
<title>用户管理</title>
|
||||
<link rel="stylesheet" href="/static/component/pear/css/pear.css" />
|
||||
</head>
|
||||
<body class="pear-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="">
|
||||
<div class="layui-row layui-col-space15 ">
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">选择类目</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="CateId" class="xm-select-demo"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">帖子ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">发帖人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<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-col-md3">
|
||||
<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="4">禁评</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="forum-query">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
查询
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-md">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="forum-table" lay-filter="forum-table" ></table>
|
||||
</div>
|
||||
</div>
|
||||
<body class="pear-container">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<form class="layui-form" action="">
|
||||
<div class="layui-row layui-col-space15 ">
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">选择类目</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="CateId" class="xm-select-demo"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">帖子ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="id" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<label class="layui-form-label">发帖人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" placeholder="请输入" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<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-col-md3">
|
||||
<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="4">禁评</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md3">
|
||||
<button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="forum-query">
|
||||
<i class="layui-icon layui-icon-search"></i>
|
||||
查询
|
||||
</button>
|
||||
<button type="reset" class="pear-btn pear-btn-md">
|
||||
<i class="layui-icon layui-icon-refresh"></i>
|
||||
重置
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<table id="forum-table" lay-filter="forum-table" ></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="forum-toolbar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
</script>
|
||||
<script type="text/html" id="forum-toolbar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
|
||||
<i class="layui-icon layui-icon-add-1"></i>
|
||||
新增
|
||||
</button>
|
||||
<button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
|
||||
<i class="layui-icon layui-icon-delete"></i>
|
||||
删除
|
||||
</button>
|
||||
<button class="pear-btn layui-bg-orange pear-btn-md" lay-event="checkSelect">
|
||||
批量审核
|
||||
</button>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="avatarTpl">
|
||||
<div><img style="width: 25px; height: 25px;" src= "{{ d.avatar }}"></div>
|
||||
</script>
|
||||
<script type="text/html" id="forum-istop">
|
||||
<input type="checkbox" name="is_top" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="isTop" {{ d.top == 1 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonHot">
|
||||
<input type="checkbox" name="is_hot" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="isHot" {{ d.hot == 1 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonReply">
|
||||
<input type="checkbox" name="is_reply" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="isReply" {{ d.reply == 0 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonCheck">
|
||||
<input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-filter="artStatus" lay-text="通过|{{ d.check == 0 ? '待审' : '禁止' }}" {{ d.check == 1 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="avatarTpl">
|
||||
<div><img style="width: 25px; height: 25px;" src= "{{ d.avatar }}"></div>
|
||||
</script>
|
||||
<script type="text/html" id="forum-istop">
|
||||
<input type="checkbox" name="is_top" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="isTop" {{ d.top == 1 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonHot">
|
||||
<input type="checkbox" name="is_hot" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="isHot" {{ d.hot == 1 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonReply">
|
||||
<input type="checkbox" name="is_reply" value="{{d.id}}" lay-skin="switch" lay-text="是|否" lay-filter="isReply" {{ d.reply == 0 ? 'checked' : '' }}>
|
||||
</script>
|
||||
<script type="text/html" id="buttonCheck">
|
||||
<input type="checkbox" name="status" value="{{d.id}}" lay-skin="switch" lay-filter="artStatus" lay-text="通过|{{ d.check == 0 ? '待审' : '禁止' }}" {{ d.check == 1 ? 'checked' : '' }}>
|
||||
</script>
|
||||
|
||||
<script type="text/html" id="forum-table-bar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
|
||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
|
||||
</script>
|
||||
<script type="text/html" id="forum-table-bar">
|
||||
<button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
|
||||
<button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
|
||||
</script>
|
||||
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
<script src="/static/component/layui/layui.js"></script>
|
||||
<script src="/static/component/pear/pear.js"></script>
|
||||
|
||||
<script>
|
||||
const FORUM_List = "{:url('content.forum/list')}";
|
||||
<script>
|
||||
const FORUM_List = "{:url('content.forum/list')}";
|
||||
|
||||
layui.use(['toast','jquery','form', 'table','common','xmSelect'], function(){
|
||||
var $ = layui.jquery
|
||||
,form = layui.form
|
||||
,table = layui.table;
|
||||
let common = layui.common;
|
||||
var toast = layui.toast;
|
||||
var xmSelect = layui.xmSelect;
|
||||
layui.use(['toast','jquery','form', 'table','common','xmSelect'], function(){
|
||||
var $ = layui.jquery
|
||||
,form = layui.form
|
||||
,table = layui.table;
|
||||
let common = layui.common;
|
||||
var toast = layui.toast;
|
||||
var xmSelect = layui.xmSelect;
|
||||
|
||||
let cols = [
|
||||
[
|
||||
{type: 'checkbox'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true}
|
||||
,{field: 'avatar', title: '头像', width: 60, templet: '#avatarTpl'}
|
||||
,{field: 'poster', title: '账号',width: 80}
|
||||
,{field: 'title', title: '标题', minWidth: 180, templet: '<div><a href="{{- d.url }}" target="_blank">{{- d.title }}</a></div>'}
|
||||
,{field: 'cate', title: '类别', width: 120}
|
||||
,{field: 'content', title: '内容', 'escape':false, minWidth: 200}
|
||||
,{field: 'posttime', title: '时间',width: 120, sort: true}
|
||||
,{field: 'top', title: '置顶', templet: '#forum-istop', 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: 95, align: 'center'}
|
||||
,{title: '操作', width: 110, align: 'center', toolbar: '#forum-table-bar'}
|
||||
]
|
||||
];
|
||||
let cols = [
|
||||
[
|
||||
{type: 'checkbox'}
|
||||
,{field: 'id', width: 60, title: 'ID', sort: true}
|
||||
,{field: 'avatar', title: '头像', width: 60, templet: '#avatarTpl'}
|
||||
,{field: 'poster', title: '账号',width: 80}
|
||||
,{field: 'title', title: '标题', minWidth: 180, templet: '<div><a href="{{- d.url }}" target="_blank">{{- d.title }}</a></div>'}
|
||||
,{field: 'cate', title: '类别', width: 120}
|
||||
,{field: 'content', title: '内容', 'escape':false, minWidth: 200}
|
||||
,{field: 'posttime', title: '时间',width: 120, sort: true}
|
||||
,{field: 'top', title: '置顶', templet: '#forum-istop', 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: 95, align: 'center'}
|
||||
,{title: '操作', width: 110, align: 'center', toolbar: '#forum-table-bar'}
|
||||
]
|
||||
];
|
||||
|
||||
table.render({
|
||||
elem: '#forum-table',
|
||||
url: FORUM_List,
|
||||
page: true,
|
||||
cols: cols,
|
||||
skin: 'line',
|
||||
toolbar: '#forum-toolbar',
|
||||
defaultToolbar: [{
|
||||
title: '刷新',
|
||||
layEvent: 'refresh',
|
||||
icon: 'layui-icon-refresh',
|
||||
}, 'filter', 'print', 'exports']
|
||||
});
|
||||
table.render({
|
||||
elem: '#forum-table',
|
||||
url: FORUM_List,
|
||||
page: true,
|
||||
cols: cols,
|
||||
skin: 'line',
|
||||
toolbar: '#forum-toolbar',
|
||||
defaultToolbar: [{
|
||||
title: '刷新',
|
||||
layEvent: 'refresh',
|
||||
icon: 'layui-icon-refresh',
|
||||
}, 'filter', 'print', 'exports']
|
||||
});
|
||||
|
||||
// 动态分类
|
||||
function getSelectCate() {
|
||||
// 分类选择
|
||||
$.get("{:url('content.forum/getCateList')}", function(res){
|
||||
// 渲染下拉树
|
||||
xmSelect.render({
|
||||
el: '#CateId',
|
||||
name: 'cate_id',
|
||||
height: '250px',
|
||||
layVerify: '',
|
||||
layVerType: 'tips',
|
||||
data: res.data,
|
||||
initValue: [],
|
||||
model: {label: {type: 'text'}},
|
||||
prop: {
|
||||
name: 'catename',
|
||||
value: 'id'
|
||||
},
|
||||
radio: true,
|
||||
clickClose: true,
|
||||
tree: {
|
||||
show: true,
|
||||
indent: 15,
|
||||
strict: false,
|
||||
expandedKeys: true
|
||||
},
|
||||
tips: '请选择'
|
||||
});
|
||||
});
|
||||
}
|
||||
getSelectCate();
|
||||
// 动态分类
|
||||
function getSelectCate() {
|
||||
// 分类选择
|
||||
$.get("{:url('content.forum/getCateList')}", function(res){
|
||||
// 渲染下拉树
|
||||
xmSelect.render({
|
||||
el: '#CateId',
|
||||
name: 'cate_id',
|
||||
height: '250px',
|
||||
layVerify: '',
|
||||
layVerType: 'tips',
|
||||
data: res.data,
|
||||
initValue: [],
|
||||
model: {label: {type: 'text'}},
|
||||
prop: {
|
||||
name: 'catename',
|
||||
value: 'id'
|
||||
},
|
||||
radio: true,
|
||||
clickClose: true,
|
||||
tree: {
|
||||
show: true,
|
||||
indent: 15,
|
||||
strict: false,
|
||||
expandedKeys: true
|
||||
},
|
||||
tips: '请选择'
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
table.on('tool(forum-table)', function(obj) {
|
||||
if (obj.event === 'remove') {
|
||||
window.remove(obj);
|
||||
} else if (obj.event === 'edit') {
|
||||
window.edit(obj);
|
||||
}
|
||||
});
|
||||
getSelectCate();
|
||||
|
||||
table.on('toolbar(forum-table)', function(obj) {
|
||||
if (obj.event === 'add') {
|
||||
window.add();
|
||||
} else if (obj.event === 'refresh') {
|
||||
window.refresh();
|
||||
} else if (obj.event === 'batchRemove') {
|
||||
window.batchRemove(obj);
|
||||
}
|
||||
});
|
||||
table.on('tool(forum-table)', function(obj) {
|
||||
if (obj.event === 'remove') {
|
||||
window.remove(obj);
|
||||
} else if (obj.event === 'edit') {
|
||||
window.edit(obj);
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(forum-query)', function(data) {
|
||||
table.reload('forum-table', {
|
||||
where: data.field,
|
||||
page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
table.on('toolbar(forum-table)', function(obj) {
|
||||
if (obj.event === 'add') {
|
||||
window.add();
|
||||
} else if (obj.event === 'refresh') {
|
||||
window.refresh();
|
||||
} else if (obj.event === 'batchRemove') {
|
||||
window.batchRemove(obj);
|
||||
} else if (obj.event === 'checkSelect') {
|
||||
window.checkSelect(obj);
|
||||
}
|
||||
});
|
||||
|
||||
// 监听置顶
|
||||
form.on('switch(isTop)', function(obj){
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value:obj.elem.checked ? 1 : 0},function(res){
|
||||
layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
});
|
||||
});
|
||||
form.on('submit(forum-query)', function(data) {
|
||||
table.reload('forum-table', {
|
||||
where: data.field,
|
||||
page: {
|
||||
curr: 1 //重新从第 1 页开始
|
||||
}
|
||||
})
|
||||
return false;
|
||||
});
|
||||
|
||||
// 监听加精
|
||||
form.on('switch(isHot)', function(obj){
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value: obj.elem.checked ? 1 : 0},function(res){
|
||||
layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
});
|
||||
});
|
||||
// 监听置顶
|
||||
form.on('switch(isTop)', function(obj){
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value:obj.elem.checked ? 1 : 0},function(res){
|
||||
layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
});
|
||||
});
|
||||
|
||||
// 监听回复
|
||||
form.on('switch(isReply)', function(obj){
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value: obj.elem.checked ? 0 : 1},function(res){
|
||||
layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
});
|
||||
});
|
||||
// 监听加精
|
||||
form.on('switch(isHot)', function(obj){
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value: obj.elem.checked ? 1 : 0},function(res){
|
||||
layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
});
|
||||
});
|
||||
|
||||
// 监听审贴
|
||||
form.on('switch(artStatus)', function(obj){
|
||||
//layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value: obj.elem.checked ? 1 : -1},function(res){
|
||||
if(res.code === 0){
|
||||
layer.msg(res.msg,{icon:res.icon,time:2000})
|
||||
} else {
|
||||
layer.open({title:'审核失败',content:res.msg,icon:5,adim:6})
|
||||
}
|
||||
});
|
||||
});
|
||||
// 监听回复
|
||||
form.on('switch(isReply)', function(obj){
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value: obj.elem.checked ? 0 : 1},function(res){
|
||||
layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
});
|
||||
});
|
||||
|
||||
window.add = function() {
|
||||
// 监听审贴
|
||||
form.on('switch(artStatus)', function(obj){
|
||||
//layer.tips(obj.value + ' ' + obj.elem.name + ':'+ obj.elem.checked, obj.othis);
|
||||
$.post("{:url('content.forum/check')}",{id:obj.value, name:obj.elem.name,value: obj.elem.checked ? 1 : -1},function(res){
|
||||
if(res.code === 0){
|
||||
layer.msg(res.msg,{icon:res.icon,time:2000})
|
||||
} else {
|
||||
layer.open({title:'审核失败',content:res.msg,icon:5,adim:6})
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shade: 0.1,
|
||||
area: [common.isModile()?'100%':'100%', common.isModile()?'100%':'100%'],
|
||||
content: 'add.html'
|
||||
});
|
||||
}
|
||||
// 添加
|
||||
window.add = function() {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '新增',
|
||||
shade: 0.1,
|
||||
area: [common.isModile()?'100%':'100%', common.isModile()?'100%':'100%'],
|
||||
content: 'add.html'
|
||||
});
|
||||
}
|
||||
|
||||
window.edit = function(obj) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
shade: 0.1,
|
||||
area: ['100%', '100%'],
|
||||
content: 'edit.html?id=' + obj.data.id
|
||||
});
|
||||
}
|
||||
window.edit = function(obj) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '修改',
|
||||
shade: 0.1,
|
||||
area: ['100%', '100%'],
|
||||
content: 'edit.html?id=' + obj.data.id
|
||||
});
|
||||
}
|
||||
|
||||
window.remove = function(obj) {
|
||||
window.remove = function(obj) {
|
||||
layer.confirm('确定要删除?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function(index) {
|
||||
layer.close(index);
|
||||
let loading = layer.load();
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/delete')}?id=" + obj.data['id'],
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function(result) {
|
||||
layer.close(loading);
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
obj.del();
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
layer.confirm('确定要删除?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function(index) {
|
||||
layer.close(index);
|
||||
let loading = layer.load();
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/delete')}?id=" + obj.data['id'],
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
success: function(result) {
|
||||
layer.close(loading);
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
obj.del();
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
// 批量删除
|
||||
window.batchRemove = function(obj) {
|
||||
var checkIds = common.checkField(obj,'id');
|
||||
if (checkIds === "") {
|
||||
layer.msg("未选中数据", {
|
||||
icon: 3,
|
||||
time: 1000
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
window.batchRemove = function(obj) {
|
||||
var checkIds = common.checkField(obj,'id');
|
||||
if (checkIds === "") {
|
||||
layer.msg("未选中数据", {
|
||||
icon: 3,
|
||||
time: 1000
|
||||
});
|
||||
return false;
|
||||
}
|
||||
layer.confirm('确定要删除?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function(index) {
|
||||
layer.close(index);
|
||||
let loading = layer.load();
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/delete')}?id=" + checkIds,
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
data:{"id":checkIds},
|
||||
success: function(result) {
|
||||
layer.close(loading);
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
table.reload('forum-table');
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
layer.confirm('确定要删除?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function(index) {
|
||||
layer.close(index);
|
||||
let loading = layer.load();
|
||||
$.ajax({
|
||||
url: "{:url('content.forum/delete')}?id=" + checkIds,
|
||||
dataType: 'json',
|
||||
type: 'delete',
|
||||
data:{"id":checkIds},
|
||||
success: function(result) {
|
||||
layer.close(loading);
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
table.reload('forum-table');
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
// 全选审核
|
||||
window.checkSelect = function(obj) {
|
||||
var id = obj.config.id;
|
||||
var checkStatus = table.checkStatus(id);
|
||||
var data = checkStatus.data;
|
||||
|
||||
window.refresh = function(param) {
|
||||
table.reload('forum-table');
|
||||
}
|
||||
if (data.length === 0) {
|
||||
layer.msg("未选中数据", {
|
||||
icon: 3,
|
||||
time: 1000
|
||||
});
|
||||
return false;
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
layer.confirm('确定要审核?', {
|
||||
icon: 3,
|
||||
title: '提示'
|
||||
}, function(index) {
|
||||
layer.close(index);
|
||||
let loading = layer.load();
|
||||
console.log(data)
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "{:url('content.forum/checkSelect')}",
|
||||
dataType: 'json',
|
||||
data: {data},
|
||||
success: function(result) {
|
||||
layer.close(loading);
|
||||
if (result.code === 0) {
|
||||
layer.msg(result.msg, {
|
||||
icon: 1,
|
||||
time: 1000
|
||||
}, function() {
|
||||
table.reload('forum-table');
|
||||
});
|
||||
} else {
|
||||
layer.msg(result.msg, {
|
||||
icon: 2,
|
||||
time: 1000
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// 刷新
|
||||
window.refresh = function(param) {
|
||||
table.reload('forum-table');
|
||||
}
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -81,7 +81,7 @@
|
||||
</button>
|
||||
</script>
|
||||
<script type="text/html" id="imgTpl">
|
||||
<a href="{:url('user.user/goUserHome')}?id={{ d.id }}" target="_blank"><img src= {{=d.avatar}} style="width: 100px; height: 100px; border-radius: 6px;" /></a>
|
||||
<a href="{:url('user.user/goUserHome')}?id={{ d.id }}" target="_blank"><img src= {{=d.avatar}} style="width: 100px; height: 100px; border-radius: 6px; object-fit: cover;"/></a>
|
||||
</script>
|
||||
<script type="text/html" id="userInfoTpl">
|
||||
<ul>
|
||||
|
@ -23,38 +23,37 @@
|
||||
<label class="layui-form-label">用户积分</label>
|
||||
<div class="layui-input-inline" style="width: 120px;">
|
||||
<select name="vip">
|
||||
<option value="0">普通</option>
|
||||
<option value="1">L1</option>
|
||||
<option value="2">L2</option>
|
||||
<option value="3">L3</option>
|
||||
<option value="4">L4</option>
|
||||
<option value="5">L5</option>
|
||||
|
||||
<option value="0">普通</option>
|
||||
<option value="1">L1</option>
|
||||
<option value="2">L2</option>
|
||||
<option value="3">L3</option>
|
||||
<option value="4">L4</option>
|
||||
<option value="5">L5</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="score" lay-verify="required" placeholder="积分区间:0-99" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="nick" lay-verify="required" placeholder="认证名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="postnum" lay-verify="required|number" placeholder="免费发帖日限额" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="refreshnum" lay-verify="required|number" placeholder="免费刷新日限额" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="postpoint" lay-verify="required|number" placeholder="发帖扣积分" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="refreshpoint" lay-verify="required|number" placeholder="刷贴扣积分" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="submit" class="pear-btn pear-btn-primary" lay-submit lay-filter="vip-rule-submit" id="vip-rule-submit" value="立即提交">
|
||||
</div>
|
||||
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="score" lay-verify="required" placeholder="积分区间:0-99" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="nick" lay-verify="required" placeholder="认证名称" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="postnum" lay-verify="required|number" placeholder="免费发帖日限额" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="refreshnum" lay-verify="required|number" placeholder="免费刷新日限额" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="postpoint" lay-verify="required|number" placeholder="发帖扣积分" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" name="refreshpoint" lay-verify="required|number" placeholder="刷贴扣积分" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline">
|
||||
<input type="submit" class="pear-btn pear-btn-primary" lay-submit lay-filter="vip-rule-submit" id="vip-rule-submit" value="立即提交">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -99,7 +99,9 @@ class BaseController extends BaseCtrl
|
||||
if(!$user){
|
||||
//1.查询用户
|
||||
$user = Db::name('user')->field('id,name,nickname,user_img,sex,area_id,auth,city,phone,email,active,sign,point,vip,create_time')->find($id);
|
||||
Cache::tag('user')->set('user'.$id,$user,600);
|
||||
$vipNick = Db::name('user_viprule')->field('nick')->where('vip', $user['vip'] ?? 0)->value('nick');
|
||||
$user['nick'] = $vipNick;
|
||||
Cache::tag('user')->set('user'.$id, $user, 600);
|
||||
}
|
||||
return $user;
|
||||
}
|
||||
|
@ -275,6 +275,7 @@ class Article extends Model
|
||||
->where(['user_id' => $id,'status' => 1])
|
||||
->order(['create_time'=>'desc'])
|
||||
->append(['url'])
|
||||
->limit(25)
|
||||
->cache(3600)
|
||||
->select()
|
||||
->toArray();
|
||||
@ -298,7 +299,8 @@ class Article extends Model
|
||||
->order('create_time','desc')
|
||||
->append(['url'])
|
||||
->paginate(10);
|
||||
return $res;
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -30,6 +30,7 @@ class Article extends TagLib
|
||||
'description' => ['attr' => '', 'close' => 0],
|
||||
'link' => ['attr' => '', 'close' => 0],
|
||||
'time' => ['attr' => '', 'close' => 0],
|
||||
'uptime' => ['attr' => '', 'close' => 0],
|
||||
|
||||
'cate' => ['attr' => 'name', 'close' => 0],
|
||||
'user' => ['attr' => 'name', 'close' => 0],
|
||||
@ -102,6 +103,11 @@ class Article extends TagLib
|
||||
return '{$article.create_time}';
|
||||
}
|
||||
|
||||
public function tagUptime(): string
|
||||
{
|
||||
return '{$article.update_time}';
|
||||
}
|
||||
|
||||
// 详情分类
|
||||
public function tagCate($tag): string
|
||||
{
|
||||
|
@ -262,26 +262,32 @@ class Article extends BaseController
|
||||
$cateName = Db::name('cate')->field('ename,appname')->find($data['cate_id']);
|
||||
|
||||
// vip每天可免费发帖数
|
||||
$user = Db::name('user')->field('id,vip,point')->find($this->uid);
|
||||
$user = Db::name('user')->field('id,vip,point,auth')->find($this->uid);
|
||||
|
||||
$postRule = Db::name('user_viprule')->field('postnum,postpoint')->where('vip', $user['vip'])->find();
|
||||
// 检测刷新帖子剩余量
|
||||
// 检测可发帖子剩余量
|
||||
$postLog = Db::name('user_article_log')->field('id,user_postnum')->where(['user_id' => $this->uid])->whereDay('create_time')->find();
|
||||
if(is_null($postLog)) {
|
||||
//没有记录创建
|
||||
Db::name('user_article_log')->save(['user_id' => $this->uid, 'create_time' => time()]);
|
||||
$postLog = Db::name('user_article_log')->field('id,user_postnum')->where(['user_id' => $this->uid])->whereDay('create_time')->find();
|
||||
}
|
||||
$cannum = $postRule['postnum'] - $postLog['user_postnum']; // 可用免费额
|
||||
if($cannum <= 0) {
|
||||
//额度已用完需要扣积分
|
||||
$canpoint = 1 * $postRule['postpoint'];
|
||||
$point = $user['point'] - $canpoint;
|
||||
if($point < 0) { // 1.积分不足
|
||||
return json(['code' => -1, 'msg' => "免额已使用,本次需{$canpoint}积分,请充值!"]);
|
||||
}
|
||||
// 2.扣除积分
|
||||
Db::name('user')->where('id', $this->uid)->update(['point' => $point]);
|
||||
}
|
||||
|
||||
// 超级管理员排外
|
||||
if($user['auth'] === '0') {
|
||||
$cannum = $postRule['postnum'] - $postLog['user_postnum']; // 可用免费额
|
||||
if($cannum <= 0) {
|
||||
//额度已用完需要扣积分
|
||||
$canpoint = 1 * $postRule['postpoint'];
|
||||
$point = $user['point'] - $canpoint;
|
||||
if($point < 0) { // 1.积分不足
|
||||
return json(['code' => -1, 'msg' => "免额已使用,本次需{$canpoint}积分,请充值!"]);
|
||||
}
|
||||
// 2.扣除积分
|
||||
Db::name('user')->where('id', $this->uid)->update(['point' => $point]);
|
||||
}
|
||||
}
|
||||
|
||||
$result = $this->model->add($data);
|
||||
if ($result['code'] == 1) {
|
||||
// 记录每天发帖量
|
||||
|
@ -127,7 +127,8 @@ class User extends BaseController
|
||||
$count = count($idArr);
|
||||
|
||||
// vip每天可刷新数
|
||||
$user = Db::name('user')->field('id,vip,point')->find($this->uid);
|
||||
$user = Db::name('user')->field('id,vip,point,auth')->find($this->uid);
|
||||
|
||||
$refreshRule = Db::name('user_viprule')->field('refreshnum,refreshpoint')->where('vip', $user['vip'])->find();
|
||||
// 检测刷新帖子剩余量
|
||||
$refreshLog = Db::name('user_article_log')->field('id,user_refreshnum')->where(['user_id' => $this->uid])->whereDay('create_time')->find();
|
||||
@ -135,29 +136,32 @@ class User extends BaseController
|
||||
Db::name('user_article_log')->save(['user_id' => $this->uid, 'create_time' => time()]);
|
||||
$refreshLog = Db::name('user_article_log')->field('id,user_refreshnum')->where(['user_id' => $this->uid])->whereDay('create_time')->find();
|
||||
}
|
||||
$cannum = $refreshRule['refreshnum'] - $refreshLog['user_refreshnum']; // 可用免费数
|
||||
// 刷帖先扣积分
|
||||
if($cannum <= 0) { // a.免费额已用完 后面需要积分
|
||||
$canpoint = $count * $refreshRule['refreshpoint'];
|
||||
$point = $user['point'] - $canpoint;
|
||||
if($point < 0) {
|
||||
// 1.积分不足
|
||||
return json(['code' => -1, 'msg' => "免额已使用,本次需{$canpoint}积分,请充值!"]);
|
||||
} else {
|
||||
// 2.扣除积分
|
||||
Db::name('user')->where('id', $this->uid)->update(['point' => $point]);
|
||||
}
|
||||
} else { // b.未超限 有剩余条数
|
||||
if($count > $cannum) { // 本次刷新数量大于剩余免费数量,需要支付积分
|
||||
$canpoint = ($count - $cannum) * $refreshRule['refreshpoint'];
|
||||
// 超级管理员排外
|
||||
if($user['auth'] === '0') {
|
||||
$cannum = $refreshRule['refreshnum'] - $refreshLog['user_refreshnum']; // 可用免费数
|
||||
// 刷帖先扣积分
|
||||
if($cannum <= 0) { // a.免费额已用完 后面需要积分
|
||||
$canpoint = $count * $refreshRule['refreshpoint'];
|
||||
$point = $user['point'] - $canpoint;
|
||||
if($point < 0) {
|
||||
// 1.积分不足
|
||||
return json(['code' => -1, 'msg' => "免额已使用,本次需{$canpoint}积分,额度不足请充值!"]);
|
||||
return json(['code' => -1, 'msg' => "免额已使用,本次需{$canpoint}积分,请充值!"]);
|
||||
} else {
|
||||
// 2.扣除积分
|
||||
Db::name('user')->where('id', $this->uid)->update(['point' => $point]);
|
||||
}
|
||||
} else { // b.未超限 有剩余条数
|
||||
if($count > $cannum) { // 本次刷新数量大于剩余免费数量,需要支付积分
|
||||
$canpoint = ($count - $cannum) * $refreshRule['refreshpoint'];
|
||||
$point = $user['point'] - $canpoint;
|
||||
if($point < 0) {
|
||||
// 1.积分不足
|
||||
return json(['code' => -1, 'msg' => "免额已使用,本次需{$canpoint}积分,额度不足请充值!"]);
|
||||
} else {
|
||||
// 2.扣除积分
|
||||
Db::name('user')->where('id', $this->uid)->update(['point' => $point]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -302,6 +306,7 @@ class User extends BaseController
|
||||
->where(['a.delete_time'=>0,'c.delete_time'=>0,'c.status'=>1])
|
||||
->where('c.user_id',$id)
|
||||
->order(['c.create_time'=>'desc'])
|
||||
->limit(10)
|
||||
->cache(3600)->select();
|
||||
|
||||
View::assign(['u'=>$u,'arts'=>$arts,'reys'=>$reys,'jspage'=>'']);
|
||||
|
@ -16,7 +16,7 @@ return [
|
||||
// 应用名,此项不可更改
|
||||
'appname' => 'TaoLer',
|
||||
// 版本配置
|
||||
'version' => '2.5.0',
|
||||
'version' => '2.5.2',
|
||||
// 加盐
|
||||
'salt' => 'taoler',
|
||||
// 数据库备份目录
|
||||
|
@ -191,8 +191,8 @@ pre{overflow-y: auto;
|
||||
|
||||
.fly-nav-user{position: absolute; top: 0; right: 0;}
|
||||
.fly-nav-user .iconfont{position: relative;}
|
||||
.fly-nav-avatar img{width: 36px; height: 36px; margin-left: 10px; border-radius: 100%;}
|
||||
.fly-nav-avatar .icon-renzheng{font-size: 16px; top: 1px;}
|
||||
.fly-nav-avatar img{width: 36px; height: 36px; margin-left: 10px; border-radius: 100%; object-fit: cover;}
|
||||
.fly-nav-avatar .icon-renzheng{font-size: 16px; top: 1px;}
|
||||
.fly-nav-avatar .fly-badge-vip{position: relative; margin-left: 10px;}
|
||||
.fly-nav-user .layui-nav-child a i{position: relative; top: 2px; margin-right: 10px; font-size: 26px;}
|
||||
|
||||
@ -601,6 +601,10 @@ body .fly-user-main{position: relative; min-height: 600px;}
|
||||
.fly-user-main .fly-none{min-height: 0;}
|
||||
.fly-panel-user[pad20]{padding-top: 5px;}
|
||||
|
||||
@media screen and (max-width: 768px) {
|
||||
.fly-user-main>.fly-panel{margin: 0 0 10px 0;}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 768px) {
|
||||
.fly-panel-user{height: calc(100vh - 280px)}
|
||||
}
|
||||
@ -618,7 +622,7 @@ body .fly-user-main{position: relative; min-height: 600px;}
|
||||
|
||||
/* 个人主页 */
|
||||
.fly-home{position: relative; padding: 30px 0 30px; text-align: center;}
|
||||
.fly-home img{width:120px; height:120px; border-radius:100%;}
|
||||
.fly-home img{width:120px; height:120px; border-radius:100%; object-fit: cover;}
|
||||
.fly-home h1{font-size:26px; line-height:30px; margin-top:10px;}
|
||||
.fly-home h1 span{font-size:14px; color:#999;}
|
||||
.fly-home h1 .icon-nan{color:#4EBBF9}
|
||||
|
@ -18,7 +18,7 @@
|
||||
<div class="layui-container">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md8 content detail">
|
||||
<div class="fly-panel detail-box">
|
||||
<section class="fly-panel detail-box">
|
||||
{//标题}
|
||||
<h1>{article:title /}</h1>
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<img src="{article:user name='user_img' /}" alt="{article:user name='name' /}" />
|
||||
<cite>{article:auther} </cite>
|
||||
</a>
|
||||
<span class="user-post-time" data="{$article.create_time}" style="padding-top: 5px">{$article.create_time|date="Y-h-d H:i"}</span>
|
||||
<span class="user-post-time" data="{$article.create_time}" style="padding-top: 5px">{$article.update_time|date="Y-h-d H:i"}</span>
|
||||
<i class="iconfont" title="{:lang('reply')}"></i>
|
||||
{$article:comments_count}
|
||||
<i class="iconfont" title="浏览"></i>
|
||||
@ -47,7 +47,7 @@
|
||||
<div style="margin: 10px 0; font-size: 16px; font-weight: bold; color: rgb(161, 155, 155)">问题描述:</div>
|
||||
|
||||
{:hook('taoplayerdiv')}
|
||||
<div class="detail-body photos" id="content">{article:content}</div>
|
||||
<article class="detail-body photos" id="content">{article:content}</article>
|
||||
{notempty name="$article.upzip"}
|
||||
{if (session('?user_name'))}
|
||||
<button type="button" class="layui-btn layui-btn-xs" id="zip-download"><i class="layui-icon layui-icon-download-circle"></i>{:lang('download files')}: {$article.downloads}次</button>
|
||||
@ -79,10 +79,10 @@
|
||||
{$Request.domain}/{$Request.url}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{//评论内容}
|
||||
<div class="fly-panel detail-box" id="flyReply">
|
||||
<section class="fly-panel detail-box" id="flyReply">
|
||||
<span style="font-size:18px;">评论 {$article.comments_count}</span>
|
||||
|
||||
<ul class="jieda" id="jieda">
|
||||
@ -199,7 +199,7 @@
|
||||
{/article:comment}
|
||||
</ul>
|
||||
<div style="text-align: center" id="pages"></div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{//评论区}
|
||||
{if session('?user_id') AND ( config('taoler.config.is_reply') == 1 ) AND ( $article.is_reply == 1 )}
|
||||
|
@ -41,7 +41,7 @@
|
||||
<div class="d-inline-block" itemprop="author" itemscope="" itemtype="">
|
||||
<a href="{$Request.domain}" target="_blank" class="text-muted" itemprop="url"><span itemprop="name">{article:auther}</span></a>
|
||||
<a href="{article:cate name='link'}" target="_blank" class="text-muted" rel="category">{article:cate name="name"}</a>
|
||||
<time class="d-inline-block" datetime="{$article.create_time|date='Y-m-d h:m:s'}" itemprop="datePublished">{article:time}</time>
|
||||
<time class="d-inline-block" datetime="{$article.create_time|date='Y-m-d h:m:s'}" itemprop="datePublished">{article:uptime}</time>
|
||||
</div>
|
||||
<div class="ml-auto text-sm yincang">
|
||||
<span class="mx-1"><small>阅读 {article:pv /} 次</small></span>
|
||||
|
@ -25,7 +25,7 @@
|
||||
<div class="detail-hits" style="left:-30px;">
|
||||
<span>{$article.cate.catename}</span>
|
||||
<span>{$article.user.name}</span>
|
||||
<span class="post-time" style="padding-top: 5px;" data="{$article.create_time}">{$article.create_time} </span>
|
||||
<span class="post-time" style="padding-top: 5px;" data="{$article.update_time}">{article:uptime} </span>
|
||||
<span><i class="iconfont" title="浏览"></i> {article:pv}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -17,229 +17,229 @@
|
||||
<!--body-->
|
||||
{block name="content"}
|
||||
<div class="layui-container">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md8 content detail">
|
||||
<div class="fly-panel detail-box">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-md8 content detail">
|
||||
<section class="fly-panel detail-box">
|
||||
|
||||
{//标题}
|
||||
<h1>{article:title /}</h1>
|
||||
{//标题}
|
||||
<h1>{article:title /}</h1>
|
||||
|
||||
{//图标}
|
||||
<div class="fly-detail-info">
|
||||
<span class="layui-badge layui-bg-green fly-detail-column">
|
||||
{if (cookie('think_lang') == 'en-us')}
|
||||
{article:cate name="ename" /}
|
||||
{else /}
|
||||
{article:cate name="name" /}
|
||||
{/if}
|
||||
</span>
|
||||
{if ($article.is_top == 1)}
|
||||
<span class="layui-badge layui-bg-black">{:lang('top')}</span>
|
||||
{/if}
|
||||
{if ($article.is_hot == 1)}
|
||||
<span class="layui-badge layui-bg-red">{:lang('hot')}</span>
|
||||
{/if}
|
||||
<span id="LAY_jieAdmin" data-id="{article:id /}" data-colurl="{:url('collection/find')}"></span>
|
||||
<span class="fly-list-nums">
|
||||
<a href="#comment">
|
||||
<i class="iconfont" title="{:lang('reply')}"></i>{article:comment_num /}
|
||||
</a>
|
||||
<i class="iconfont" title="浏览"></i>{article:pv /}
|
||||
</span>
|
||||
</div>
|
||||
{//图标}
|
||||
<div class="fly-detail-info">
|
||||
<span class="layui-badge layui-bg-green fly-detail-column">
|
||||
{if (cookie('think_lang') == 'en-us')}
|
||||
{article:cate name="ename" /}
|
||||
{else /}
|
||||
{article:cate name="name" /}
|
||||
{/if}
|
||||
</span>
|
||||
{if ($article.is_top == 1)}
|
||||
<span class="layui-badge layui-bg-black">{:lang('top')}</span>
|
||||
{/if}
|
||||
{if ($article.is_hot == 1)}
|
||||
<span class="layui-badge layui-bg-red">{:lang('hot')}</span>
|
||||
{/if}
|
||||
<span id="LAY_jieAdmin" data-id="{article:id /}" data-colurl="{:url('collection/find')}"></span>
|
||||
<span class="fly-list-nums">
|
||||
<a href="#comment">
|
||||
<i class="iconfont" title="{:lang('reply')}"></i>{article:comment_num /}
|
||||
</a>
|
||||
<i class="iconfont" title="浏览"></i>{article:pv /}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{//作者}
|
||||
<div class="detail-about">
|
||||
<a class="fly-avatar" href="{article:user name='link' /}">
|
||||
<img src="{article:user name='user_img' /}" alt="{article:user name='name' /}">
|
||||
{if($article.user.vip > 0)}
|
||||
<i class="iconfont icon-renzheng" title="认证信息"></i>
|
||||
{/if}
|
||||
</a>
|
||||
<div class="fly-detail-user">
|
||||
<a href="{article:user name='link' /}" class="fly-link"><cite>{article:auther}</cite></a>
|
||||
</div>
|
||||
<div class="detail-hits">
|
||||
<span class="post-time" data="{$article.create_time}" style="padding-top: 5px;">{$article.create_time}</span>
|
||||
{:hook('ipShow',$article.user.city)}
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
{//内容}
|
||||
{:hook('taoplayerdiv')}
|
||||
<div class="detail-body photos" id="content">{article:content}</div>
|
||||
{//下载}
|
||||
{notempty name="$article.upzip"}
|
||||
{if(session('?user_name'))}
|
||||
<button type="button" class="layui-btn layui-btn-xs" id="zip-download"><i class="layui-icon layui-icon-download-circle"></i>{:lang('download files')}: {$article.downloads}次</button>
|
||||
{/if}
|
||||
{/notempty}
|
||||
|
||||
{//解密文件}
|
||||
{empty name="passJieMi"}
|
||||
{if($article.read_type == 1)}
|
||||
<div id="jiemi" style="text-align:center">
|
||||
<button type="button" class="layui-btn layui-btn-primary"><i class="layui-icon layui-icon-password" style="font-size: 30px; color: #FF5722;"></i> 阅读请解密 </button>
|
||||
</div>
|
||||
{/if}
|
||||
{/empty}
|
||||
|
||||
{notempty name="tags"}
|
||||
<div style="margin-top: 15px">标签
|
||||
{volist name="tags" id="vo" }
|
||||
<a href="{$vo.url}"><span class="layui-btn layui-btn-xs layui-btn-normal layui-btn-radius">{$vo.name}</span></a>
|
||||
{/volist}
|
||||
</div>
|
||||
{/notempty}
|
||||
{//网站声明}
|
||||
<div style="margin: 20px 0px 15px 0px; color: rgb(130, 125, 125);">
|
||||
<p style="line-height:200%; ">{$sysInfo.state|raw}</p>
|
||||
</div>
|
||||
{//本文链接}
|
||||
<div style="margin-top: 20px;">本文链接:<a href="{$Request.domain}{$Request.url}">{$Request.domain}{$Request.url}</a></div>
|
||||
<div class="detail-zan">
|
||||
<span class="jieda-zan" type="zan" id="article-zan">
|
||||
点赞 <i class="iconfont icon-zan"></i> <em>{:count($userZanList)}</em>
|
||||
</span>
|
||||
<!-- 点赞列表 -->
|
||||
{volist name="userZanList" id="vo" }
|
||||
<span><img src="{$vo.userImg}"></span>
|
||||
{/volist}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{//评论}
|
||||
<div class="fly-panel">
|
||||
{if session('?user_id') AND ( config('taoler.config.is_reply') == 1 ) AND ( $article.is_reply == 1 )}
|
||||
<div class="layui-form layui-form-pane">
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<a name="comment"></a>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="L_content" name="content" required lay-verify="required" placeholder="{:lang('please input the content')}" class="layui-textarea taonyeditor"></textarea>
|
||||
{//作者}
|
||||
<div class="detail-about">
|
||||
<a class="fly-avatar" href="{article:user name='link' /}">
|
||||
<img src="{article:user name='user_img' /}" alt="{article:user name='name' /}">
|
||||
{if($article.user.vip > 0)}
|
||||
<i class="iconfont icon-renzheng" title="认证信息"></i>
|
||||
{/if}
|
||||
</a>
|
||||
<div class="fly-detail-user">
|
||||
<a href="{article:user name='link' /}" class="fly-link"><cite>{article:auther}</cite></a>
|
||||
</div>
|
||||
<div class="detail-hits">
|
||||
<span class="post-time" data="{$article.update_time}" style="padding-top: 5px;">{article:uptime}</span>
|
||||
{:hook('ipShow',$article.user.city)}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<input type="hidden" name="article_id" value="{article:id}">
|
||||
<button class="layui-btn" lay-filter="user-comment" lay-submit>{:lang('submit comments')}</button>
|
||||
<hr>
|
||||
|
||||
{//内容}
|
||||
{:hook('taoplayerdiv')}
|
||||
<article class="detail-body photos" id="content">{article:content}</article>
|
||||
{//下载}
|
||||
{notempty name="$article.upzip"}
|
||||
{if(session('?user_name'))}
|
||||
<button type="button" class="layui-btn layui-btn-xs" id="zip-download"><i class="layui-icon layui-icon-download-circle"></i>{:lang('download files')}: {$article.downloads}次</button>
|
||||
{/if}
|
||||
{/notempty}
|
||||
|
||||
{//解密文件}
|
||||
{empty name="passJieMi"}
|
||||
{if($article.read_type == 1)}
|
||||
<div id="jiemi" style="text-align:center">
|
||||
<button type="button" class="layui-btn layui-btn-primary"><i class="layui-icon layui-icon-password" style="font-size: 30px; color: #FF5722;"></i> 阅读请解密 </button>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
{/empty}
|
||||
|
||||
{//评论内容}
|
||||
<div class="fly-panel detail-box" id="flyReply">
|
||||
<span style="font-size:18px;">评论 {$article.comments_count}</span>
|
||||
<ul class="jieda" id="jieda">
|
||||
{article:comment}
|
||||
<li data-id="{comment:id /}" class="jieda-daan">
|
||||
<div class="detail-about detail-about-reply">
|
||||
<a class="fly-avatar" href="{comment:ulink /}"><img src="{comment:uimg /}" alt="{comment:uname}"></a>
|
||||
<div class="fly-detail-user">
|
||||
<a href="{comment:ulink /}" class="fly-link"><cite>{comment:uname /}</cite></a>
|
||||
{if condition="$article.user_id eq $comment.user_id"}
|
||||
<span>({:lang('poster')})</span>
|
||||
{/if}
|
||||
<span>{comment:usign /}</span>
|
||||
</div>
|
||||
<div class="detail-hits">
|
||||
<span class="post-time">{comment:time}</span>{:hook('ipShow',$comment.user.city)}</span>
|
||||
{notempty name="tags"}
|
||||
<div style="margin-top: 15px">标签
|
||||
{volist name="tags" id="vo" }
|
||||
<a href="{$vo.url}"><span class="layui-btn layui-btn-xs layui-btn-normal layui-btn-radius">{$vo.name}</span></a>
|
||||
{/volist}
|
||||
</div>
|
||||
{/notempty}
|
||||
{//网站声明}
|
||||
<div style="margin: 20px 0px 15px 0px; color: rgb(130, 125, 125);">
|
||||
<p style="line-height:200%; ">{$sysInfo.state|raw}</p>
|
||||
</div>
|
||||
{//本文链接}
|
||||
<div style="margin-top: 20px;">本文链接:<a href="{$Request.domain}{$Request.url}">{$Request.domain}{$Request.url}</a></div>
|
||||
<div class="detail-zan">
|
||||
<span class="jieda-zan" type="zan" id="article-zan">
|
||||
点赞 <i class="iconfont icon-zan"></i> <em>{:count($userZanList)}</em>
|
||||
</span>
|
||||
<!-- 点赞列表 -->
|
||||
{volist name="userZanList" id="vo" }
|
||||
<span><img src="{$vo.userImg}"></span>
|
||||
{/volist}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{//评论}
|
||||
<section class="fly-panel">
|
||||
{if session('?user_id') AND ( config('taoler.config.is_reply') == 1 ) AND ( $article.is_reply == 1 )}
|
||||
<div class="layui-form layui-form-pane">
|
||||
<div class="layui-form-item layui-form-text">
|
||||
<a name="comment"></a>
|
||||
<div class="layui-input-block">
|
||||
<textarea id="L_content" name="content" required lay-verify="required" placeholder="{:lang('please input the content')}" class="layui-textarea taonyeditor"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<input type="hidden" name="article_id" value="{article:id}">
|
||||
<button class="layui-btn" lay-filter="user-comment" lay-submit>{:lang('submit comments')}</button>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
</section>
|
||||
|
||||
{//加密未解密评论不可查看}
|
||||
{if($article.read_type == 0 || (($article.read_type == 1) && $passJieMi))}
|
||||
<div class="detail-body jieda-body photos">{comment:content /}</div>
|
||||
<div class="jieda-reply">
|
||||
{eq name="comment.delete_time" value="0"}
|
||||
<span class="jieda-zan {if($comment.zan != 0)}zanok{/if}" type="zan">
|
||||
<i class="iconfont icon-zan"></i><em>{comment:zan /}</em>
|
||||
</span>
|
||||
<span type="reply" data-pid="{comment:id /}" data-tid="{comment:uid /}"><i class="iconfont icon-svgmoban53"></i>{:lang('reply')}</span>
|
||||
{//评论编辑删除采纳权限}
|
||||
<div class="jieda-admin">
|
||||
{if ((session('user_id') == $comment.user_id) && (getLimtTime($comment.create_time) < 2)) OR ($user.auth ?? '')}
|
||||
<span type="edit" class="comment-edit" data-id="{comment:id /}">{:lang('edit')}</span>
|
||||
<span type="del" class="comment-del" data-id="{comment:id /}">{:lang('delete')}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{/eq}
|
||||
{//评论内容}
|
||||
<div class="fly-panel detail-box" id="flyReply">
|
||||
<span style="font-size:18px;">评论 {$article.comments_count}</span>
|
||||
<ul class="jieda" id="jieda">
|
||||
{article:comment}
|
||||
<li data-id="{comment:id /}" class="jieda-daan">
|
||||
<div class="detail-about detail-about-reply">
|
||||
<a class="fly-avatar" href="{comment:ulink /}"><img src="{comment:uimg /}" alt="{comment:uname}"></a>
|
||||
<div class="fly-detail-user">
|
||||
<a href="{comment:ulink /}" class="fly-link"><cite>{comment:uname /}</cite></a>
|
||||
{if condition="$article.user_id eq $comment.user_id"}
|
||||
<span>({:lang('poster')})</span>
|
||||
{/if}
|
||||
<span>{comment:usign /}</span>
|
||||
</div>
|
||||
<div class="detail-hits">
|
||||
<span class="post-time">{comment:time}</span>{:hook('ipShow',$comment.user.city)}</span>
|
||||
</div>
|
||||
|
||||
{// 第二层回复}
|
||||
{notempty name="$comment.children"}
|
||||
{volist name="$comment.children" id="vo"}
|
||||
<div class="layui-clear" style="margin:10px 0; padding: 10px; border: 1px solid #f0f0f0; background: #f6f6f6">
|
||||
<a style="display: inline-block; width: 50px;">
|
||||
<img src="{$vo.user.user_img}" style="width: 30px; height: 30px; border-radius: 15px; object-fit: cover">
|
||||
</a>
|
||||
<div style="float: left;width: calc(100% - 50px);">
|
||||
<div>{$vo.user.name} {$vo.create_time|date='Y-m-d H:i'}</div>
|
||||
<div class="detail-body jieda-body photos">{$vo.content|raw}</div>
|
||||
<div class="jieda-reply">
|
||||
{eq name="vo.delete_time" value="0"}
|
||||
<span class="jieda-zan {if($vo.zan != 0)}zanok{/if}" type="zan">
|
||||
<i class="iconfont icon-zan"></i><em>{$vo.zan}</em>
|
||||
</span>
|
||||
<span type="reply" data-pid="{$vo.id}" data-tid="{$vo.user.id}"><i class="iconfont icon-svgmoban53"></i>{:lang('reply')}</span>
|
||||
{//评论编辑删除采纳权限}
|
||||
<div class="jieda-admin">
|
||||
{if ((session('user_id') == $vo.user.id) && (getLimtTime($vo.create_time) < 2)) OR ($user.auth ?? '')}
|
||||
<span type="edit" class="comment-edit" data-id="{$vo.id}">{:lang('edit')}</span>
|
||||
<span type="del" class="comment-del" data-id="{$vo.id}" >{:lang('delete')}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{/eq}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{//加密未解密评论不可查看}
|
||||
{if($article.read_type == 0 || (($article.read_type == 1) && $passJieMi))}
|
||||
<div class="detail-body jieda-body photos">{comment:content /}</div>
|
||||
<div class="jieda-reply">
|
||||
{eq name="comment.delete_time" value="0"}
|
||||
<span class="jieda-zan {if($comment.zan != 0)}zanok{/if}" type="zan">
|
||||
<i class="iconfont icon-zan"></i><em>{comment:zan /}</em>
|
||||
</span>
|
||||
<span type="reply" data-pid="{comment:id /}" data-tid="{comment:uid /}"><i class="iconfont icon-svgmoban53"></i>{:lang('reply')}</span>
|
||||
{//评论编辑删除采纳权限}
|
||||
<div class="jieda-admin">
|
||||
{if ((session('user_id') == $comment.user_id) && (getLimtTime($comment.create_time) < 2)) OR ($user.auth ?? '')}
|
||||
<span type="edit" class="comment-edit" data-id="{comment:id /}">{:lang('edit')}</span>
|
||||
<span type="del" class="comment-del" data-id="{comment:id /}">{:lang('delete')}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{/eq}
|
||||
|
||||
{// 第三层回复}
|
||||
{notempty name="$vo.children"}
|
||||
{volist name="$vo.children" id="voo"}
|
||||
<div class="layui-clear" style="margin:10px 0; padding: 10px; border: 1px solid #f0f0f0;">
|
||||
{// 第二层回复}
|
||||
{notempty name="$comment.children"}
|
||||
{volist name="$comment.children" id="vo"}
|
||||
<div class="layui-clear" style="margin:10px 0; padding: 10px; border: 1px solid #f0f0f0; background: #f6f6f6">
|
||||
<a style="display: inline-block; width: 50px;">
|
||||
<img src="{$voo.user.user_img}" style="width: 30px; height: 30px; object-fit: cover; border-radius: 15px;">
|
||||
<img src="{$vo.user.user_img}" style="width: 30px; height: 30px; border-radius: 15px; object-fit: cover">
|
||||
</a>
|
||||
<div style="float: left;width: calc(100% - 50px);">
|
||||
<div>{$voo.user.name} 回复 {$voo.touser} {$voo.create_time|date='Y-m-d H:i'}</div>
|
||||
<div class="detail-body jieda-body photos">{$voo.content|raw}</div>
|
||||
<div>{$vo.user.name} {$vo.create_time|date='Y-m-d H:i'}</div>
|
||||
<div class="detail-body jieda-body photos">{$vo.content|raw}</div>
|
||||
<div class="jieda-reply">
|
||||
{eq name="voo.delete_time" value="0"}
|
||||
<span class="jieda-zan {if($voo.zan != 0)}zanok{/if}" type="zan">
|
||||
<i class="iconfont icon-zan"></i><em>{$voo.zan}</em>
|
||||
{eq name="vo.delete_time" value="0"}
|
||||
<span class="jieda-zan {if($vo.zan != 0)}zanok{/if}" type="zan">
|
||||
<i class="iconfont icon-zan"></i><em>{$vo.zan}</em>
|
||||
</span>
|
||||
<span type="reply" data-pid="{$vo.id}" data-tid="{$voo.user.id}"><i class="iconfont icon-svgmoban53"></i>{:lang('reply')}</span>
|
||||
<span type="reply" data-pid="{$vo.id}" data-tid="{$vo.user.id}"><i class="iconfont icon-svgmoban53"></i>{:lang('reply')}</span>
|
||||
{//评论编辑删除采纳权限}
|
||||
<div class="jieda-admin">
|
||||
{if ((session('user_id') == $voo.user.id) && (getLimtTime($voo.create_time) < 2)) OR ($user.auth ?? '')}
|
||||
<span type="edit" class="comment-edit" data-id="{$voo.id}">{:lang('edit')}</span>
|
||||
<span type="del" class="comment-del" data-id="{$voo.id}">{:lang('delete')}</span>
|
||||
{/if}
|
||||
{if ((session('user_id') == $vo.user.id) && (getLimtTime($vo.create_time) < 2)) OR ($user.auth ?? '')}
|
||||
<span type="edit" class="comment-edit" data-id="{$vo.id}">{:lang('edit')}</span>
|
||||
<span type="del" class="comment-del" data-id="{$vo.id}" >{:lang('delete')}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{/eq}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/volist}
|
||||
{/notempty}
|
||||
{/volist}
|
||||
{/notempty}
|
||||
</div>
|
||||
{else /}
|
||||
<div class="detail-body jieda-body photos">
|
||||
<i class="layui-icon layui-icon-password" style="font-size: 24px; color: #FF5722;"></i>
|
||||
评论解密后查看
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</li>
|
||||
{/article:comment}
|
||||
</ul>
|
||||
<div style="text-align: center" id="pages"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{//右栏}
|
||||
<div class="layui-col-md4">
|
||||
{// 第三层回复}
|
||||
{notempty name="$vo.children"}
|
||||
{volist name="$vo.children" id="voo"}
|
||||
<div class="layui-clear" style="margin:10px 0; padding: 10px; border: 1px solid #f0f0f0;">
|
||||
<a style="display: inline-block; width: 50px;">
|
||||
<img src="{$voo.user.user_img}" style="width: 30px; height: 30px; object-fit: cover; border-radius: 15px;">
|
||||
</a>
|
||||
<div style="float: left;width: calc(100% - 50px);">
|
||||
<div>{$voo.user.name} 回复 {$voo.touser} {$voo.create_time|date='Y-m-d H:i'}</div>
|
||||
<div class="detail-body jieda-body photos">{$voo.content|raw}</div>
|
||||
<div class="jieda-reply">
|
||||
{eq name="voo.delete_time" value="0"}
|
||||
<span class="jieda-zan {if($voo.zan != 0)}zanok{/if}" type="zan">
|
||||
<i class="iconfont icon-zan"></i><em>{$voo.zan}</em>
|
||||
</span>
|
||||
<span type="reply" data-pid="{$vo.id}" data-tid="{$voo.user.id}"><i class="iconfont icon-svgmoban53"></i>{:lang('reply')}</span>
|
||||
{//评论编辑删除采纳权限}
|
||||
<div class="jieda-admin">
|
||||
{if ((session('user_id') == $voo.user.id) && (getLimtTime($voo.create_time) < 2)) OR ($user.auth ?? '')}
|
||||
<span type="edit" class="comment-edit" data-id="{$voo.id}">{:lang('edit')}</span>
|
||||
<span type="del" class="comment-del" data-id="{$voo.id}">{:lang('delete')}</span>
|
||||
{/if}
|
||||
</div>
|
||||
{/eq}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/volist}
|
||||
{/notempty}
|
||||
{/volist}
|
||||
{/notempty}
|
||||
</div>
|
||||
{else /}
|
||||
<div class="detail-body jieda-body photos">
|
||||
<i class="layui-icon layui-icon-password" style="font-size: 24px; color: #FF5722;"></i>
|
||||
评论解密后查看
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</li>
|
||||
{/article:comment}
|
||||
</ul>
|
||||
<div style="text-align: center" id="pages"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{//右栏}
|
||||
<div class="layui-col-md4">
|
||||
<div class="fly-panel">
|
||||
<div class="fly-panel-main wenda-user">
|
||||
<div class="user-img">
|
||||
@ -260,11 +260,11 @@
|
||||
<!-- 插件hook位 -->
|
||||
{:hook('addonhook_detail')}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- crud管理模块 -->
|
||||
{include file="/public/crud" /}
|
||||
</div>
|
||||
{include file="/public/crud" /}
|
||||
</div>
|
||||
<!--底部栏-->
|
||||
</div>
|
||||
{include file="public/menu" /}
|
||||
|
@ -1,6 +1,6 @@
|
||||
<div class="fly-header layui-bg-black">
|
||||
<div class="layui-container">
|
||||
<a class="fly-logo layui-hide-xs" href="{$Request.domain}"><img src="{$Request.domain}{$sysInfo.logo}" alt="{system:webname}logo"></a>
|
||||
<a class="fly-logo layui-hide-xs" href="{$Request.domain}"><img src="{$Request.domain}/{$sysInfo.logo}" alt="{system:webname}logo"></a>
|
||||
<!--头部伸缩侧边栏-->
|
||||
<div class="site-tree-mobile-top layui-hide"><i class="layui-icon layui-icon-spread-left"></i></div>
|
||||
<div class="site-mobile-shade-top"></div>
|
||||
@ -8,22 +8,22 @@
|
||||
<a class="layui-hide-md layui-hide-sm" href="{$Request.domain}" ><img class="fly-logo-m" src="{$Request.domain}{$sysInfo.m_logo}" alt="logo"></a>
|
||||
{//导航nav}
|
||||
<ul class="layui-nav fly-nav layui-hide-xs">
|
||||
{if config('taoler.config.nav_top') != 0}
|
||||
{taoler:nav}
|
||||
<li class="layui-nav-item {if condition='$nav.ename eq $Request.param.ename'} layui-this {/if}" >
|
||||
<a href="{nav:link /}">{nav:title} {if condition="$nav.is_hot eq 1"} <span class="layui-badge-dot"></span> {/if}</a>
|
||||
{notempty name="nav.children"}
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
{taoler:snav}
|
||||
<dd><a href="{snav:link /}">{snav:name /}</a></dd>
|
||||
{/taoler:snav}
|
||||
</dl>
|
||||
{/notempty}
|
||||
</li>
|
||||
{/taoler:nav}
|
||||
{/if}
|
||||
{// 后台自定义头部链接}
|
||||
{:hook('ads_header_link')}
|
||||
{if config('taoler.config.nav_top') != 0}
|
||||
{taoler:nav}
|
||||
<li class="layui-nav-item {if condition='$nav.ename eq $Request.param.ename'} layui-this {/if}" >
|
||||
<a href="{nav:link /}">{nav:title} {if condition="$nav.is_hot eq 1"} <span class="layui-badge-dot"></span> {/if}</a>
|
||||
{notempty name="nav.children"}
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
{taoler:snav}
|
||||
<dd><a href="{snav:link /}">{snav:name /}</a></dd>
|
||||
{/taoler:snav}
|
||||
</dl>
|
||||
{/notempty}
|
||||
</li>
|
||||
{/taoler:nav}
|
||||
{/if}
|
||||
{// 后台自定义头部链接}
|
||||
{:hook('ads_header_link')}
|
||||
</ul>
|
||||
|
||||
{//头部右栏}
|
||||
@ -34,10 +34,10 @@
|
||||
<!-- 登录 -->
|
||||
{if session('?user_id')}
|
||||
{if ($Request.action=='user')}
|
||||
<li class="layui-nav-item"><a href="{$Request.domain}">{:lang('home page')}</a></li>
|
||||
<li class="layui-nav-item"><a href="{$Request.domain}">{:lang('home page')}</a></li>
|
||||
{/if}
|
||||
<li class="layui-nav-item">
|
||||
<a class="fly-nav-avatar" ><cite class="layui-hide-xs">{$user.name}</cite><img src="{$Request.domain}{$user.user_img}"></a>
|
||||
<a class="fly-nav-avatar" ><cite class="layui-hide-xs">{$user.name}</cite><img src="{$Request.domain}/{$user.user_img}"></a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="{:url('user/index')}"><i class="layui-icon layui-icon-username"></i>{:lang('user center')}</a></dd>
|
||||
<dd><a href="{:url('user/set')}"><i class="layui-icon layui-icon-set"></i>{:lang('set info')}</a></dd>
|
||||
|
@ -1,15 +1,16 @@
|
||||
{if $Request.isMobile}
|
||||
<div class="layui-panel site-menu layui-hide-md">
|
||||
<ul class="layui-menu layui-menu-lg">
|
||||
<li class="search" style="padding-left:5px;padding-top:2px;padding-right:5px;">
|
||||
<form action="{$Request.domain}{:url('index/search',['keywords'=>$Request.param.keywords])}">
|
||||
<input type="search" name="keywords" value="" aria-label="Search text" placeholder="搜索" class="layui-input">
|
||||
</form>
|
||||
<form action="{$Request.domain}{:url('index/search',['keywords'=>$Request.param.keywords])}">
|
||||
<input type="search" name="keywords" value="" aria-label="Search text" placeholder="搜索" class="layui-input">
|
||||
</form>
|
||||
</li>
|
||||
{if session('?user_id')}
|
||||
<li class="layui-nav-item" style="padding-left:25px;">
|
||||
<a class="fly-nav-avatar" href="javascript:;">
|
||||
<img src="{$Request.domain}{$user['user_img']}" >
|
||||
</a>
|
||||
<a class="fly-nav-avatar" href="javascript:;">
|
||||
<img src="{$Request.domain}{$user['user_img']}" >
|
||||
</a>
|
||||
</li>
|
||||
{else /}
|
||||
<li class="layui-nav-item" style="padding-left:25px;">
|
||||
@ -26,49 +27,49 @@
|
||||
</li>
|
||||
{/if}
|
||||
|
||||
<li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
|
||||
<div class="layui-menu-body-title">
|
||||
社区分类
|
||||
</div>
|
||||
<hr>
|
||||
<ul>
|
||||
{taoler:nav}
|
||||
<li {if condition="$nav.ename eq $Request.param.ename"} class="layui-this" {/if} class="layui-menu-item-group layui-menu-item-down" lay-options="{type: 'group'}">
|
||||
<div class="layui-menu-body-title">
|
||||
<a href="{nav:link /}">
|
||||
<i class="layui-icon {nav:icon /}"></i>{nav:title}
|
||||
{if condition="$nav.is_hot eq 1"}<span class="layui-badge-dot"></span>{/if}
|
||||
</a>
|
||||
</div>
|
||||
{notempty name="nav.children"}
|
||||
<ul>
|
||||
{taoler:snav}
|
||||
<li><a href="{snav:link /}">{snav:name /}</a></li>
|
||||
{/taoler:snav}
|
||||
</ul>
|
||||
{/notempty}
|
||||
</li>
|
||||
{/taoler:nav}
|
||||
</ul>
|
||||
</li>
|
||||
<li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
|
||||
<div class="layui-menu-body-title">
|
||||
社区分类
|
||||
</div>
|
||||
<hr>
|
||||
<ul>
|
||||
{taoler:nav}
|
||||
<li {if condition="$nav.ename eq $Request.param.ename"} class="layui-this" {/if} class="layui-menu-item-group layui-menu-item-down" lay-options="{type: 'group'}">
|
||||
<div class="layui-menu-body-title">
|
||||
<a href="{nav:link /}">
|
||||
<i class="layui-icon {nav:icon /}"></i>{nav:title}
|
||||
{if condition="$nav.is_hot eq 1"}<span class="layui-badge-dot"></span>{/if}
|
||||
</a>
|
||||
</div>
|
||||
{notempty name="nav.children"}
|
||||
<ul>
|
||||
{taoler:snav}
|
||||
<li><a href="{snav:link /}">{snav:name /}</a></li>
|
||||
{/taoler:snav}
|
||||
</ul>
|
||||
{/notempty}
|
||||
</li>
|
||||
{/taoler:nav}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
|
||||
<div class="layui-menu-body-title">菜单</div>
|
||||
<hr>
|
||||
<ul>
|
||||
{:hook('ads_mobile_link')}
|
||||
<li class="">
|
||||
<div class="layui-menu-body-title">
|
||||
<a href="/">
|
||||
<i class="layui-icon layui-icon-home" style="color: #009688;"></i><span> 回首页</span>
|
||||
<span class="layui-font-12 layui-font-gray">index</span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="layui-menu-item-group" lay-options="{type: 'group', isAllowSpread: true}">
|
||||
<div class="layui-menu-body-title">菜单</div>
|
||||
<hr>
|
||||
<ul>
|
||||
{:hook('ads_mobile_link')}
|
||||
<li class="">
|
||||
<div class="layui-menu-body-title">
|
||||
<a href="/">
|
||||
<i class="layui-icon layui-icon-home" style="color: #009688;"></i><span> 回首页</span>
|
||||
<span class="layui-font-12 layui-font-gray">index</span>
|
||||
</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
|
||||
|
||||
|
@ -26,13 +26,14 @@
|
||||
{include file="public/header" /}
|
||||
<div class="layui-container fly-marginTop fly-user-main">
|
||||
{include file="public/user-nav" /}
|
||||
<div class="fly-panel " pad20 style="padding-top:10px;">
|
||||
<div class="fly-panel" pad20 style="padding-top:10px;">
|
||||
{block name="content"}
|
||||
{/block}
|
||||
</div>
|
||||
</div>
|
||||
{include file="public/footer" /}
|
||||
<script>
|
||||
var $ = layui.jquery;
|
||||
var notify = layui.notify;
|
||||
layui.cache.page = 'user';
|
||||
layui.cache.user = {
|
||||
@ -48,7 +49,6 @@
|
||||
}).extend({
|
||||
fly: 'index'
|
||||
}).use('fly');
|
||||
var $ = layui.jquery;
|
||||
var articleUrl = "{:url('user/article')}";
|
||||
artListUrl = "{:url('User/artList')}",
|
||||
collListUrl = "{:url('User/collList')}",
|
||||
|
@ -14,14 +14,14 @@
|
||||
{block name="column"}{/block}
|
||||
{block name="content"}
|
||||
<div class="fly-home fly-panel" >
|
||||
<img src="{$Request.domain}{$u.user_img}" alt="{$u.name}">
|
||||
<img src="{$Request.domain}/{$u.user_img}" alt="{$u.name}">
|
||||
{if($u.vip > 0)}<i class="iconfont icon-renzheng" title="Fly社区认证"></i>{/if}
|
||||
<h1>
|
||||
{$u.nickname ?: $u.name}
|
||||
{if($u.sex==0)}<i class="iconfont icon-nan"></i>
|
||||
{else}<i class="iconfont icon-nv"></i> {/if}
|
||||
{if($u.vip > 0)}
|
||||
<i class="layui-badge fly-badge-vip">VIP{$u.vip}</i>
|
||||
<i class="layui-badge fly-badge-vip">{$u.vip}</i>
|
||||
{/if}
|
||||
<!--
|
||||
<span style="color:#c00;">(管理员)</span>
|
||||
@ -82,17 +82,4 @@
|
||||
{/block}
|
||||
|
||||
{block name="script"}
|
||||
<script>
|
||||
layui.use(['fly','face'], function(){
|
||||
var $ = layui.$;
|
||||
var fly = layui.fly;
|
||||
var face = layui.face;
|
||||
|
||||
//如果你是采用模版自带的编辑器,你需要开启以下语句来解析。
|
||||
$('.detail-body').each(function(){
|
||||
var othis = $(this), html = othis.html();
|
||||
othis.html(fly.content(html));
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
|
@ -22,7 +22,7 @@
|
||||
<div class="layui-col-md6">
|
||||
<div class="fly-panel fly-panel-border"> <div class="fly-panel-title"> 我的会员信息 </div>
|
||||
<div class="fly-panel-main layui-text" style="padding: 18px 15px; height: 50px; line-height: 26px;">
|
||||
<p>您的财富经验值:<span style="color: red">{$user.point}</span> 金币</p> <p>您当前为:<span style="color: red">VIP{$user.vip}</span></p> </div> </div> </div>
|
||||
<p>您的财富经验值:<span style="color: red">{$user.point}</span> 金币</p> <p>您当前为:<span style="color: red">{$user.nick}</span></p> </div> </div> </div>
|
||||
<div class="layui-col-md12" style="margin-top: -20px;">
|
||||
<div class="fly-panel fly-panel-border"> <div class="fly-panel-title"> 快捷方式 </div>
|
||||
<div class="fly-panel-main">
|
||||
|
Loading…
x
Reference in New Issue
Block a user