站长学院
CMS建站教程 SEO优化攻略
来源:齐鲁CMS 栏目:PHPCMS 阅读: 日期:2021-04-23
本文介绍了phpcmsV9怎么二次开发点赞功能,教程是借助心情功能修改为点赞功能,效果非常的棒,有此需要的朋友可以参考一下。
phpcmsV9怎么二次开发点赞功能?一起来看看实现方法。
先来看效果图:
当然还可以自定义方案:
思路:前台传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二次开发点赞的所有内容,希望可以帮到大家,欢迎找小编一起交流~