织梦 {dede:list}列表按多种排序显示
orderby='sortrank' 文档排序方式
orderby='hot' 或 orderby='click' 表示按点击数排列
orderby='sortrank' 或 orderby='pubdate' 按出版时间排列
orderby='near'
orderby=='lastpost' 按最后评论时间
orderby=='scores' 按得分排序
orderby='id' 按文章ID排序
orderby='rand' 随机获得指定条件的文档列表
orderby='scores' 按评论来排序 官方没有写的
倒序 orderway='asc'
orderway是设置排序的方式,值为desc和asc
dedecms列表页实现文档按权重weight排序(从小到大的顺序)方法:
1,在list_artcile.htm模板中使用
{dede:list pagesize='12′ orderby='weight' orderway='asc'}
2,然后修改include目录下的arc.listview.class.php
查找else if($orderby=="lastpost。。。
在下面补充
else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }
3,同样是这个文件,查找“if(ereg(‘hot|click|lastpost',$orderby))”改为:
if(ereg(‘hot|click|weight|lastpost',$orderby))
上面三个步骤,即可实现列表页内容按权重排序,越小越靠前。dedecms v5.7SP1 测试成功!
织梦dedecms list orderby=weight 按权重排序无效问题 ,找到list解析文件include/arc.listview.class.php
发现排序规则里面并没有按照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";
}
同时修改条件if(ereg('hot|click|lastpost',$orderby))为if(ereg('hot|click|lastpost|weight',$orderby)), [搜索 hot|click|lastpost 定位]
另外:
arclist 对weight的排序也不准确,需要加上一个isweight的属性
{dede:arclist typeid='32' pagesize='20' isweight='Y' orderby='weight' orderway='asc'} 。
发表评论 取消回复