织梦DedeCMS优化文章模版里的“顶一下”与“踩一下”样式

测试的版本5.7.1UTF-8

一、插入<head>Js代码

将下面代码插入到文章模版里的<head>标签里

html 复制代码
<script language="javascript" type="text/javascript" src="{dede:global.cfg_cmsurl/}/include/dedeajax2.js"></script>
<script language="javascript" type="text/javascript">
<!--
function CheckLogin(){
	  var taget_obj = document.getElementById('_ajax_feedback');
	  myajax = new DedeAjax(taget_obj,false,false,'','','');
	  myajax.SendGet2("{dede:global.cfg_cmsurl/}/member/ajax_feedback.php");
	  DedeXHTTP = null;
}
function postBadGood(ftype,fid)
{
	var taget_obj = document.getElementById(ftype+fid);
	var saveid = GetCookie('badgoodid');
	if(saveid != null)
	{
		var saveids = saveid.split(',');
		var hasid = false;
		saveid = '';
		j = 1;
		for(i=saveids.length-1;i>=0;i--)
		{
			if(saveids[i]==fid && hasid) continue;
			else {
				if(saveids[i]==fid && !hasid) hasid = true;
				saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);
				j++;
				if(j==10 && hasid) break;
				if(j==9 && !hasid) break;
			}
		}
		if(hasid) { alert('您刚才已表决过了喔!'); return false;}
		else saveid += ','+fid;
		SetCookie('badgoodid',saveid,1);
	}
	else
	{
		SetCookie('badgoodid',fid,1);
	}
	myajax = new DedeAjax(taget_obj,false,false,'','','');
	myajax.SendGet2("{dede:field name='phpurl'/}/feedback.php?aid="+fid+"&action="+ftype+"&fid="+fid);
}
function postDigg(ftype,aid)
{
	var taget_obj = document.getElementById('newdigg');
	var saveid = GetCookie('diggid');
	if(saveid != null)
	{
		var saveids = saveid.split(',');
		var hasid = false;
		saveid = '';
		j = 1;
		for(i=saveids.length-1;i>=0;i--)
		{
			if(saveids[i]==aid && hasid) continue;
			else {
				if(saveids[i]==aid && !hasid) hasid = true;
				saveid += (saveid=='' ? saveids[i] : ','+saveids[i]);
				j++;
				if(j==20 && hasid) break;
				if(j==19 && !hasid) break;
			}
		}
		if(hasid) { alert("您已经顶过该帖,请不要重复顶帖 !"); return; }
		else saveid += ','+aid;
		SetCookie('diggid',saveid,1);
	}
	else
	{
		SetCookie('diggid',aid,1);
	}
	myajax = new DedeAjax(taget_obj,false,false,'','','');
	var url = "{dede:global.cfg_phpurl/}/digg_ajax.php?action="+ftype+"&id="+aid;
	myajax.SendGet2(url);
}
function getDigg(aid)
{
	var taget_obj = document.getElementById('newdigg');
	myajax = new DedeAjax(taget_obj,false,false,'','','');
	myajax.SendGet2("{dede:global.cfg_phpurl/}/digg_ajax.php?id="+aid);
	DedeXHTTP = null;
}
-->
</script>

二、插入<body>html+Js代码

1、下面代码插入到模版页里的<body>里

html 复制代码
<div class="自定义样式" id="newdigg"></div>
<script language="javascript" type="text/javascript">getDigg({dede:field.id/});</script>

2、div标签说明

<div class="自定义样式" id="newdigg"></div>,这里重点是【id="newdigg"】这个ID,至于div标签和class样式都是你自己随意定义即可;

官方模版页(article_article.htm)这里给的div里一堆代码都没用,因为会被Js重新生成;

<!-- //顶踩 -->

<div class="newdigg" id="newdigg"> ............</div>

<!-- //顶踩部分的源码结束 -->

三、修改【/plus/digg_ajax.php】代码

1、找到【/plus/digg_ajax.php】文件的95行左右

2、如果你还是用官方的样式,只是修改一下文字,那就是把"顶一下"与"踩一下"的文字修改成你的文字即可;

3、如果你需要修改成你自己的样式结构,这里分析一下,那些代码是必须要保留的,其他都可以换成你自己的标签和样式;

**修改一:**如果你只要【顶一下】不需要【踩一下】

a、首先删除96行(这个行数是以上面图片为准,你自己是多少行,请自行对照代码即可)

row\['badper'\] = trim(sprintf("%4.2f", row['badper']));

b、再删除105~112行;(切记:在112行【</div>';】)后面的【';】结束符不能删除,一定要保留

c、这样就只保留了【顶一下】

**修改二:**再精简一下代码(这里只保留必须的代码)将97~112行代码最精简化

html 复制代码
$digg = '
<div onclick="postDigg(\'good\','.$id.')">顶一下('.$row['goodpost'].')</div>
<div onclick="postDigg(\'bad\','.$id.')">踩一下('.$row['badpost'].')</div>
';

a、【οnclick="postDigg(\'good\','.$id.')"】这个是点击触发事件代码必须保留;

b、【'.$row['goodpost'].'】这个是显示"顶一下"的数量;

c、以上是最精简代码,至于百分比显示条和百分比数值('.$row['badper'].')这个函数,可根据你自己需求调用即可;

d、div标签你也可以换成你自己的标签,也可以插入class=""样式;

相关推荐
玖疯子3 个月前
如何按照详细的步骤进行DedeCMS的安装过程?
android·dedecms·织梦cms