欢迎访问热站网,开始您的建站营销之旅!!

您现在的位置: 首页>>pbootcms教程

优化PbootCms的点赞效果

来源:热站网 发布时间:2026-04-08 18:21:34 热度:0 ℃

    写这篇文章时pbootCms版本是V2.0.7

    pbootcms模板系统默认给出了点赞、反对的链接。分别是:

   {content:likeslink} 点赞链接

   {content:opposelink} 反对链接

    使用效果是,点击一次,页面刷新一下,点赞数{content:likes}{content:oppose}会显示+1。

    这个效果显示比较硬。一个小功能,居然要页面刷新,不能忍,必须改造。

    当我写到一半的时候,发现原来PbootCms已经有这个API接口了。手动黑人问号。



    那么还是用官方的吧,官方的开发文档中并没有给出相关文档。



    我们先来说一下这俩接口。



    点赞链接:http://IP/api.php/do/likes/id/*    //此处传递文章的ID,即{content:id}



    反对链接:http://IP/api.php/do/oppose/id/*    //此处传递文章的ID,即{content:id}



    下面就简单啦。用点赞做示例:

01    $(document).ready(function (e) {    
02      var url='/api.php/do/likes/id/'+{content:id};    
03      $.ajax({    
04        type: 'POST',    
05        url: url,    
06        dataType: 'json',    
07        data: {    
08          appid: '{pboot:appid}',    
09          timestamp: '{pboot:timestamp}',    
10          signature: '{pboot:signature}'    
11         },    
12        success: function (response, status) {    
13          if(response.code){    
14            //获取数据成功    
15            //此处对页面已经显示的{content:likes}+1,注意JS中需要转换为数字,才能进行+1,否则会是字符串拼接。    
16            alert(response.data);    
17          }else{    
18            //返回错误数据    
19            alert(response.data);    
20          }    
21        },    
22        error:function(xhr,status,error){    
23          //返回数据异常    
24          alert('返回数据异常!');    
25        }    
26      });    
27    });

    那么问题来了,这个是可以无限点赞的。根本停不下来呀...

    我们应该事先的效果是跟常规的刷新页面效果一样,一天只能点赞一次。

    我们需要对API接口进行优化一下。

    需要修改的文件路径:apps/api/controller/DoController.php

    大约在24行;看下注释就知道啦。

    我们同样以点赞为例,上代码:

01    // 点赞    
02        public function likes()    
03        {    
04            if (! ! $id = request('id', 'int')) {    
05                if(! cookie('likes_' . $id)){    
06                    $this->model->addLikes($id);    
07                    cookie('likes_' . $id, true, 86400, null, null, null, null);    
08                    json(1, '点赞成功');    
09                }else{    
10                    json(0, '24小时内只能点赞一次哦!');    
11                }    
12            } else {    
13                json(0, '点赞失败');    
14            }    
15        }


文章搜集与网络,如有侵权请联系本站,转载请说明出处:https://www.rezhanwang.com/pbootcms/3715.html

责任编辑:热站网
 
QQ在线咨询