注册 | 登录 |
地方论坛门户及新闻和人才网址大全

dedecms 点赞功能怎么做

时间:2021-07-21人气:-


首先后台执行SQL

1ALTERTABLEdede_archivesADDzanint(11)NOTNULLDEFAULT'0'AFTERweight;

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

然后执行

CREATETABLEIFNOTEXISTS`dede_zan`(`id`int(11)NOTNULLAUTO_INCREMENT,`aid`int(11)NOTNULL,`ip`varchar(40)NOTNULL,PRIMARYKEY(`id`))ENGINE=MyISAMDEFAULTCHARSET=utf8

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

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

functionzan($aid){global$dsql;$row=$dsql->GetOne("Selectid,zanFromdede_archiveswhereid='".$aid."'");return$row['zan'];}

打开模板templets/default/article_article.htm

加入css


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

加入JS,记得引入jquery.js

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

$(function(){$("pa").click(function(){varzan=$(this);varid=zan.attr("rel");//对应idzan.fadeOut(300);//渐隐效果$.ajax({type:"POST",url:"/zan.php",data:"id="+id,cache:false,//不缓存此页面success:function(data){zan.html(data);zan.fadeIn(300);//渐显效果}});returnfalse;});});

加入

12<divclass="zan"><p><ahref="#"title="赞一个"class="img_on"rel="{dede:field.id/}">{dede:field.idfunction="zan(@me)"/}</a></p></div>

建立zan.php 放到根目录


<?phprequire_once(dirname(__FILE__)."/include/common.inc.php");$ip=getip();//获取用户IP$id=$_POST['id'];if(!isset($id)||empty($id))exit;//查询已赞过的IP$dsql->SetQuery("SELECTipFROMdede_zanWHEREaid='".$id."'andip='$ip'");$dsql->Execute();$count=$dsql->GetTotalRow();if($count==0){//如果没有记录$dsql->ExecuteNoneQuery("updatedede_archivessetzan=zan+1whereid='$id';");//写入赞数$dsql->ExecuteNoneQuery("insertintodede_zan(aid,ip)values('$id','$ip');");//写入IP,及被赞的AID$rows=$dsql->GetOne("Selectzanfromdede_archiveswhereid='".$id."'");//获取被赞的数量$zan=$rows['zan'];//获取赞数值echo$zan;}else{echo"赞过了..";}

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


上篇:去掉DEDECMS后台的安全检测提示

下篇:DedeCMS软件频道防盗链设置