自定义列表是帝国CMS通过SQL查询生成静态页面的功能,用于按条件调用数据并分页展示。首先填写列表名称、绑定模型和所属栏目;接着设置包含COUNT统计与数据查询的SQL语句,如按时间或点击量筛选新闻;然后选择列表模板,使用灵动标签输出内容;再配置分页模式、每页记录数及文件存放路径;最后提交并进入数据更新中心刷新自定义列表以生成页面。该功能适用于排行榜、专题页等场景,关键在于正确编写SQL语句和匹配模板,确保语法无误并定期维护权限与更新。

帝国CMS的自定义列表功能,主要用于灵活调用和展示特定条件下的信息内容,比如按栏目、时间、字段等筛选数据,并支持分页显示。这个功能特别适合制作排行榜、专题页面、数据汇总页等场景。
一、什么是自定义列表?
自定义列表是帝国CMS提供的一种通过SQL语句查询数据并生成静态页面的功能。你可以自定义查询条件、显示模板和分页规则,实现高度个性化的信息展示。
二、创建自定义列表步骤
进入后台管理界面,按照以下流程操作:
- 登录后台 → “其他” → “自定义列表” → “管理自定义列表” → “增加自定义列表”
- 列表名称:如“最新文章排行”、“热门下载列表”等,便于识别
- 绑定系统模型:选择对应的数据模型(如新闻系统数据表)
- 所属栏目:可选一个父栏目作为该列表的归属位置
这是核心部分。格式如下:
功能列表:底层程序与前台页面分离的效果,对页面的修改无需改动任何程序代码。完善的标签系统,支持自定义标签,公用标签,快捷标签,动态标签,静态标签等等,支持标签内的vbs语法,原则上运用这些标签可以制作出任何想要的页面效果。兼容原来的栏目系统,可以很方便的插入一个栏目或者一个栏目组到页面的任何位置。底层模版解析程序具有非常高的效率,稳定性和容错性,即使模版中有错误的标签也不会影响页面的显示。所有的标
SELECT COUNT(*) as total FROM [!db.pre!]ecms_news WHERE classid IN (2,3,4) UNION SELECT title, titleurl, newstime FROM [!db.pre!]ecms_news WHERE classid IN (2,3,4) ORDER BY newstime DESC
- 前半部分用于统计总记录数(必须有 COUNT)
- 后半部分为实际显示的数据查询(含标题、链接、时间等字段)
- [!db.pre!] 是数据库表前缀的系统变量,会自动替换
- 从已有“列表模板”中选择一个,或先去“模板管理”中新建一个
- 模板内可用灵动标签 {sql} 或直接使用字段变量如 =$title?> 来输出内容
- 分页模式:一般选“静态分页”
- 每页记录数:如设为10,则每页显示10条数据
- 列表文件存放目录:如 /list/1/,建议单独规划路径
- 是否生成首页、是否生成列表页等根据需要勾选
- 设置好后点击“提交”保存
三、常见应用场景示例
示例1:调用最近7天发布的新闻SELECT COUNT(*) as total FROM [!db.pre!]ecms_news WHERE newstime > UNIX_TIMESTAMP()-7*24*3600 UNION SELECT title, titleurl, newstime FROM [!db.pre!]ecms_news WHERE newstime > UNIX_TIMESTAMP()-7*24*3600 ORDER BY onclick DESC示例2:按点击量排序的热门文章
SELECT COUNT(*) as total FROM [!db.pre!]ecms_news WHERE classid=5 UNION SELECT title, titleurl, onclick FROM [!db.pre!]ecms_news WHERE classid=5 ORDER BY onclick DESC LIMIT 100
四、更新与生成页面
添加完成后,需手动更新才能生成HTML页面:
- 进入“数据更新中心”
- 依次执行“刷新自定义列表”和“刷新所有自定义列表”
- 查看前端页面是否正常显示
基本上就这些。关键在于写对SQL语句和选好模板。只要逻辑清晰,就能实现各种复杂的数据展示需求。注意定期检查SQL语法和权限问题,避免生成失败。









