[showclasstemp] vs [listshowclass] 帝国CMS标签区别
概览对比
| 对比项 | [showclasstemp] |
[listshowclass] |
|---|---|---|
| 后端函数 | sys_ShowClassByTemp() |
sys_ForShowSonClass() |
| 渲染方式 | 函数内直接拼接模板 | 调用 sys_GetShowClassMore() 逐条渲染 |
| SQL 查询 | 固定 bclassid='$classid' |
支持 classid in (...) 或 bclassid='$classid' |
| 多栏目 ID | ❌ 不支持 | ✅ 支持逗号分隔多个 ID |
| 父级变量 | 3 个 | 7 个 |
| 子级变量 | 6 个 | 6 个 |
1. 多栏目固定调用
listshowclass 的父栏目 ID 支持逗号分隔传入多个值,例如:
[listshowclass]1,3,5,模板ID,是否显示信息数,显示栏目数[/listshowclass]
可以从多个不相关的栏目同时取子栏目。而 showclasstemp 只能传单个父栏目 ID。
// sys_ForShowSonClass 中的多栏目处理
if(strstr($classid,","))
{
$where='classid in ('.$classid.')';
}
else
{
$where="bclassid='$classid'";
}
2. 父级变量差异
listshowclass 的 sys_GetShowClassMore() 比 showclasstemp 多替换了 4 个父栏目变量:
| 变量 | 说明 | showclasstemp |
listshowclass |
|---|---|---|---|
[!--bclassname--] |
父栏目名称 | ✅ | ✅ |
[!--bclassurl--] |
父栏目链接 | ✅ | ✅ |
[!--bclassid--] |
父栏目 ID | ✅ | ✅ |
[!--bclassimg--] |
父栏目图片 | ❌ | ✅ |
[!--bintro--] |
父栏目简介 | ❌ | ✅ |
[!--bnum--] |
父栏目信息数 | ❌ | ✅ |
[!--bno--] |
父栏目序号 | ❌ | ✅ |
showclasstemp 父级变量替换逻辑
// sys_ShowClassByTemp 仅替换 3 个父级变量
$listtemp=str_replace("[!--bclassname--]",$bclassname,$listtemp);
$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
$listtemp=str_replace("[!--bclassid--]",$classid,$listtemp);
listshowclass 父级变量替换逻辑
// sys_GetShowClassMore 额外替换 4 个父级变量
$listtemp=str_replace("[!--bclassname--]",$bcr['classname'],$listtemp);
$listtemp=str_replace("[!--bclassurl--]",$bclassurl,$listtemp);
$listtemp=str_replace("[!--bclassid--]",$bclassid,$listtemp);
$listtemp=str_replace("[!--bclassimg--]",$bclassimg,$listtemp); // +
$listtemp=str_replace("[!--bintro--]",nl2br($bcr['intro']),$listtemp); // +
$listtemp=str_replace("[!--bno--]",$bno,$listtemp); // +
$listtemp=str_replace("[!--bnum--]",$bnum,$listtemp); // +
3. 子栏目列表变量(两者相同)
| 变量 | 说明 |
|---|---|
[!--classurl--] |
子栏目链接 |
[!--classname--] |
子栏目名称 |
[!--classid--] |
子栏目 ID |
[!--classimg--] |
子栏目图片 |
[!--intro--] |
子栏目简介 |
[!--num--] |
子栏目信息数 |
[!--no--] |
子栏目序号 |
4. 标签语法(完全相同)
[showclasstemp]父栏目ID,标签模板ID,是否显示栏目信息数,显示栏目数[/showclasstemp]
[listshowclass]父栏目ID,标签模板ID,是否显示栏目信息数,显示栏目数[/listshowclass]
参数说明:
| 参数 | 说明 |
|---|---|
| 父栏目 ID | 0 = 所有一级栏目, selfinfo = 当前栏目下级, 多个 ID 用逗号分隔(仅 listshowclass) |
| 标签模板 ID | 后台标签模板 ID |
| 是否显示栏目信息数 | 0 = 不显示, 1 = 显示 |
| 显示栏目数 | 0 = 不限制 |
5. 选用建议
| 场景 | 推荐标签 |
|---|---|
| 显示单个栏目的子栏目(简单导航) | showclasstemp 够用 |
| 需要同时调用多个栏目的子栏目(组合导航) | listshowclass |
| 需要在父级展示图片、简介等信息 | listshowclass |
| 只需要栏目名称和链接 | 两者均可 |
结论
listshowclass 是增强版,功能上完全覆盖 showclasstemp:
- ✅ 多栏目 ID 支持
- ✅ 更丰富的父栏目变量
- ✅ 同一套子栏目变量
简单的单栏目导航两者无差别;需要多栏目组合或展示父栏目更多信息时,优先使用 listshowclass。
帝国CMS教程
[showclasstemp] vs [listshowclass] 帝国CMS标签区别
本文详细对比帝国CMS两个栏目调用标签showclasstemp与listshowclass的差异。listshowclass是增强版,支持以逗号分隔传入多个父栏目ID,并提供更丰富的父级变量(如图片、简介、信息数、序号),而showclasstemp仅支持单栏目和三个基本父级变量,两者子栏目变量与标签语法相同。简单的单栏目导航二者均可,需要多栏目组合或展示父级更多信息时,优先选用listshowclass。
帝国CMS 8.0搜索结果页修复:支持灵动标签与标题高亮
帝国CMS 8.0默认搜索结果列表页不支持SQL查询、灵动标签等调用,通过修改e/search/result/index.php,引入函数文件并调整查询,即可正常使用各类标签,同时实现搜索关键词在标题中的红色高亮。本文提供完整可用代码。
帝国CMS图片水印不支持webp格式解决办法
本文为一组PHP图像处理函数,主要实现图片缩放与加水印功能。ResizeImage函数可按指定宽高及比例对图片进行裁剪或缩放,支持jpg、png、gif、webp等格式。imageWaterMark函数可为背景图添加图片或文字水印,支持九种位置定位和透明度控制,兼容多种图片格式。
亲测可用帝国CMS完美无报错Sitemap
一、个人实测踩坑总结最近给帝国CMS站点配置网站地图,踩了一大堆坑,要么报PHP version语法错误,要么XML格式不
帝国CMS图片裁剪Cannot read properties of null (ReloadChangeFilePage)
最近搭建、维护帝国CMS站点的朋友,基本都会遇到一个兼容性bug:新版Chrome/Edge浏览器后台图片裁剪、选择已上
帝国CMS插件
未找到合适的帝国 CMS 成品插件?
如有定制需求,或是想优化现有插件功能,欢迎随时联系沟通。
微信
QQ
15年开发经验
自己做过站长,深知站长痛点
独立开发
自己编码、测试、维护,不是二道贩子
持续迭代
根据用户真实反馈持续优化
代码透明
核心逻辑清晰,不加密、不混淆
售后保障
提供安装指导和技术支持,随时响应
联系方式
微信 / QQ 即时沟通