• 1107阅读
  • 1回复

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

楼层直达
织梦dedecms首页文章列表无刷新实现时时顶、踩的方法[font=&quot] OaoHN& "  
kDRxu!/  
第一步:首先创建一个空白首页文件,在里面<body>区域加入以下调用代码: &F[N$6:v  
<ol> , .=7{y~  
{dede:arclist row=’5′ titlelen=’20′} t(.vX  
<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> wXdt\@Qr  
<script language=”javascript” type=”text/javascript”>getDigg([field:id/]);</script> *N{k#d/  
{/dede:arclist} x|^p9m"=%  
</ol> |L}tAS`8  
这里的<script language=”javascript” type=”text/javascript”>getDigg([field:id/]);</script> 被加在了arclist标签里作为底层模板,是为了让每一篇文档都可以独立显示其顶和踩的状态。 %|R]nB  
.p'McCV=  
第二步:在<head></head>区域内加入以下代码: 0R]'HA>  
<script language=”javascript” type=”text/javascript” src=”{dede:global.cfg_cmsurl/}/include/dedeajax2.js”></script> ?e+y7K}"]  
<script language=”javascript” type=”text/javascript”> 7g oRj  
function postDigg(ftype,aid) g*4^HbVxt  
{ 28}L.>5k  
var taget_obj = document.getElementById(‘diggNum’+aid); L1@<7?@X  
var saveid = GetCookie(‘diggid’); <{Rz1CMc  
if(saveid != null) pd.pY*B<[  
{ bi-z%!Z  
var saveidsaveids = saveid.split(‘,’); _4k zlD  
var hasid = false; (ze9-!%  
saveid = ”; '8@4FXK  
j = 1; J~ z00p`E  
for(i=saveids.length-1;i>=0;i–) 3 }#rg  
{ /}d)g4\j  
if(saveids==aid && hasid) continue; ehMpo BL  
else { G*zhy!P  
if(saveids==aid && !hasid) hasid = true; qUQP.4Z95  
saveid += (saveid==” ? saveids : ‘,’+saveids); >T\^dHtz  
j++; Vg"vC  
if(j==20 && hasid) break; S09Xe_q  
if(j==19 && !hasid) break; 7U&<{U<  
} j 4(f1  
} ^/$U(4  
if(hasid) { alert(“您已经顶过该帖,请不要重复顶帖!”); return; } "haJwV6-  
else saveid += ‘,’+aid; U\"FYTC  
SetCookie(‘diggid’,saveid,1); FaG&U  
} gJOD+~  
else z) "(&__  
{ mr XmM<  
SetCookie(‘diggid’,aid,1); t8~isuiK  
} .DhB4v&  
myajax = new DedeAjax(taget_obj,false,false,”,”,”); e1R<+`]  
var url = “{dede:global.cfg_phpurl/}/digg_ajax_index.php?action=”+ftype+”id=”+aid; VzuU 0  
myajax.SendGet2(url); @dhnpR :L  
DedeXHTTP = null; ,mE}#cyY  
} K'U=);W  
function getDigg(aid) }Y3*X: i7  
{ AZbFj-^4  
var taget_obj = document.getElementById(‘diggNum’+aid); D.x&N~-  
myajax = new DedeAjax(taget_obj,false,false,”,”,”); Q.l3F3;  
myajax.SendGet2(“{dede:global.cfg_phpurl/}/digg_ajax_index.php?id=”+aid); A1aN<!ehB  
DedeXHTTP = null; _j\ 8u`^n  
} &v/R-pz  
</script> :gx]zxK  
这一段代码主要就是引入织梦系统自带的Ajax框架(dedeajax2.js)和两个操作的函数(postDigg(ftype,aid)与getDigg(aid)) d PF*G$  
 ^J& }C  
第三步:在/plus/ 文件夹下创建一个名为digg_ajax_index.php的文件,该文件的内容为: m/aA q8  
<?php/** * CMS集中营 www.cmsjzy.cn */ f(*iagEy  
require_once(dirname(__FILE__).”/../include/common.inc.php”);  y7.oy"  
$action = isset($action) ? trim($action) : ”; O7zj8  
$id = emptyempty($id)? 0 : intval(preg_replace(“/[^\d]/”,”, $id)); vH>s2\V"  
if($id < 1) `&FfGftc  
{ mC!^`y)  
exit(); wRe2sjM  
} Qsr+f~"W  
$maintable = ‘dede_archives’; u~1 ,88&U  
if($action == ‘good’) r5PZ=+F  
{ \!Ap<  
$dsql->ExecuteNoneQuery(“Update `$maintable` set scores = scores + {$cfg_caicai_add},goodpost=goodpost+1,lastpost=”.time().” where id=’$id’”); d(9C7GLC,  
} He}"e&K  
else if($action==’bad’) dRXrI  
{ O2oF\E_6  
$dsql->ExecuteNoneQuery(“Update `$maintable` set scores = scores – {$cfg_caicai_sub},badpost=badpost+1,lastpost=”.time().” where id=’$id’”); i6xzHfaYG  
} /=:F w}vt  
$digg = ”; !+n'0{  
$row = $dsql->GetOne(“Select goodpost,badpost,scores From `$maintable` where id=’$id’ “); 6Q}>=R^h  
if(!is_array($row)) ` 6pz9j]  
{ lYy:A%yDT  
exit(); zz-X5PFn  
} M#xol/)h  
if($row['goodpost']+$row['badpost'] == 0) -z>m]YDH  
{ L:Me  
$row['goodper'] = $row['badper'] = 0; S vW{1  
} FF#?x@N:  
else N7Kkz /  
{ %TzdpQp"  
$row['goodper'] = number_format($row['goodpost']/($row['goodpost']+$row['badpost']),3)*100; cxnEcX\   
$row['badper'] = 100-$row['goodper']; L%/atl!  
} dSbz$Fct  
if(emptyempty($formurl)) $formurl = ”; ^fti<Lw5  
if($formurl==’caicai’) L EY k  
{ aTE;Gy,W  
if($action == ‘good’) $digg = $row['goodpost']; kS)|oU K  
if($action == ‘bad’) $digg = $row['badpost']; g>_d,#F  
} pYX!l:hk  
else i [6oqZ  
{ 5>rjL ;  
$row['goodper'] = trim(sprintf(“%4.2f”, $row['goodper'])); Z%7X"w  
$row['badper'] = trim(sprintf(“%4.2f”, $row['badper'])); }dG>_/3  
$digg = ‘操作区:<a href=”javascript:” onclick=”javascript:postDigg(\’good\’,’.$id.’)”>顶</a>(’.$row['goodpost'].’) <a href=”javascript:” onclick=”javascript:postDigg(\’bad\’,’.$id.’)”>踩</a>(’.$row['badpost'].’)’; v\Zq=,+  
} \7 }{\hY-  
AjaxHead(); 6?= ^8  
echo $digg; 49dN~k=  
exit(); }1P v6L(o)  
?>
只看该作者 安逸沙发  发表于: 2018-06-23
我们在仿站的过程中。经常会遇到需要调用多个指定的顶级栏目导航,那我们如何实现呢?本文来讲解一下指定导航栏显示的方法: v:.`~h/b  
QxUsdF?p  
{dede:channelartlist row='2' typeid='1,2这里输入多个指定的栏目ID' } [@K#BFA  
<li><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></li> U42B( ow  
{/dede:channelartlist}
快速回复

限100 字节
安逸网提示:如果您提交过一次失败了,可以用”恢复数据”来恢复帖子内容
 
认证码:
上一个 下一个