• 1108阅读
  • 1回复

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

楼层直达
织梦dedecms首页文章列表无刷新实现时时顶、踩的方法[font=&quot] <,:p?36  
jPum2U_  
第一步:首先创建一个空白首页文件,在里面<body>区域加入以下调用代码: c}$C=s5 h}  
<ol> Wjf,AjL\  
{dede:arclist row=’5′ titlelen=’20′} JSf \ApX  
<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> N A`qC.K   
<script language=”javascript” type=”text/javascript”>getDigg([field:id/]);</script> Pjvzefp  
{/dede:arclist} Y<vHL<G  
</ol> 8k.<xWDU  
这里的<script language=”javascript” type=”text/javascript”>getDigg([field:id/]);</script> 被加在了arclist标签里作为底层模板,是为了让每一篇文档都可以独立显示其顶和踩的状态。 f$2DV:wuC  
16cc9%   
第二步:在<head></head>区域内加入以下代码: Mtw7aK  
<script language=”javascript” type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/include/dedeajax2.js”></script> <meQ  
<script language=”javascript” type=”text/javascript”> B)v|A  
function postDigg(ftype,aid) (H[ .\O-`  
{ v9_7OMl/x  
var taget_obj = document.getElementById(‘diggNum’+aid); q4xP<b^  
var saveid = GetCookie(‘diggid’); Quts~Q  
if(saveid != null) pl4:>4l/  
{ Uv|?@zy#  
var saveidsaveids = saveid.split(‘,’); W{l{O1,  
var hasid = false; H'_v  
saveid = ”; wV{jJyRl  
j = 1; ]IM/R@  
for(i=saveids.length-1;i>=0;i–) ]*&`J4i  
{ mr[+\ 5  
if(saveids==aid && hasid) continue; kBlk^=h<:w  
else { n5z";:p  
if(saveids==aid && !hasid) hasid = true; d&owS+B{48  
saveid += (saveid==” ? saveids : ‘,’+saveids); % s),4  
j++; *a2-Vte  
if(j==20 && hasid) break; G]k+0&X  
if(j==19 && !hasid) break; *Me&> "N"  
} zk^uS#  
} h}n?4B~Gi  
if(hasid) { alert(“您已经顶过该帖,请不要重复顶帖!”); return; } (/ e[n.T  
else saveid += ‘,’+aid; kVY 0 E  
SetCookie(‘diggid’,saveid,1); `s|^  
} pp1kcrE\M  
else /`+ubFXc  
{ xO 6$:o-  
SetCookie(‘diggid’,aid,1); <gLq?~e|A  
} G @8wv J  
myajax = new DedeAjax(taget_obj,false,false,”,”,”); fb_q2p} G  
var url = “{dede:global.cfg_phpurl/}/digg_ajax_index.php?action=”+ftype+”id=”+aid; 9}<iS w[  
myajax.SendGet2(url); iM +p{ /bN  
DedeXHTTP = null; n,*E s/\  
} 8<_dNt'91  
function getDigg(aid) 7$A=|/'nSA  
{ q!whWA  
var taget_obj = document.getElementById(‘diggNum’+aid); @M=\u-jJ.  
myajax = new DedeAjax(taget_obj,false,false,”,”,”); Ox^VU2K;&.  
myajax.SendGet2(“{dede:global.cfg_phpurl/}/digg_ajax_index.php?id=”+aid); jUCDf-_ m  
DedeXHTTP = null; VdE$ig@  
} \(`,z}Ht _  
</script> s&D>'J  
这一段代码主要就是引入织梦系统自带的Ajax框架(dedeajax2.js)和两个操作的函数(postDigg(ftype,aid)与getDigg(aid)) JTdcL mL  
)vy_m_f&  
第三步:在/plus/ 文件夹下创建一个名为digg_ajax_index.php的文件,该文件的内容为: \$Aw[ 5&t  
<?php/** * CMS集中营 www.cmsjzy.cn */ Cg&:+  
require_once(dirname(__FILE__).”/../include/common.inc.php”); g<s;uRA4O9  
$action = isset($action) ? trim($action) : ”; >+F +"NAN  
$id = emptyempty($id)? 0 : intval(preg_replace(“/[^\d]/”,”, $id)); H':0  
if($id < 1) ^9`~-w  
{ q|S,^0cU  
exit(); =e|  
} "fWm{;  
$maintable = ‘dede_archives’; C)|#z/"  
if($action == ‘good’) d;E (^l  
{ "= >8UR  
$dsql->ExecuteNoneQuery(“Update `$maintable` set scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=”.time().” where id=’$id’”); v0,&wdi  
} cPg$*,]  
else if($action==’bad’) PLs(+>H  
{ )d7U3i  
$dsql->ExecuteNoneQuery(“Update `$maintable` set scores = scores – {$cfg_caicai_sub},badpost=badpost+1,lastpost=”.time().” where id=’$id’”); A}z1~Z+  
} U_1N*XK6$  
$digg = ”; C.Re*;EI,  
$row = $dsql->GetOne(“Select goodpost,badpost,scores From `$maintable` where id=’$id’ “); \!!1o+#1j  
if(!is_array($row)) /V f L(  
{ q\T}jF\t  
exit(); T(iL#2^  
} !)h?2#V8;  
if($row['goodpost']+$row['badpost'] == 0) /<it2=  
{ %a$Fsn  
$row['goodper'] = $row['badper'] = 0; .9KW| (uW  
} tqT-9sEXX.  
else DY!mq91  
{ 6HxZS+], c  
$row['goodper'] = number_format($row['goodpost']/($row['goodpost']+$row['badpost']),3)*100; <]kifiN#  
$row['badper'] = 100-$row['goodper']; V'XvwO@  
} 9S$?2z".2  
if(emptyempty($formurl)) $formurl = ”; 70{fl 4J5  
if($formurl==’caicai’) 6v9A7g;4.  
{ |q*s)8  
if($action == ‘good’) $digg = $row['goodpost']; TLiA>`r=  
if($action == ‘bad’) $digg = $row['badpost']; {;j@-=pV  
} {uuvgFC  
else d( +E0  
{ )./.rtP|4  
$row['goodper'] = trim(sprintf(“%4.2f”, $row['goodper'])); k7ODQ(*v  
$row['badper'] = trim(sprintf(“%4.2f”, $row['badper'])); @C fxPA  
$digg = ‘操作区:<a href=”javascript:” onclick=”javascript:postDigg(\’good\’,’.$id.’)”>顶</a>(’.$row['goodpost'].’) <a href=”javascript:” onclick=”javascript:postDigg(\’bad\’,’.$id.’)”>踩</a>(’.$row['badpost'].’)’; "7tEk<x  
} hr] :bR  
AjaxHead(); W9ewj:4\0  
echo $digg; !rMl" Y[  
exit(); 7,N>u8cTh  
?>
只看该作者 安逸沙发  发表于: 2018-06-23
我们在仿站的过程中。经常会遇到需要调用多个指定的顶级栏目导航,那我们如何实现呢?本文来讲解一下指定导航栏显示的方法: nR8r$2B+t  
%gEgp Jd  
{dede:channelartlist row='2' typeid='1,2这里输入多个指定的栏目ID' } @G^m+-  
<li><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li> OE=.@Ry"  
{/dede:channelartlist}
快速回复

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