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

评论(0)