插件说明

之前有群友咨询PbootCMS系统能否添加多各副栏目?趁着过年,给整了一套PbootCMS副栏目多选解决方案。

PbootCMS副栏目多选插件同时支持Mysql和Sqlite数据库。

插件价格算是一个小福利吧,这个功能的代码量很少,很适合想要学习PB二开的同学阅读学习。

功能截图

PbootCMS副栏目多选插件 同时支持Mysql数据库和Sqlite数据库

PbootCMS副栏目多选插件 同时支持Mysql数据库和Sqlite数据库

PbootCMS副栏目多选插件 同时支持Mysql数据库和Sqlite数据库

实现思路

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副栏目多选插件 同时支持Mysql数据库和Sqlite数据库

特别注意

如果PBootCMS副栏目选择过多,字段长度会不够,需要将ay_content表中的subscode字段长度调大。

特殊情况的用户可以参考修改一下。

正常情况多选四五个栏目没有问题的。

PbootCMS副栏目多选插件 同时支持Mysql数据库和Sqlite数据库

到此,插件介绍结束,欢迎购买体验。