插件说明
之前有群友咨询pbootcms系统能否添加多各副栏目?趁着过年,给整了一套PbootCMS副栏目多选解决方案。
PbootCMS副栏目多选插件同时支持Mysql和Sqlite数据库。
插件价格算是一个小福利吧,这个功能的代码量很少,很适合想要学习PB二开的同学阅读学习。
功能截图
实现思路
1、删除原有的副栏目的单选select控件;
2、这里引入了xm-select插件来实现多选,将多个栏目以1,2,3,4,5这样的形式进行保存;
3、Mysql实现就相对简单了,可以直接使用FIND_IN_SET函数直接就实现了;
MySQL手册中find_in_set函数的语法解释:
FIND_IN_SET(str,strlist)
str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8,10,22)
查询字段(strlist)中包含(str)的结果,返回结果为null或记录
4、后端列表对subcode字段进行筛选并显示在列表;
5、修改前端模型中的getList以及getLists方法,筛选出副栏目内容;
6、优化getSortRows方法,这个主要是优化内容数量的统计。
注意细节
插件存在一个数据统计的细节BUG,
是这样的,假设一条内容选择了多个副栏目。
那么对副栏目来说,是要讲这条新闻统计进当前栏目的新闻总数的。
但是对于一级栏目来说,全部新闻的数量并不会等于子栏目数量的和。
如下截图:总共的新闻条数并不是 2+4+1+1,这里不应该算上副栏目的数量。
其实也不算是一个BUG,就是一个细节,给大家说明一下。
特别注意
如果PBootCMS副栏目选择过多,字段长度会不够,需要将ay_content表中的subscode字段长度调大。
特殊情况的用户可以参考修改一下。
正常情况多选四五个栏目没有问题的。
到此,插件介绍结束,欢迎购买体验。