帝国CMS列表属性筛选优化插件,支持伪静态与多模型复用
免费
限时优惠
一对一客服指导服务
不限制站点使用
永久使用更新无忧
持续迭代开发
首次可提供免费整站安装服务(需要提供服务器等信息)
插件介绍
为什么要做这个插件?
帝国cms官方其实提供了“帝国CMS-结合项列表属性筛选显示”插件。但是我使用下来感觉有些地方需要优化。
1、$fieldandval结合项数据是硬编码在程序中没有自动从模型结合项字段获取,维护非常麻烦。
2、会生成冗余的url地址影响SEO效果,如:age=1__10&myarea=东城区和myarea=东城区&age=1__10两个url 地址对应的数据是一样的。
3、只支持动态没有伪静态。
4、反复切换后一个字段会在url 地址中重复出现。
5、选择“不限”后url地址中实际还是会出现fieldName=
本插件基于帝国 CMS 原生结合项筛选函数深度重构优化,提供全自动动态内容筛选组件,无需手动硬编码筛选字段与选项,适配全站多内容模型,开箱即用。仅需在内容列表模板调用标签函数,系统自动读取模型后台配置、自定义字段名称、数据表真实数据生成筛选导航,完美解决原生筛选函数维护繁琐、多筛联动逻辑失效、多模型无法复用等痛点,兼顾开发效率与前端交互体验。
安装步骤
1、上传e/extend/filterDisplay
2、打开 /e/class/userfun.php 在文件顶部(放在<?php下一行添加)
require_once __DIR__ . '/../extend/filterDisplay/index.php';
3、修改模板,在要结合项属性筛选的地方加上如下代码:
4、CSS文件里定义相应的样式
5、更新相应页面
6、Apache伪静态配置示例
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^afb2/classid(\d+)(?:_mbfl(\d+))?(?:_zb(\d+))?(?:_jg(\d+))?(?:_page-(\d+))?\.html$ \
/e/action/ListInfo.php?classid=$1&mbfl=$2&zb=$3&jg=$4&page=$5&ph=1 [L,QSA]
7、url地址示例
.../afb2/classid1_mbfl1.html
.../afb2/classid1_mbfl1_zb1_jg1.html
8、CSS样式示例
.filter-row { padding: 14px 0; border-bottom: 1px solid #e5e7eb; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.filter-row:last-child { border-bottom: none; }
.field-label { font-size: 14px; font-weight: 500; color: #6b7280; min-width: 80px; }
.field-item, .field-item-active { display: inline-flex; align-items: center; padding: 6px 14px; font-size: 14px; text-decoration: none; border-radius: 4px; transition: background-color 0.15s ease, color 0.15s ease; cursor: pointer; line-height: 1.4; }
.field-item { color: #374151; background-color: transparent; }
.field-item:hover { background-color: #f3f4f6; color: #111827; }
.field-item-active { color: #2563eb; background-color: #eff6ff; font-weight: 500; }
.field-item-active:hover { background-color: #dbeafe; }
详细介绍
全自动动态渲染,零代码后台配置
- 自动识别当前页面内容模型,读取模型后台设置的「列表结合项字段」,无需手动填写筛选字段;
- 自动查询自定义字段表,同步后台设置的字段中文名称作为筛选标题,后台修改字段名前端实时更新;
- 自动读取内容数据表去重非空字段值生成筛选选项,内置「不限」按钮,数据库新增内容值筛选栏自动同步;
- 自动过滤无任何数据的筛选字段,页面不会出现空白无用筛选模块,页面布局更整洁。
修复原生核心缺陷,优化多筛选联动交互
- 独立字段参数分离逻辑:点击单个筛选项 / 不限时,仅清除当前字段筛选条件,其他已选筛选条件保留,符合用户常规筛选操作习惯;
- 摒弃原生注释占位替换 URL 的笨拙写法,参数直接拼接,代码逻辑清晰,无解析异常隐患;
- 完整透传页面全部原有 GET 参数(栏目 ID、分页、排序、时间筛选、专题、头条、推荐等),切换筛选不丢失页面原有状态。
全站通用,多模型自适应复用
- 自动兼容任意资讯、产品、下载等内容模型,一套函数适配全站所有列表页;
- 智能获取模型 ID:支持 URL 直接传 mid,无模型参数时自动通过当前栏目 ID 匹配对应模型;
- 无需复制多份函数区分不同模型,模板统一调用即可,降低模板冗余。
高度自定义样式,兼容原有使用习惯
- 保留完整自定义配置能力:可自定义筛选项普通 / 激活高亮 CSS 类名、字段外层 HTML 包裹结构、选项之间分隔符;
- 兼容帝国 CMS 高低版本,自动判断
ehtmlspecialchars函数做 XSS 转义,保障页面安全; - 渲染输出结构与原生函数一致,原有页面样式无需大幅修改即可无缝切换。
低维护、易拓展
- 后台调整结合项字段、修改字段名称、新增内容数据,前端筛选自动生效,无需修改 PHP 代码;
- 省去手动维护筛选选项数组工作,大幅减少二次开发与后期维护工作量;
- 数据库查询做优化,缓存字段中文名称,避免循环重复查表,降低数据库压力。
伪静态链接支持
- 支持伪静态 URL 模式,链接格式可以自定义,SEO 友好;
- 筛选参数严格按照模型「列表结合项字段」固定顺序拼接,确保 URL 规范统一,避免参数顺序混乱;
- 分页参数可选,无分页时 URL 自动省略页码部分;
- 配合 Apache/Nginx 伪静态规则即可启用,动态模式与伪静态模式一键切换。
帝国CMS插件
未找到合适的帝国 CMS 成品插件?
如有定制需求,或是想优化现有插件功能,欢迎随时联系沟通。
微信
QQ
15年开发经验
自己做过站长,深知站长痛点
独立开发
自己编码、测试、维护,不是二道贩子
持续迭代
根据用户真实反馈持续优化
代码透明
核心逻辑清晰,不加密、不混淆
售后保障
提供安装指导和技术支持,随时响应
联系方式
微信 / QQ 即时沟通