基本使用
点赞可以不用登录进行点赞,一个认为评价的内容好坏指标。可能不是很准,因为陌生人可以点赞,而且是通过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'])}