当前位置:网站首页 > 更多 > 站长帮 > 正文

[Emlog教程] Emlog非插件实现一键点赞功能

作者:CC下载站 日期:2018-10-10 02:20:45 浏览:1860 分类:站长帮

第一步:在module.php文件中加入以下代码

<?php //点赞
function syzan(){
$DB =MySql::getInstance();
if($DB->num_rows($DB->query("show columns from ".DB_PREFIX."blog like 'slzan'"))==0){
$sql ="ALTER TABLE ".DB_PREFIX."blog ADD slzan int unsigned NOT NULL DEFAULT '0'";
$DB->query($sql);}}syzan();
function update($logid){
$logid = intval($_POST['id']);
$DB =Database::getInstance();
$DB->query("UPDATE ". DB_PREFIX ."blog SET slzan=slzan+1 WHERE gid=$logid");
setcookie('slzanpd_'. $logid,'true', time()+31536000);}
function lemoninit(){if(@$_POST['plugin']=='slzanpd'&&@$_POST['action']=='slzan'&&isset($_POST['id'])){
$id = intval($_POST['id']);
header("Access-Control-Allow-Origin: *");
update($id);echo getnum($id);die;}}lemoninit();
function getnum($id){
static $arr = array();
$DB =Database::getInstance();
if(isset($arr[$logid]))return $arr[$logid];
$sql ="SELECT slzan FROM ". DB_PREFIX ."blog WHERE gid=$id";
$res = $DB->query($sql);
$row = $DB->fetch_array($res);
$arr[$id]= intval($row['slzan']);
return $arr[$id];}
?>

第二步:在文章页echo_log.php位置<?php echo content($log_content); ?>下加入以下代码

<a class="slzanpd" data-slzanpd="<?php echo $logData['logid'];?>" title="喜欢这篇文章就赞一个吧!">赞 (<?php echo(isset($logData['slzan'])?$logData['slzan']:getnum($logData['logid']));?>次)</a>

第三步:在JS文件里加上以下代码

$(document).on('click','.slzanpd',function(){var a = $(this), id = a.data('slzanpd');if(slzanpd_check(id)){ alert('您已赞过本文!');}else{ $.post('',{ plugin:'slzanpd', action:'slzan', id: id },function(b){ a.find('u').html(b); slzanpd_(a);});}});function slzanpd_check(id){returnnewRegExp('slzanpd_'+ id +'=true').test(document.cookie);} $('[data-slzanpd]').each(function(){var a = $(this), id = a.data('slzanpd');if(slzanpd_check(id)){ slzanpd_(a);}else{ a.attr('title','给小站来点动力吧!')}});function slzanpd_(a){ a.css('cursor','not-allowed').attr('title','您已赞过本文!');}


您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯