点赞功能

来源:官方· 作者 jizhicms· 24次点击 · 5个月前

基本使用

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


被收藏 0  ∙  0 赞  
加入收藏
0 回复  
善言善语 (您需要 登录 后才能回复 没有账号 ?)

请先登录网站