elseif($orderby=="lastpost"){
$ordersql" />

"景先生毕设|www.jxszl.com

织梦5.6和5.7版本中实现dedelist按权重排序

2022-10-29 16:26编辑: www.jxszl.com景先生毕设
I..织梦dedecmsvV.VI列表页标签{dede:list}增加按权重排序标签
dedecmsvV.VI版本已经中已经添加权重字段,并且在{dede:arclist}标签中默认可以使用.但在列表页的标签{dede:list}中是还是无法按权重实现排序.其实解决方法很简单,下面给出方法:

 更多精彩就在: 51免费论文网|www.jxszl.com 

I..打开include目录中的arc.listview.class.php文件,搜索排序方式",然后在
elseif($orderby=="lastpost"){
$ordersql="orderbyarc.lastpost$orderWay";
}

elseif($orderby=="weight"){
$ordersql="orderbyarc.weightasc";
}

else{
$ordersql="orderbyarc.sortrank$orderWay";
}
这段代码中间添加以上红色代码.
IV.向下找到if(ereg(hot|click|lastpost,$orderby))或者是if(preg_match(/hot|click|lastpost/,$orderby))修改成if(ereg(hot|click|lastpost|weight,$orderby))或者是if(preg_match(/hot|click|lastpost|weight/,$orderby)),保存文件.
这个时候在列表页里就可以使用{dede:listpagesize=Vorderby=weight}进行排序了.
II.DEDEV.VII首页[arclist]增加按权重排序
I..在织梦系统中找到以下目录include aglib中的arclist.lib.php文件并打开
大约在VIIIV.VIIV行找到:
//arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y"
$isweight=$ctag->GetAtt(isweight);
把这行修改为:
$weight=$ctag->GetAtt(weight);
大约在IIIIIVII行找到
//文档排序的方式
$ordersql=;
if($orderby==hot||$orderby==click)$ordersql="ORDERBYarc.click$orderWay";
elseif($orderby==sortrank||$orderby==pubdate)$ordersql="ORDERBYarc.sortrank$orderWay";
elseif($orderby==id)$ordersql="ORDERBYarc.id$orderWay";
elseif($orderby==near)$ordersql="ORDERBYABS(arc.id-".$arcid.")";
elseif($orderby==lastpost)$ordersql="ORDERBYarc.lastpost$orderWay";
elseif($orderby==scores)$ordersql="ORDERBYarc.scores$orderWay";
elseif($orderby==rand)$ordersql="ORDERBYrand()";
else$ordersql="ORDERBYarc.sortrank$orderWay";
修改为:
//文档排序的方式
$ordersql=;
if($orderby==hot||$orderby==click)$ordersql="ORDERBYarc.click$orderWay";
elseif($orderby==sortrank||$orderby==pubdate)$ordersql="ORDERBYarc.sortrank$orderWay";
elseif($orderby==id)$ordersql="ORDERBYarc.id$orderWay";
elseif($orderby==near)$ordersql="ORDERBYABS(arc.id-".$arcid.")";
elseif($orderby==lastpost)$ordersql="ORDERBYarc.lastpost$orderWay";
elseif($orderby==scores)$ordersql="ORDERBYarc.scores$orderWay";
elseif($orderby==rand)$ordersql="ORDERBYrand()";
elseif($orderby==weight)$ordersql="orderbyarc.weightasc";//如果没有特定设置排序则按照权重先排序
else$ordersql="ORDERBYarc.sortrank$orderWay";
OK现在把这个文档保存了我们就可以在首页使用orderby=weight进行排序了.


原文链接:http://www.jxszl.com/biancheng/dedecms/74798.html