我们有时候可能需要采用权重进行排序,但是dede后台默认文章列表页面是没有相关权重设置及显示的。所以我们需要通过一些修改,才能够在织梦后台添加与权重相关的内容,方法如下:
/* 织梦 后台列表显示修改权重 */
1. 分别在 /dede/templets/content_i_list.htm 和 /dede/templets/content_list.htm 文件的 70-80 行之间添加
<td width="3%" align="center"><input type='text' name="weight" value="{dede:field.weight/}" onblur="arcWeight({dede:field.id/},this.value)" style='width:80px;' /></td>
说明:如果你的dede文件夹名称有修改,那么需求进入相应的文件夹,下同。
2. 在 /dede/js/list.js 中加入
function arcWeight(aid,val){
if(val === "" || val ==null){
return;
}else if(!isNaN(val)){
//window.open("archives_do.php?aid="+aid+"&dopost=arcWeight&val="+val);
var xhr = new XMLHttpRequest();
xhr.open("get","archives_do.php?aid="+aid+"&dopost=arcWeight&val="+val);
xhr.send();
}else{
return;
}
}
3. 在 /dede/content_list.php 中找到 大概在208行
$query = "SELECT arc.id,arc.typeid,arc.senddate,arc.flag,arc.ismake,
arc.channel,arc.arcrank,arc.click,arc.title,arc.color,arc.litpic,arc.pubdate,arc.mid
FROM `$maintable` arc
$whereSql
ORDER BY $orderbyField DESC";
替换为
$query = "SELECT arc.id,arc.typeid,arc.senddate,arc.flag,arc.ismake,
arc.channel,arc.arcrank,arc.click,arc.title,arc.color,arc.litpic,arc.pubdate,arc.mid,arc.weight
FROM `$maintable` arc
$whereSql
ORDER BY $orderbyField DESC";
4. 在 /dede/archives_do.php 中 添加
if($dopost=='arcWeight'){
$dsql->ExecuteNoneQuery("UPDATE `dede_archives` SET weight='$val' WHERE id='$aid' ");
exit();
}
dede后台文章列表页权重显示的效果
至此,就可以在dede后台文章列表页,查看到我们新增的权重了。默认所有的权重设置都为0 ,如果想要将相应的文章权重进行调整,可以直接在输入框中输入相应的数字即可。按权重调用的代码为:{dede:arclist row='8' titlelen='60' order="weight" typeid='2,5' channelid='1'} 小技巧:注意代码中有相应的栏目ID,我们可以借用栏目ID,将不同权重的文章分别进行调用,这样可以扩大我们在前端调用显示文章的方式,对于不同页面给予不同的文章显示具有很好的效果。