注册 登录 欢迎您到模板精:织梦模板_dede模板_免费网站模板_网站源码下载

织梦教程_免费织梦模板下载_dede模板

该栏目分享织梦建站的基础知识,从织梦CMS的安装,到织梦标签的常规调用,以及织梦的常见问题答疑都有涉及。

当前位置:首页 > 织梦教程 >

解决DedeCMS网站专题排序问题

免费网站模板 2014-10-03 09:12 织梦教程 评论

刚弄一个专题,添加内容发现内容标题不是按照添加的id排序的,也不是按照id顺序排列的。感觉像是随机的。这样不是我想要得效果,所以查询了百度半天,dedecms论坛半天发现没有解决的方法。所以我就开始研究php文件,我觉得肯定有sql查询文件。注意orderby 即可。可是文件再哪个地方呢?我找了半天。终于解决。现在将我的方法介绍给大家。

按照 标题的id 降序排列。 

这个效果需要修改2 个php文件。 

第一步骤: 
1. 修改 include\taglib\channel\specialtopic.lib.php 文件 

2. 在第52行 处 有这行代码: 

$ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), 'all', 'default', $keywords, $listTemplet, 0, $idlist,

修改成: 

$ctag->GetAtt('imgwidth'), $ctag->GetAtt('imgheight'), 'all', 'asc', $keywords, $listTemplet, 0, $idlist,


3. 保存文件结束 

第二步骤: 
1.修改include\taglib\arclist.lib.php 

2. 大约在196行处。有这行代码: (下边代码是修改完成的,注释部分为新添加)

//文档排序的方式 
$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 == 'asc') $ordersql = " order by arc.id asc"; 
/*** 添加结束 ***/
else $ordersql = " order by arc.sortrank $orderWay";

3. 修改结束 
好了。刷新文件看看吧(注意不是html,是动态页面。或者重新生成下专题html 看看效果吧)