帝国CMS灵动标签[e:loop]通过灵活参数实现数据自定义循环输出,常用于调用指定栏目文章、推荐内容等,支持SQL语句直接查询,结合$bqr等变量可展示标题、时间、简介等信息,并能通过php函数控制格式与显示逻辑。

帝国CMS的灵动标签[e:loop]是模板中非常灵活且强大的调用工具,常用于首页、列表页、内容页等位置实现数据的自定义循环输出。它不依赖栏目结构,可以直接通过SQL语句或简写参数调取任意模型的数据,适合做新闻列表、推荐文章、热门评论等内容展示。
基本语法格式
[e:loop={“参数1,参数2,参数3,参数4”}]
其中四个参数分别代表:
- 参数1:数据源(可以是SQL语句,也可以是“表名,限制条数,操作类型,排序字段”这样的简写形式)
- 参数2:显示条数
- 参数3:操作类型(0为普通,24为附加表模式)
- 参数4:是否显示已过期信息(0为不显示,1为显示)
结束标签为:[/e:loop]
常见使用方式
以下是几种常用的写法示例:
1. 调用指定栏目的最新文章
[e:loop={‘news’,10,1,0}]
标题:=$bqr[‘title’]?>
时间:=date(‘Y-m-d’,$bqr[‘newstime’])?>
[/e:loop]
说明:从“news”表中调取10条数据,1表示带标题图的操作类型,0表示不显示过期信息。
2. 使用SQL语句调用多表联合数据
[e:loop={“SELECT * FROM phome_ecms_news WHERE classid IN (1,2,3) ORDER BY newstime DESC LIMIT 10”,10,24,0}]
=$bqr[‘title’]?>
[/e:loop]
说明:使用自定义SQL语句可以跨栏目、加条件、排序更灵活。注意表前缀根据实际情况调整(如phome_可能为你的前缀)。
3. 调用当前栏目下的子栏目文章
[e:loop={“select * from [!db.pre!]ecms_news where classid in ($class_r[$GLOBALS[‘navclassid’]][‘sonclass’]) order by newstime desc limit 10”,8,24,0}]
[/e:loop]
说明:利用$class_r获取当前栏目ID的子栏目集合,动态调用子栏目内容。
常用变量说明
在[e:loop]内部可使用的几个关键变量:
- $bqr:当前记录数组,如$bqr[‘title’]表示标题
- $bqsr:包含标题链接、栏目链接等URL信息,如$bqsr[‘titleurl’]
- $bqno:当前循环序号,从1开始计数,可用于添加class或编号显示
例如加入序号样式:
注意事项与技巧
使用灵动标签时需注意以下几点:
- 后台必须开启“模板支持程序代码”功能(系统 → 系统参数设置 → 模板 → 支持模板PHP代码)
- 若使用PHP函数(如date、substr),确保语法正确并闭合标签
- SQL语句中的表名建议使用[!db.pre!]代替实际前缀,增强兼容性,如[!db.pre!]ecms_news
- 避免在循环内执行数据库查询等耗性能操作
- 静态页面生成时,灵动标签内容也会被缓存,修改后记得更新相关页面
基本上就这些。掌握[e:loop]的核心在于理解参数含义和熟悉$bqr、$bqsr等内置变量的用法。只要会写简单的SQL或了解栏目结构,就能灵活调用各类内容。不复杂但容易忽略细节,比如前缀问题或权限设置,调试时建议先在测试模板中运行。










