帝国CMS不为人知的技巧 – 终极栏目自定义排序项

20 34 条评论

一、概述

此文同属于《帝国CMS 会员信息加粗/加色/置顶》相关分享

如上图,默认的选择方式如绿色框圈出有5个选项,实际上是可以自定义新的排序方式,不限制在系统给定的5个,而是主表字段均可参与排序,例如:turetime(真实发布时间的UNIX时间戳),lastdotime(信息修改时间UNIX时间戳)所有主表字段包括自定义字段在内,同样可以多个排序参数一起用(truetime desc,lastdotime desc),实际情况我们我们先看代码;

二、探索

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

以下代码是e/class/functions.php中负责终极栏目查询的代码,有两个排序条件取得代码ReturnSetTopSql(‘list’)和$addorder;ReturnSetTopSql(‘list’)取得的是列表是否使用置顶排序,ReturnSetTopSql()定义在e/class/connect.php,相关设置在后台->系统设置->信息设置中;$addorder为以下代码判断获得的,大致意思是栏目设置中排序方式为空的话就默认用发布时间倒序排序,如果是不为空的话呢就使用栏目设置的排序;

//排序
if(empty($class_r[$classid][reorder]))
{
	$addorder="newstime desc";
}
else
{
	$addorder=$class_r[$classid][reorder];
}

三、总结

1.以会员信息置顶为例如果使用外置字段作为置顶字段,可以在栏目设置中添加排序选项,这样减少了修改系统文件
2.不同模型排序,复杂模型排序同样可以使用栏目设置的排序选项,方便;
3.不更改文件并且系统参数设置使用制定排序则置顶排序永远高于栏目设置的排序设置
4.必要的时候可以更改ReturnSetTopSql(‘list’)与$addorder前后顺序满足特殊排序需要(其他排序选项高于系统排序情况下)
5.最好的办法就是后台系统设置不设置置顶项参与排序,而在栏目设置中自己定义排序字段

四、相关文章推荐

帝国CMS模板不为人知的技巧2 – 对系统设置的重新赋值
帝国CMS模板不为人知的技巧 – 对语言包重新赋值应用

《帝国CMS 会员信息加粗/加色/置顶》 插件

20

一、帝国CMS 会员信息加粗/加色/置顶 展示

和以前做的有些不同,以前只做的是帝国CMS系统外置功能,就是不和系统的信息加色/加粗/置顶相关联的;以前《帝国CMS会员信息加色/置顶/加粗》地址:http://bbs.phome.net/showthread-13-115085-0.html;此版本客户要求按着系统内置的加粗/加色/置顶;于是出现新版本的截图如下:

二、帝国CMS 会员信息加粗/加色/置顶 相关分享

帝国CMS不为人知的技巧 – 自定义列表排序项

to_time() 帝国CMS日期时间转UNIX时间戳函数

02

to_time()

函数:to_time()
功能:将日期 / 日期时间 类型转为unix时间戳的函数
位置:帝国CMS e/class/connect.php
版本:6.5

to_time($datetime)

$datetime : 日期类型格式如:2012-12-12 日期时间如:2012-12-12 12:12:12
函数返回unix时间戳

EcmsToSendMail() 帝国CMS发送邮件函数

02

EcmsToSendMail()

函数:EcmsToSendMail()
功能:帝国CMS邮件发送函数
位置:帝国CMS SendEmail.inc.php
版本:6.5

EcmsToSendMail($email,$subject,$content);

$emai : 邮件地址可为数组
$subject : 邮件标题
$content : 邮件内容

说明

函数遵循后台配置,后台配置使用什么方法发送邮件,函数将会使用什么方法发送邮件;
1.mail函数这个方法必须配置服务器邮件环境,环境不受待见得话会出来就是个垃圾邮件~
2.smtp这个方法不用配置服务器,使用163等邮箱smtp即可 就是老屏蔽