list.var是帝国CMS列表模板的关键功能,用于自定义信息列表的显示样式。它通过“管理列表模板”添加或修改,需在“列表内容模板(list.var)”中编写代码并勾选“使用程序代码”才能调用PHP函数和系统变量。启用该模式后,可通过$r数组访问当前记录字段,如标题、缩略图、栏目ID等,并利用PHP逻辑处理数据,最终将拼接的HTML赋值给$listtemp变量输出。不启用时仅支持简单标签如[!---title--]展示。注意事项包括:必须定义$listtemp、进行安全过滤、避免频繁SQL查询以优化性能、可创建多个模板适配不同展示需求,且不影响分页逻辑。掌握list.var有助于灵活控制新闻、产品等列表呈现,关键在于理解$r数组机制和$listtemp返回规则。

在使用帝国CMS进行网站开发时,list.var 是列表模板中非常关键的一个功能标签,主要用于自定义信息列表的显示样式。它不是直接写在模板文件中的普通标签,而是在“管理列表模板”中通过添加或修改“列表内容模板(list.var)”来实现的。下面详细介绍它的使用方法和注意事项。
list.var 是什么?
list.var 实际上是帝国CMS中用于列表页数据循环展示的一个模板片段。每一条信息的显示都由 list.var 定义的格式输出。它通常配合“列表模板”中的 [!----] 标签使用,属于后台可管理的模板变量。
注意:list.var 模板必须设置为“使用程序代码”才能调用 PHP 函数或系统变量,否则只能使用简单的 HTML 和帝国标签。
如何添加 list.var 模板?
进入帝国后台操作步骤如下:
- 登录后台 → “模板” → “管理列表模板”
- 选择对应的数据表(如新闻系统数据表)→ 点击“增加模板”或编辑已有模板
- 在“列表内容模板(list.var)”文本框中编写你的HTML+帝国标签代码
- 勾选“使用程序代码”选项(如果需要使用 $r 数组或 PHP 函数)
- 保存后,在“修改数据表” → “系统模型”中将该 list.var 模板应用到对应的数据表
list.var 基本语法与变量说明
在 list.var 中,可以通过 $r 数组访问当前记录的所有字段值,例如:
示例(启用“使用程序代码”):$title = esub($r[title],30); // 截取标题前30个字符
$pic = $r[titlepic] ? $r[titlepic] : '/e/data/images/notimg.gif'; // 判断是否有缩略图
$classname = $empire->fetch1("SELECT classname FROM {$dbtbpre}enewsclass WHERE classid='$r[classid]'")[classname];
$listtemp = '
';
最后一定要把拼接好的 HTML 字符串赋值给 $listtemp 变量,系统会自动输出。
不使用程序代码的情况
如果不勾选“使用程序代码”,可以直接使用帝国内置的标签语法,比如:
[!---title--] [!---titlepic--] [!---newstime--] [!---smalltext--] [!---classurl--] [!---class.name--]
这类方式适合简单展示,不能做逻辑判断或函数处理。
常用技巧与注意事项
- 必须定义 $listtemp:启用程序代码时,最终结果必须赋值给 $listtemp,否则无法输出
- 安全过滤:建议对输出内容使用 esub()、stripSlashes() 等函数防止 XSS
- 性能优化:避免在 list.var 中频繁执行 SQL 查询,尽量使用缓存或预加载
- 支持多种样式:一个数据表可以创建多个 list.var 模板,用于不同页面展示(如图文模式、纯文字模式)
- 分页兼容性:list.var 不影响分页逻辑,分页由列表模板主框架控制
基本上就这些。掌握 list.var 的使用,能让你在帝国CMS中更灵活地控制信息列表的呈现方式,无论是做新闻列表、产品展示还是推荐位调用都非常实用。关键是理解“程序代码”模式下的 $r 数组机制和 $listtemp 的返回规则。不复杂但容易忽略细节。










