{dede:arclistrow='10'titlelen='50'orderby='weight'}•[field:textlink/]<br/>{/dede:arclist}
其中的orderby='weight'就实现了文档按照权重排序了。这是arclist标签,可以用在任何位置来调用文档列表.
然而,在栏目列表页,如果你要使用list标签(实现文档列表分页),也想用权重(weight)排序,
{dede:listpagesize='10'titlelen='50'orderby='weight'}•[field:textlink/]<br/>{/dede:list}
你会发现,你的列表并没有按照权重(weight)排序,无论你怎么修改,它的顺序就还是老样子!
原因:dedecms对权重weight排序的支持仅arclist标签,并不支持list标签
解决办法:
1、打开文件arc.listview.class.php
2、查找“elseif($orderby=="lastpost"){”语句,大概在609行,在此行前面按下回车健,插入如下语句:
elseif($orderby=="weight"){$ordersql="orderbyarc.weight$orderWay";}
3、继续查找“if(ereg('hot|click|lastpost',$orderby))”语句,修改为:
if(ereg('hot|click|weight|lastpost',$orderby))
修改完成后,保存,如果目标里面已经使用了weight排序,生成一下,就可以看到,文档列表已经安装weight排序
4、模板调用
{dede:arclistrow='10'titlelen='50'orderby='weight'}•[field:textlink/]<br/>{/dede:arclist}
-------------------------------------------------------华丽的分割线----------------------------------------------------------
后记:
权重越小越靠前
orderway="asc":
{dede:listpagesize='10'orderby='weight'orderway='asc'}•[field:textlink/]<br/>{/dede:list}
要实现越重越大越靠前,只需要将上述代码中的“orderway='asc'”去掉就可以了。
究其深层原因,是arc.listview.class.php文件中:
$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc')
默认排序方式是降序排列,而非升序,考虑其它常用排序,如puddate等,此处不要修改的好。
转自:http://hi.baidu.com/shanjixiaboss/item/6bb52107920acbd6dce5b06a