首先后臺(tái)執(zhí)行SQL
- ALTER TABLE dede_archives ADD zan int(11) NOT NULL DEFAULT '0' AFTER weight;
也就是在 dede_archives 表中增加 zan 這個(gè)字段,加到weight這個(gè)字段后邊。
然后再次執(zhí)行
- 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
這個(gè)表是保存被贊的文檔aid 及IP的,為了檢測(cè)是否贊過(guò)的IP
然后在include/extend.func.php 中增加以下函數(shù),用來(lái)獲取文檔被贊次數(shù)的
- function zan($aid)
- {
- global $dsql;
- $row = $dsql->GetOne("Select id,zan From dede_archives where id='".$aid."'");
- return $row['zan'];
- }
打開(kāi)模板templets/default/article_article.htm加入css
- .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>
- $(function(){
- $("p a").click(function(){
- var zan = $(this);
- var id = zan.attr("rel"); //對(duì)應(yīng)id
- zan.fadeOut(300); //漸隱效果
- $.ajax({
- type:"POST",
- url:"/zan.php",
- data:"id="+id,
- cache:false, //不緩存此頁(yè)面
- success:function(data){
- zan.html(data);
- zan.fadeIn(300); //漸顯效果
- }
- });
- return false;
- });
- });
加入
- <div class="zan">
- <p>
- <a href="#" title="贊一個(gè) "class="img_on" rel="{dede:field.id/}">
- {dede:field.id function="zan(@me)"/}</a>
- </p></div>
建立zan.php 放到根目錄
- <?php
- require_once (dirname(__FILE__) . "/include/common.inc.php");
- $ip =getip(); //獲取用戶(hù)IP
- $id = $_POST['id'];
- if(!isset($id) || empty($id)) exit;
-
- //查詢(xún)已贊過(guò)的IP
- $dsql->SetQuery("SELECT ip FROM dede_zan WHERE aid='".$id."' and ip='$ip'");
- $dsql->Execute();
- $count = $dsql->GetTotalRow();
-
- if($count==0){ //如果沒(méi)有記錄
- //寫(xiě)入贊數(shù)
- $dsql->ExecuteNoneQuery("update dede_archives set zanzan=zan+1 where id='$id'; ");
- //寫(xiě)入IP,及被贊的AID
- $dsql->ExecuteNoneQuery("insert into dede_zan (aid,ip) values ('$id','$ip'); ");
- //獲取被贊的數(shù)量
- $rows = $dsql->GetOne("Select zan from dede_archives where id='".$id."'");
- $zan = $rows['zan']; //獲取贊數(shù)值
- echo $zan;
- }else{
- echo "贊過(guò)了..";
- }
好了,點(diǎn)贊功能開(kāi)發(fā)好了。
|