帝国CMS信息栏目页终极栏目文章列表排序方式设置,自定义排序方式
2020-10-31 站长 站长日志
帝国CMS终极栏目文章列表排序方式是在创建终极栏目的时候设置的,需要在管理栏目的栏目属性中的生成选项中设置。而对于一个知道的人,可能不会想到这一点。最先想到的可能是去“默认新闻列表模板”中找。而对于一个程序员来说,在“默认新闻列表模板”中找不到,就会从“刷新所有信息栏目页”开始跟踪了(别笑,我就是那个傻狍子),找了一圈,发现是可以设置的。
设置方法
栏目》管理栏目》修改栏目属性
然后选择“生成选项”,其中“列表式页面排序方式”就是可以自定义排序方式的地方,你可以从右侧提供的方式中选择,也可以自己输入。
跟踪方式
如果你对代码感兴趣,可以往下看一看。
想要跟踪,就是从“数据更新”》“刷新所有信息栏目页”这个入口开始,因为文章列表都是通过这里更新生成的。
拿到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;
大概就是这样子吧,到这里可以判断排序选项是从栏目数据表里读的,说明后台栏目管理中是可以配置的。