15621857753

phpcmsV9怎么二次开发点赞功能

来源:齐鲁建站 栏目:PHPCMS 阅读: 日期:2021-04-23

本文介绍了phpcmsV9怎么二次开发点赞功能,教程是借助心情功能修改为点赞功能,效果非常的棒,有此需要的朋友可以参考一下。

phpcmsV9怎么二次开发点赞功能?一起来看看实现方法。

先来看效果图:

phpcms二次开发点赞

当然还可以自定义方案:

思路:前台传id(文章ID或者其他ID)和点击事件的status值,点赞和取消赞都传status=1,默认传status=0,每刷新一次页面都与后台进行交互。

建表:取表名为ge_like,ge_为系统表前缀,修改为你自己的表前缀。

新建三个字段:自增id,通用nid和用户的ip,SQL语句如下:

CREATE TABLE IF NOT EXISTS `ge_like` ( 
`id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
`nid` int(10) COMMENT '通用id', 
`status` tinyint(1) unsigned NOT NULL DEFAULT '0', 
`ip` char(20) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; 

在\phpcms\phpcms\model新建模型like_model.class.php,代码如下:

<?php 
defined('IN_PHPCMS') or exit('No permission resources.'); 
pc_base::load_sys_class('model', '', 0); 
class like_model extends model { 
public function __construct() { 
$this->db_config = pc_base::load_config('database'); //加载数据库 
$this->db_setting = 'default'; 
$this->table_name = 'like'; // 指向like表 
parent::__construct(); 


?> 

在\phpcms\modules\下建一个like文件夹,里面加入index.php文件,代码如下:

<?php 
defined('IN_PHPCMS') or exit('No permission resources.'); 
class index { 
//通用点赞功能 
function like() { 
$json = array(); 
pc_base::load_app_func('global'); 
$ip = ip(); //获取ip 
$nid = $_POST['id']; //获取通用id 
$status = $_POST['status']; //获取状态值 默认不点赞和刷新页面都为零 
$userinfo = array(); 
$userinfo['nid'] = $_POST['id']; 
$userinfo['ip'] = $ip; 
$userinfo['status'] = $status; 

$this->like_db = pc_base::load_model('like_model'); //加载模型 
$info = $this->like_db->select($where=" nid = '$nid' AND ip = '$ip' ",$data = '*', $sql); //查询数据库 
$num = count($info); //$num>0,表示此ip已点过赞 

if ( $status == 1 && $num >0) { 
$this->like_db->delete($where=" nid = '$nid' AND ip = '$ip' "); //删除数据,取消点赞 
$json['flag'] = 0; 
} elseif ($status == 1 && $num == 0) { 
$this->like_db->insert($userinfo, array('nid'=>'$nid')); //插入数据, 正常点赞 
$json['flag'] = 1; 

if ( $status == 0 && $num >0) { //刷新页面时的判断 
$json['flag'] = 1; 
} elseif ($status == 0 && $num == 0) { 
$json['flag'] = 0; 

//所有IP点赞的次数 
$more = $this->like_db->select($where=" status = 1 ", $data = '*', $sql); 
$total = sizeof($more); 
$json['count'] = $total; 
echo json_encode($json); 

前台调用方法:

HTML代码示例如下:

<div class="content_sc_dz" style="display: inline-block;"> 
<div class="content_dz" style="float:none;" id="likebutton" data="{$catid}"> 
<span class="btn btn_red btn_large" style="border-radius: 5px;"> 
<font id="n1" name="n" onclick="vote(1)"> 
<i class="fa fa-thumbs-up"></i> 赞(<span id="likenum">1</span>) 
</font> 
</span> 
</div> 
</div> 

jQuery(要先引入jQuery库)代码示例如下:

<script type="text/javascript"> 
$(function(){ 
$("#likebutton").click(function(){ 
var love = $(this); 
var cid = love.attr("data"); //分类id 
$.ajax({ 
type:"POST", 
url:"{APP_PATH}index.php?m=like&c=index&a=like", 
data:"id="+cid+"&status=1", 
cache:false, //不缓存此页面 
success:function(data){ 
var res = $.parseJSON(data); 
$("#likenum").html(res.count); 

}); 
return false; 
}); 
}); 
</script> 

这样就可以了,试试看吧。

以上就是关于phpcms二次开发点赞的所有内容,希望可以帮到大家,欢迎找小编一起交流~

展开