东方星雨

简单网络

一个爱好网络的80后男站长。

关注我东方星雨个人微信号:476847113

您现在的位置是:首页 > 站长日志

帝国CMS信息栏目页终极栏目文章列表排序方式设置,自定义排序方式

2020-10-31 站长 站长日志

帝国CMS终极栏目文章列表排序方式是在创建终极栏目的时候设置的,需要在管理栏目的栏目属性中的生成选项中设置。而对于一个知道的人,可能不会想到这一点。最先想到的可能是去“默认新闻列表模板”中找。而对于一个程序员来说,在“默认新闻列表模板”中找不到,就会从“刷新所有信息栏目页”开始跟踪了(别笑,我就是那个傻狍子),找了一圈,发现是可以设置的。


设置方法

栏目》管理栏目》修改栏目属性

image.png

然后选择“生成选项”,其中“列表式页面排序方式”就是可以自定义排序方式的地方,你可以从右侧提供的方式中选择,也可以自己输入。

image.png


跟踪方式

如果你对代码感兴趣,可以往下看一看。

想要跟踪,就是从“数据更新”》“刷新所有信息栏目页”这个入口开始,因为文章列表都是通过这里更新生成的。

image.png

拿到URL地址,也就找到了跟踪的入口文件

/e/admin/ecmschtml.php?
enews===ReListHtml_all
start===0
from===ReHtml%2FChangeData.php%3Fehash_TIU3E%3D9kCrj46qosCn7Pa1tVed
ehash_TIU3E===9kCrj46qosCn7Pa1tVed
rhash_fshGr===LkVRcTyzzU08
do===all

那么就去“/e/admin/ecmschtml.php”文件中找,根据第一个参数值查找“ReListHtml_all”,会找到“ReListHtml_all”这样一个函数,然后再去查找这个函数。

elseif($enews=="ReListHtml_all")//刷新所有列表
{
 $start=$_GET['start'];
 $do=$_GET['do'];
 $from=$_GET['from'];
 ReListHtml_all($start,$do,$from);
}

当前文件中找不到,就去包含引用的文件中去找,根据文件名,可以知道以下文件相关性应该最大。

require("../class/chtmlfun.php");

再往下,会找到“ListHtml”函数

//生成信息列表
function ListHtml($classid,$fields,$enews=0,$userlistr=""){

然后会找到查询语句,发现有关于排序的变量“$addorder”

$query="select ".ReturnSqlListF($mid)." from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$yhadd."classid='$classid'".$caddsql." order by ".ReturnSetTopSql('list').$addorder.$limit;

大概就是这样子吧,到这里可以判断排序选项是从栏目数据表里读的,说明后台栏目管理中是可以配置的。

文章评论