织梦dedecms使用weight排序无效怎么办?
本文实例讲述了织梦dedecms使用weight排序无效的解决方法。分享给大家供大家参考。具体方法如下:
推荐学习:织梦cms
dedecms5.7针对weight排序是有bug的,这里就来一步步告诉大家如何解决weight无效的解决办法。
涉及的文件是includetaglibarclist.lib.php文件,在第570行左右:
代码如下:
if ( $isweight=='y')
这一行代码简直是废柴,
代码如下:
$orderWeight = list_sort_by($orderWeight,'weight', 'asc');
对结果进行排序,这个是有问题的,因为在得到这个$orderWeight之前,检索文档表的语句为:
代码如下:
SELECT arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule, tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `dede_archives` arc LEFT JOIN `dede_arctype` tp ON arc.typeid=tp.id WHERE arc.typeid IN (29) AND arc.arcrank > -1 ORDER BY arc.sortrank DESC
很明显了吧,我们在写标签的时候,写的是:
代码如下:
{dede:arclist orderby='weight' typeid='29' isweight='y' limit='4,1' titlelen='100' infolen='100' }
本意是数据按照weight进行排序,而处理程序是按照sortrank 检索的数据库,指定 isweight='y' 仅仅是起到了将检索出的数据集再根据weight排序。
所以处理办法非常简单:在该程序文件330行处,增加一行按照weight排序的处理语句:
代码如下:
else if($orderby =='weight') $ordersql = " order by arc.weight asc";
我们再分离一个让list标签支持weight排序:
代码如下:
{dede:list pagesize='10' titlelen='50' orderby='weight'} ?[field:textlink/]<br/> {/dede:list}
解决方法:
1、打开文件arc.listview.class.php
2、查找
代码如下:
else if($orderby=="lastpost") {
语句,大概在609行,在此行前面按下回车健,插入如下语句:
代码如下:
else if($orderby=="weight") { $ordersql = " order by arc.weight $orderWay"; }
3、继续查找
代码如下
if(ereg('hot|click|lastpost',$orderby))
语句,修改为:
代码如下:
if(ereg('hot|click|weight|lastpost',$orderby))
修改完成后,保存,如果目标里面已经使用了weight排序,生成一下,就可以看到,文档列表已经安装weight排序
4、模板调用:
代码如下:
{dede:arclist row='10' titlelen='50' orderby='weight'} ?[field:textlink/]<br/> {/dede:arclist}
以上是织梦dedecms使用weight排序无效怎么办的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

WebStorm Mac版
好用的JavaScript开发工具