dedecms 开发点赞功能

首先后台执行SQL

1
ALTER  TABLE  dede_archives  ADD  zan  int (11)  NOT  NULL  DEFAULT  '0'  AFTER  weight;

 

也就是在 dede_archives 表中增加 zan  这个字段,加到weight这个字段后边。

 

然后执行

1
2
3
4
5
6
CREATE  TABLE  IF  NOT  EXISTS `dede_zan` ( 
   `id`  int (11)  NOT  NULL  AUTO_INCREMENT, 
   `aid`  int (11)  NOT  NULL
   `ip`  varchar (40)  NOT  NULL
   PRIMARY  KEY  (`id`) 
) ENGINE=MyISAM   DEFAULT  CHARSET=utf8

这个表是保存被赞的文档aid 及IP的,为了检测是否赞过的IP

 

然后在include/extend.func.php 中增加以下函数,用来获取文档被赞次数的

1
2
3
4
5
6
function  zan( $aid )
{
     global  $dsql ;
     $row  $dsql ->GetOne( "Select id,zan From dede_archives where id='" . $aid . "'" );
     return  $row [ 'zan' ];
     }

 

 

打开模板templets/default/article_article.htm

 

加入css

1
2
3
4
5
.zan p{
background : #000 ; opacity:. 8 ;filter:alpha(opacity= 80 );} 
.zan p a{ padding-left : 30px height : 24px background : url (/images/heart.png)  no-repeat  
4px  -1px ; color : #fff font-weight : bold font-size : 14px
.zan p a:hover{ background-position : 4px  -25px ; text-decoration : none }

 

加入JS,记得引入jquery.js

<script type="text/javascript" src="/jquery.js"></script>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$( function (){ 
     $( "p a" ).click( function (){ 
         var  zan = $( this ); 
         var  id = zan.attr( "rel" );  //对应id 
         zan.fadeOut(300);  //渐隐效果 
         $.ajax({ 
             type: "POST"
             url: "/zan.php"
             data: "id=" +id, 
             cache: false //不缓存此页面 
             success: function (data){ 
                 zan.html(data); 
                 zan.fadeIn(300);  //渐显效果 
            
         }); 
         return  false
     }); 
});

 

加入

1
2
< div  class = "zan" >< p >< a  href = "#"  
title = "赞一个 " class = "img_on"  rel = "{dede:field.id/}" >{dede:field.id function="zan(@me)"/}</ a ></ p ></ div >

 

 

建立zan.php 放到根目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
require_once  (dirname( __FILE__ ) .  "/include/common.inc.php" );
$ip  =getip();  //获取用户IP 
$id  $_POST [ 'id' ]; 
if (!isset( $id ) ||  empty ( $id ))  exit
 
//查询已赞过的IP
$dsql ->SetQuery( "SELECT ip FROM dede_zan  WHERE aid='" . $id . "' and ip='$ip'" );
$dsql ->Execute();
$count  $dsql ->GetTotalRow();
 
if ( $count ==0){  //如果没有记录 
 
     $dsql ->ExecuteNoneQuery( "update dede_archives set zan=zan+1 where id='$id'; " ); //写入赞数
    
     $dsql ->ExecuteNoneQuery( "insert into dede_zan (aid,ip) values ('$id','$ip'); " ); //写入IP,及被赞的AID 
 
     $rows  $dsql ->GetOne( "Select zan  from dede_archives where id='" . $id . "'" ); //获取被赞的数量
     $zan  $rows [ 'zan' ];  //获取赞数值 
     echo  $zan
} else
     echo  "赞过了.."
}

 

好了,点赞功能开发好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值