帝国cms顶踩百分比显示和实时刷新功能(亲测ecms7.2)

最近想给我我爱团队网加上顶踩功能,帝国cms7.2本身自带了顶一下功能,在数据表中加入踩字段后,简单的顶踩功能就实现了。因为觉得dedecms的顶踩功能上有百分比样式,所以就在网上找了一些攻略,最终东拼西凑的把这个功能实现了,顶踩百分比显示且实时刷新。其实整个过程的难点就是在顶踩点击后的实时刷新上,这个需要各位注意。

先上图吧

2016022201

下面我就具体的说下操作步骤

第一步

增加踩字段(diggdown),这个简单,帝国的论坛都有方法,就是在“系统——数据表与系统模型——管理数据表”中phome_ecms_article或phome_ecms_news中增加字段diggdown,具体可以参考数据表中diggtop(顶字段)。

第二步

修改e/public/viewclick/index.php文件。

找到下面的代码

//digg顶数

elseif($down==5)

{

$r=$empire->fetch1(“select diggtop from {$dbtbpre}ecms_”.$cr[‘tbname’].” where id=’$id’ limit 1″);

$shownum=$r[‘diggtop’];

}

//digg踩数

elseif($down==6)

{

$r=$empire->fetch1(“select diggdown from {$dbtbpre}ecms_”.$cr[‘tbname’].” where id=’$id’ limit 1″);

$shownum=$r[‘diggdown’];

}

将其修改为

//diggtop数
elseif($down==5)
{
$r=$empire->fetch1(“select diggtop,diggdown from {$dbtbpre}ecms_”.$cr[‘tbname’].” where id=’$id’ limit 1″);
$diggtop=$r[‘diggtop’];
$diggdown=$r[‘diggdown’];
if($diggtop+$diggdown==0)
{
$tmp1=round($diggtop/1*100,2);
}
else
{
$tmp1=round($diggtop/($diggtop+$diggdown)*100,2);
}
$shownum='<div style=”text-align:center;clear:both; font-size:12px;”>’.$diggtop.'</div><div style=”background-color:#FFFFFF; width:80px; border:1px solid #cc0000; height:4px; overflow:hidden; position:relative; float:left; clear:right;”><div style=”background-color:#cc0000; height:4px; width:’.$tmp1.’%; overflow:hidden; position:relative;”></div></div><div style=”text-align:center; clear:both; font-size:12px;”>’.$tmp1.’%</div>’;
}
//diggdown数
elseif($down==6)
{
$r=$empire->fetch1(“select diggtop,diggdown from {$dbtbpre}ecms_”.$cr[‘tbname’].” where id=’$id’ limit 1″);
$diggtop=$r[‘diggtop’];
$diggdown=$r[‘diggdown’];
if($diggtop+$diggdown==0)
{
$tmp2=round($diggdown/1*100,2);
}
else
{
$tmp2=round($diggdown/($diggtop+$diggdown)*100,2);
}
$shownum='<div style=”text-align:center;clear:both; font-size:12px;”>’.$diggdown.'</div><div style=”background-color:#FFFFFF; width:80px; border:1px solid #0066FF; height:4px; overflow:hidden; position:relative; float:right; clear:right;”><div style=”background-color:#0066FF;float:right; height:4px; width:’.$tmp2.’%; overflow:hidden; position:relative;”></div></div><div style=”text-align:center;clear:right; font-size:12px;”>’.$tmp2.’%</div>’;
}

第三步

在网页中添加顶踩显示代码

<div class=”digg” id=”diggbury”>
<script src=”[!–news.url–]e/data/js/ajax.js”></script>
<table width=”300″ height=”60″ border=”0″>
<tr>
<td><a href=”JavaScript:makeRequest(‘[!–news.url–]e/public/digg?classid=[!–classid–]&id=[!–id–]&dotop=1&doajax=1&ajaxarea=diggbury’,’EchoReturnedText’,’GET’,”);”><img src=”[!–news.url–]skin/mei/images/diggtop.png” alt=”顶一下” /></a></td>
<td><script src=[!–news.url–]e/public/ViewClick?classid=[!–classid–]&id=[!–id–]&down=5></script></td>
<td><script src=[!–news.url–]e/public/ViewClick?classid=[!–classid–]&id=[!–id–]&down=6></script></td>
<td><a href=”JavaScript:makeRequest(‘[!–news.url–]e/public/digg?classid=[!–classid–]&id=[!–id–]&dotop=0&doajax=1&ajaxarea=diggbury’,’EchoReturnedText’,’GET’,”);”><img src=”[!–news.url–]skin/mei/images/diggdown.png” alt=”踩一下” /></a></td>
</tr>
</table>
</div>

注意:diggbury,并且不要忘了<script src=”[!–news.url–]e/data/js/ajax.js”></script>

第四步

修改e/public/digg/index.php代码,主要是为了实现顶踩的实时刷新

找到

$nr=$empire->fetch1(“select “.$f.” from {$dbtbpre}ecms_”.$class_r[$classid][tbname].” where id=’$id'”);
ajax_printerror($nr[$f],$_GET[‘ajaxarea’],$mess,1);

将其更换为

$nr=$empire->fetch1(“select diggtop,diggdown from {$dbtbpre}ecms_”.$class_r[$classid][tbname].” where id=’$id’ limit 1″);
$diggtop=$nr[‘diggtop’]; //顶数赋值给diggtop变量
$diggdown=$nr[‘diggdown’]; //踩数赋值给diggdown变量
$tmp1=round($diggtop/($diggtop+$diggdown)*100,2); //顶数百分比,保留2位小数
$tmp2=round($diggdown/($diggtop+$diggdown)*100,2); //踩数百分比,保留2位小数
$show='<div class=”digg”><table width=”300″ height=”60″ border=”0″><tr><td><img src=”http://www.52tuandui.com/skin/mei/images/diggtop.png” alt=”顶一下” /></td><td><div style=”float:left;width:80px;text-align:center;height:60px;margin:11px 1px 0px 0px;”><div style=”line-height:20px;”>’.$diggtop.'</div><div style=”background-color:#FFFFFF;clear:both; width:80px; border:1px solid #cc0000; height:4px; overflow:hidden; position:relative; float:left;”><div style=”background-color:#cc0000;float:left;height:4px; width:’.$tmp1.’%; overflow:hidden; position:relative;”></div></div><div style=”line-height:20px;”>’.$tmp1.’%</div></div></td><td><div style=”float:right;width:80px;text-align:center;height:60px;margin:11px 0px 0px 1px;”><div style=”line-height:20px;”>’.$diggdown.'</div><div style=”background-color:#FFFFFF; width:80px; border:1px solid #006699; height:4px; overflow:hidden; position:relative; float:right;”><div style=”background-color:#006699;float:right;height:4px; width:’.$tmp2.’%; overflow:hidden; position:relative;”></div></div><div style=”line-height:20px;”>’.$tmp2.’%</div></div></td><td><img src=”http://www.52tuandui.com/skin/mei/images/diggdown.png” alt=”踩一下” /></a></td></tr></table></div>’; //输出html代码
ajax_printerror($show,$_GET[‘ajaxarea’],$mess,1);

注意啦,$show就是实时刷新后的样式,如果代码写的不好,可能出现兼容性问题,比如点击前后有点错位,哎,就像我的,每次点击了,是实时刷新了,但是不同的浏览器会前后会有一点点的错位,还好,我能接受。

至此,整个帝国cms7.2顶踩百分比显示和实时刷新的功能实现了。

未经允许不得转载:渼陂湖 » 帝国cms顶踩百分比显示和实时刷新功能(亲测ecms7.2)

赞 (6)