织梦dedecms商业教程 dede5.6和5.7版本中实现dede:list按权重排序

织梦dedecms商业教程 dede5.6和5.7版本中实现dede:list按权重排序

学习教程tuzi2018-11-01 22:07:50A+A-

一、dedecms v5.6列表页标签{dede:list}增加按权重排序标签

dedecms v5.6版本已经中已经添加权重字段,并且在{dede:arclist}标签中默认可以使用。但在列表页的标签 {dede:list}中是还是无法按权重实现排序。其实解决方法很简单,下面给出方法:

1、打开\include\目录中的arc.listview.class.php文件,搜索“排序方式”,然后在

else if($orderby=="lastpost") {

$ordersql = " order by arc.lastpost $orderWay";

}


else if($orderby == "weight") {

$ordersql = " order by arc.weight asc";

}


else {

$ordersql=" order by arc.sortrank $orderWay";

}

这段代码中间添加以上红色代码。

4、向下找到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:list pagesize='5' orderby='weight'} 进行排序了。

二、DEDE 5.7 首页【arclist】增加按权重排序

1、在织梦系统中找到以下目录\include\taglib中的arclist.lib.php文件并打开

大约在74 、75行找到:

// arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y"

$isweight = $ctag->GetAtt('isweight');

把这行修改为:

$weight = $ctag->GetAtt('weight');

大约在327行找到

//文档排序的方式

$ordersql = '';

if($orderby=='hot' || $orderby=='click') $ordersql = " ORDER BY arc.click $orderWay";

else if($orderby == 'sortrank' || $orderby=='pubdate') $ordersql = " ORDER BY arc.sortrank $orderWay";

else if($orderby == 'id') $ordersql = " ORDER BY arc.id $orderWay";

else if($orderby == 'near') $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";

else if($orderby == 'lastpost') $ordersql = " ORDER BY arc.lastpost $orderWay";

else if($orderby == 'scores') $ordersql = " ORDER BY arc.scores $orderWay";

else if($orderby == 'rand') $ordersql = " ORDER BY rand()";

else $ordersql = " ORDER BY arc.sortrank $orderWay";

修改为:

//文档排序的方式

$ordersql = '';

if($orderby=='hot' || $orderby=='click') $ordersql = " ORDER BY arc.click $orderWay";

else if($orderby == 'sortrank' || $orderby=='pubdate') $ordersql = " ORDER BY arc.sortrank $orderWay";

else if($orderby == 'id') $ordersql = " ORDER BY arc.id $orderWay";

else if($orderby == 'near') $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";

else if($orderby == 'lastpost') $ordersql = " ORDER BY arc.lastpost $orderWay";

else if($orderby == 'scores') $ordersql = " ORDER BY arc.scores $orderWay";

else if($orderby == 'rand') $ordersql = " ORDER BY rand()";

else if($orderby == 'weight') $ordersql = " order by arc.weight asc";//如果没有特定设置排序则按照权重先排序

else $ordersql = " ORDER BY arc.sortrank $orderWay";

OK 现在把这个文档保存了 我们就可以在首页使用 orderby='weight' 进行排序了。


点击这里复制本文地址

声明

本站发布所有广告信息、下载资源,均来自互联网,非本站自制,与本站无关。 如有侵犯您的合法权益请来信告之。我们会在三个工作日内予以清除。


本站中所有资料、资源文件均来自于网络搜索,仅作为技术学习研究之用,请必须在24小时内删除所下载文件,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。


本站保证站内提供的所有可下载资源(软件等等)都是按“原样”提供,本站未做过任何改动;但本网站不保证本站提供的下载资源的准确性、安全性和完整性;同时本网站也不承担用户因使用这些下载资源对自己和他人造成任何形式的损失或伤害。 


访问本站的用户必须明白,[资源爱好者]对提供下载的软件等不拥有任何权利,其版权归该下载资源的合法拥有者所有。


本站所有资源均不提供相关技术服务,如果源码下载地址失效则请联系站长进行补发。


本站所有资源展现图片仅供参考

资源爱好者 © 本站发布所有资源,均来自互联网,非本站自制,分享目的仅供大家学习与参考,与本站无关。
如有侵犯您的合法权益请来信告之。我们会在三个工作日内予以清除。邮箱:admin?aihao.org
关于我们|广告合作|网站地图|冀ICP备14009590号|冀公网安备 13018302000072号