DedeCMS让栏目列表页{dede:list}标签支持weight权重排序

原创 2018-03-21 20:48 
摘要:

在织梦栏目列表页面中,是使用{dede:list}标签调用栏目下的文章的,如果想让文章以权重进行排序,需要修改织梦的程序文件才能做到

在织梦栏目列表页面中,是使用{dede:list}标签调用栏目下的文章的,如果想让文章以权重进行排序,需要修改织梦的程序文件才能做到。

1、找到"根目录\include\arc.listview.class.php"文件。

2、查找到代码(在700多行的位置):

//排序方式
$ordersql = '';
if($orderby=="senddate" || $orderby=="id") {
$ordersql=" ORDER BY arc.id $orderWay";
}
else if($orderby=="hot" || $orderby=="click") {
$ordersql = " ORDER BY arc.click $orderWay";
}
else if($orderby=="lastpost") {
$ordersql = " ORDER BY arc.lastpost $orderWay";
}
else {
$ordersql=" ORDER BY arc.sortrank $orderWay";
}

修改代码,添加按weight排序判断代码(红色部分为新添加代码)。
//排序方式
$ordersql = '';
if($orderby=="senddate" || $orderby=="id") {
$ordersql=" ORDER BY arc.id $orderWay";
}
else if($orderby=="hot" || $orderby=="click") {
$ordersql = " ORDER BY arc.click $orderWay";
}
else if($orderby=="lastpost") {
$ordersql = " ORDER BY arc.lastpost $orderWay";
}
else if($orderby=="weight") {
$ordersql = " ORDER BY arc.weight $orderWay";
}
else {
$ordersql=" ORDER BY arc.sortrank $orderWay";
}
3、找到代码

//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
if(preg_match('/hot|click|lastpost/', $orderby))

修改代码,添加weight条件:
//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
if(preg_match('/hot|click|lastpost|weight/', $orderby))
红色部分为新添加内容。
4、上传文件,并修改模板文件中的标签调用:
{dede:list orderby='weight' orderway='asc'}
这样{dede:list}标签就支持了按权重排序的调用,并且动静态状态下测试均成功!

本文作者:张语
版权声明:欢迎分享本文,转载请保留作者及文章链接!欢迎大家一起学习讨论!

发表评论


表情