寫這篇文章時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}
下面就簡單啦。用點贊做示例:
$(document).ready(function (e) { var url='/api.php/do/likes/id/'+{content:id}; $.ajax({ type: 'POST', url: url, dataType: 'json', data: { appid: '{pboot:appid}', timestamp: '{pboot:timestamp}', signature: '{pboot:signature}' }, success: function (response, status) { if(response.code){ //獲取數據成功 //此處對頁面已經顯示的{content:likes}+1,注意JS中需要轉換為數字,才能進行+1,否則會是字符串拼接。 alert(response.data); }else{ //返回錯誤數據 alert(response.data); } }, error:function(xhr,status,error){ //返回數據異常 alert('返回數據異常!'); } }); });
那么問題來了,這個是可以無限點贊的。根本停不下來呀...
我們應該事先的效果是跟常規的刷新頁面效果一樣,一天只能點贊一次。
我們需要對API接口進行優化一下。
需要修改的文件路徑:apps/api/controller/DoController.php
大約在24行;看下注釋就知道啦。
我們同樣以點贊為例,上代碼:
// 點贊 public function likes() { if (! ! $id = request('id', 'int')) { if(! cookie('likes_' . $id)){ $this->model->addLikes($id); cookie('likes_' . $id, true, 86400, null, null, null, null); json(1, '點贊成功'); }else{ json(0, '24小時內只能點贊一次哦!'); } } else { json(0, '點贊失敗'); } }
至此,24小時點贊一次的功能就優化完成啦。