非插件实现emlog博客文章点赞功能

  • 内容
  • 相关

1、在当前主题的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];  
}  
?>  

2、在主题的header.php文件的前面添加以下代码:

<script type="text/javascript">  
$(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) {  
    return new RegExp('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', '您已赞过本文!');  
}  
</script>  

3、在主题的echo_log.php文件的下面添加以下代码:

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

4、在主题的main.css文件添加以下代码:

.ding {overflow:hidden; font-size:14px;}  
.ding a {display:block; float:left; background-color:#1F90DE; color:#fff; border-radius:3px; padding:5px 30px; cursor:pointer;}  
.ding a:hover {color:#fff;}  

本文标签:

版权声明:若无特殊注明,本文皆为《学崖漫漫》原创,转载请保留文章出处。

本文链接:非插件实现emlog博客文章点赞功能 - https://stdym.com/post-18.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注