index.html
[pre]
{:lang('reviewers list')}
{:lang('reviewers list')}
[/pre]
js
[pre]
//发帖榜
var tplReply = ['{{# layui.each(d.data, function(index, item){ }}'
,'
'
,''
,'
'
,'{{item.user.username}}'
,'{{item["count(*)"]}}' +replyNum+''
,''
,''
,'{{# }); }}'].join('')
,elemReply = $('#LAY_replyRank');
if(elemReply[0]){
fly.json(replyUrl, {
limit: 20
}, function(res){
var html = laytpl(tplReply).render(res);
elemReply.find('dl').html(html);
});
};
//回帖榜
var tplReplys = ['{{# layui.each(d.data, function(index, item){ }}'
,'
'
,''
,'
'
,'{{item.user.username}}'
,'{{item["count(*)"]}}' +replyNum+''
,''
,''
,'{{# }); }}'].join('')
,elemReplys = $('#LAY_replyRanks');
if(elemReplys[0]){
fly.json(replyUrlS, {
limit: 20
}, function(res){
var html = laytpl(tplReplys).render(res);
elemReplys.find('dl').html(html);
});
};
[/pre]
url
[pre]
var replyUrl = "{:url('index/reply')}";
var replyUrlS = "{:url('index/replys')}";
[/pre]
index.php
[pre]
//发帖榜
public function reply()
{
$comment = new \app\common\model\Comment();
return $comment->reply(20);
}
//回帖榜
public function replys()
{
$comment = new \app\common\model\Art();
return $comment->reply(20);
}
[/pre]
Art()
[pre]
belongsTo('Article','article_id','id');
}
public function user()
{
//评论关联用户
return $this->belongsTo('User','user_id','id');
}
//获取评论
public function getComment($id)
{
$comments = $this::where(['article_id'=>$id,'status'=>1])->order(['cai'=>'asc','create_time'=>'asc'])->paginate(10);
return $comments;
}
//回帖榜
public function reply($num)
{
$res = Cache::get('reply');
if(!$res){
$user = User::withCount('comments')->order(['comments_count'=>'desc','last_login_time'=>'desc'])->limit($num)->select();
if($user)
{
$res['status'] = 0;
$res['data'] = array();
foreach ($user as $key=>$v) {
$u['uid'] = (string) url('user/home',['id'=>$v['id']]);
$u['count(*)'] = $v['comments_count'];
if($v['nickname'])
{
$u['user'] = ['username'=>$v['nickname'],'avatar'=>$v['user_img']];
} else {
$u['user'] = ['username'=>$v['name'],'avatar'=>$v['user_img']];
}
$res['data'][] = $u;
}
}
Cache::set('reply',$res,3600);
}
return json($res);
}
}
[/pre]