基本使用
点赞可以不用登录进行点赞,一个认为评价的内容好坏指标。可能不是很准,因为陌生人可以点赞,而且是通过IP去判断当前浏览器是否已经点过赞。
2.0
开始重构了点赞模型,点赞内容存储在likes
表里面。
输出某人点赞列表
假设用户ID=1
{loop table="likes" userid="1" as="v"}
{php
//由于数据库仅存储栏目ID和内容ID,需要根据栏目ID获取模型标识,再通过模型获取对应的内容
//模型标识:$classtypedata[$v['tid']]['molds']
$info = M($classtypedata[$v['tid']]['molds'])->find(['id'=>$v['aid']]);
/}
标题:{$info['title']}
缩略图:{$info['litpic']}
内容:{$info['body']}
...
{/loop}
如果是当前用户呢?将
userid="1"
换成userid="$member['id']"
点赞JS
function likes(tid,id){
$.ajax({
url:"{fun U('user/likesAction')}",//请求的url地址
dataType:"json",//返回格式为json
async:true,//请求是否异步,默认为异步,这也是ajax重要特性
data:{tid:tid,id:id,ajax:1},//参数值
type:"POST",//请求方式
beforeSend:function(){
//请求前的处理
},
success:function(r){
if(r.code==0){
alert(r.msg);
window.location.reload();
}else{
alert(r.msg);
}
},
complete:function(){
//请求完成的处理
},
error:function(){
//请求出错处理
alert('网络错误');
}
})
}
判断是否点赞
{if(checkLikes($type['id'],$jz['id']))}
<span style="color:#f00;cursor:pointer;" onclick="likes({$type['id']},{$jz['id']})" class="icon-like">已点赞</span>
{else}
<span style="color:gray;cursor:pointer;" onclick="likes({$type['id']},{$jz['id']})" class="icon-like">点赞</span>
{/if}
输出点赞数
内容页
{$jz['zan']}
仅计算会员点赞
{fun jz_zan($jz['tid'],$jz['id'])}
其他页面需要根据前后文的循环变量来判断,如上面出现了
as="v"
,那么下面就写:
{fun jz_zan($v['tid'],$v['id'])}