• 1111阅读
  • 1回复

织梦dedecms首页文章列表无刷新实现时时顶、踩的方法

楼层直达
织梦dedecms首页文章列表无刷新实现时时顶、踩的方法[font=&quot] jKcl{',  
^VzhjKSu  
第一步:首先创建一个空白首页文件,在里面<body>区域加入以下调用代码: DQObHB8L  
<ol> @}^VA9ULK  
{dede:arclist row=’5′ titlelen=’20′} Jl\U~i  
<li><a href=”[field:arcurl/]“>[field:title/]</a> <span id=”diggNum[field:id/]“>操作区:<a href=”javascript:” onclick=”javascript:postDigg(‘good’,[field:id/])”>顶</a>([field:goodpost/]) <a href=”javascript:” onclick=”javascript:postDigg(‘bad’,[field:id/])”>踩</a>([field:badpost/])</span></li> .5SYN -@  
<script language=”javascript” type=”text/javascript”>getDigg([field:id/]);</script> tw 3zw`o:  
{/dede:arclist} 0WZd$  
</ol> /^K-tz-R  
这里的<script language=”javascript” type=”text/javascript”>getDigg([field:id/]);</script> 被加在了arclist标签里作为底层模板,是为了让每一篇文档都可以独立显示其顶和踩的状态。 AH#a+<;a  
e~he#o[%a  
第二步:在<head></head>区域内加入以下代码: CE (zt  
<script language=”javascript” type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/include/dedeajax2.js”></script> Rm_+kp@\  
<script language=”javascript” type=”text/javascript”> /ZL6gRRA|  
function postDigg(ftype,aid) |A|K);  
{ ]2&RN@  
var taget_obj = document.getElementById(‘diggNum’+aid); 4j,6t|T  
var saveid = GetCookie(‘diggid’); < h|&7  
if(saveid != null) Om;` "5  
{ )2^r 0(x  
var saveidsaveids = saveid.split(‘,’); 5|}u25J  
var hasid = false; =pj3G?F#  
saveid = ”; L6jwJwD  
j = 1; ^P.U_2&  
for(i=saveids.length-1;i>=0;i–) *6}'bdQbNP  
{ t,A=B(W  
if(saveids==aid && hasid) continue; X_3hh}=  
else { 2J)  
if(saveids==aid && !hasid) hasid = true; yr.sfPnJK  
saveid += (saveid==” ? saveids : ‘,’+saveids); }dU!PZ9N)  
j++; +sq_fd ;'D  
if(j==20 && hasid) break; f"4w@X2F  
if(j==19 && !hasid) break; |v#rSVx  
} [CAFh:o  
} Z;;A#h'%e  
if(hasid) { alert(“您已经顶过该帖,请不要重复顶帖!”); return; } w xa MdA  
else saveid += ‘,’+aid; ]T.+(\I  
SetCookie(‘diggid’,saveid,1); G2sj<F=AV  
} Vkf{dHjW  
else 00r7trZW^  
{ i{Du6j^j  
SetCookie(‘diggid’,aid,1); U?5G%o(q  
} r{*BJi.b  
myajax = new DedeAjax(taget_obj,false,false,”,”,”); bV"t;R9  
var url = “{dede:global.cfg_phpurl/}/digg_ajax_index.php?action=”+ftype+”id=”+aid; rrphOG  
myajax.SendGet2(url); 43O5|8o  
DedeXHTTP = null; "-rqL  
} .t&G^i'n  
function getDigg(aid) _w'_l>I  
{ *{\))Zmhd  
var taget_obj = document.getElementById(‘diggNum’+aid); jCIY(/  
myajax = new DedeAjax(taget_obj,false,false,”,”,”); &H+n0v  
myajax.SendGet2(“{dede:global.cfg_phpurl/}/digg_ajax_index.php?id=”+aid); Ji6.-[:  
DedeXHTTP = null; '6*9pG-  
} <~:2~r  
</script> i` ay9J8N  
这一段代码主要就是引入织梦系统自带的Ajax框架(dedeajax2.js)和两个操作的函数(postDigg(ftype,aid)与getDigg(aid)) 2Vw2r@S/  
/{ W6]6^  
第三步:在/plus/ 文件夹下创建一个名为digg_ajax_index.php的文件,该文件的内容为: N0JdU4'  
<?php/** * CMS集中营 www.cmsjzy.cn */ -*Th=B-  
require_once(dirname(__FILE__).”/../include/common.inc.php”); >Q?8tGfB  
$action = isset($action) ? trim($action) : ”; ZE~zs~z|  
$id = emptyempty($id)? 0 : intval(preg_replace(“/[^\d]/”,”, $id)); A r>BL2@  
if($id < 1) .0~uM!3y  
{ >mG64N  
exit(); yf4L0.  
} /SQ/$`1{  
$maintable = ‘dede_archives’; 4"\cA:9a  
if($action == ‘good’) K>b4(^lf  
{ =;b3i1'U  
$dsql->ExecuteNoneQuery(“Update `$maintable` set scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=”.time().” where id=’$id’”); c"pOi&  
} x{tlC}t  
else if($action==’bad’) !6@'H4cb=  
{ Jmi,;Af'/  
$dsql->ExecuteNoneQuery(“Update `$maintable` set scores = scores – {$cfg_caicai_sub},badpost=badpost+1,lastpost=”.time().” where id=’$id’”); *f`P7q*  
} QCE7VV1Rw  
$digg = ”; ,sL%Ykr  
$row = $dsql->GetOne(“Select goodpost,badpost,scores From `$maintable` where id=’$id’ “); ~(kqq#=s  
if(!is_array($row)) j%^4 1y  
{ y$SUYG'v  
exit(); }u=Oi@~  
} ) ba~7A  
if($row['goodpost']+$row['badpost'] == 0) kLZVTVSJt  
{ ,w H~.LHi  
$row['goodper'] = $row['badper'] = 0; Ve&_NVPrd  
} FiUwy/,ZV  
else R_KDY  
{ d(d<@cB9  
$row['goodper'] = number_format($row['goodpost']/($row['goodpost']+$row['badpost']),3)*100; orH6R8P]  
$row['badper'] = 100-$row['goodper']; '5De1K.\`  
} jqc}mI\#  
if(emptyempty($formurl)) $formurl = ”; e'G=.:  
if($formurl==’caicai’) i\ X3t5  
{ YRX^fZ-b  
if($action == ‘good’) $digg = $row['goodpost']; rxu_Ssd@"  
if($action == ‘bad’) $digg = $row['badpost']; m{ !$_z8:  
} #NYnZ^6e  
else XxS#~J?:_  
{ S3Gr}N  
$row['goodper'] = trim(sprintf(“%4.2f”, $row['goodper'])); 8VMA~7^  
$row['badper'] = trim(sprintf(“%4.2f”, $row['badper'])); ~rdS#f&R2  
$digg = ‘操作区:<a href=”javascript:” onclick=”javascript:postDigg(\’good\’,’.$id.’)”>顶</a>(’.$row['goodpost'].’) <a href=”javascript:” onclick=”javascript:postDigg(\’bad\’,’.$id.’)”>踩</a>(’.$row['badpost'].’)’; ISs&1`Y  
} 9=MNuV9/s  
AjaxHead(); t,|Apl]  
echo $digg; ?j.a>{  
exit(); K9%rr_ja!  
?>
只看该作者 安逸沙发  发表于: 2018-06-23
我们在仿站的过程中。经常会遇到需要调用多个指定的顶级栏目导航,那我们如何实现呢?本文来讲解一下指定导航栏显示的方法: 9QEK|x`8  
}KR"0G[f  
{dede:channelartlist row='2' typeid='1,2这里输入多个指定的栏目ID' } # 2?3B  
<li><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li> RdLk85<n  
{/dede:channelartlist}
快速回复

限100 字节
安逸网提示:批量上传需要先选择文件,再选择上传
 
认证码:
上一个 下一个